Dart for Absolute Beginners One Year Later

It's been about one year since the release of Dart for Absolute Beginners. The book was very well received by readers around the world. One review on Amazon even called it “…one of the best introductory texts on computer programming in general; bar none.” That's high praise indeed. The exclusively positive reviews in its first year have been very gratifying.

On the flip-side, Dart adoption has not reached the level that I hoped it would and that certainly has affected the book’s sales. The Dart team has been very supportive of the book – highlighting it on social media and participating in its foreword and an interview chapter (chapter 18). But that can't make up for the language’s lack of adoption. I don't think Google's announcement that the Dart VM will not be included in chrome has helped things. Whatever the case, you don't write a book like Dart for Absolute Beginners to make money.

I also created a video series that can be thought of as an accompaniment to the book, for my publisher, Apress. That series is yet to be released although I completed it some time ago. Truthfully, I have not received many updates on its status and I don't know when it will be released.

Dart Language Changes

The source code in the book, despite being written in the early days of Dart when the language was still evolving, is still valid for the current version of the language. However, the language has added some features that are not covered by the book. The most notable of these is async/await (which I anticipated in a note about likely future additions in the concurrency chapter). The Dart team also announced that a future version of the language will include null-aware operators and generalized tear-offs.

I don’t think these are a particularly huge issue given the intended audience of the book (absolute beginners), but it is an annoyance. If the book were written today, async/await would play a significant role in at least a couple of the book's eighteen chapters.

Dart Ecosystem Changes

This is where the larger changes have happened since the publication of the book. The most relevant to the book, is the elimination of Dart Editor (the IDE originally included with one’s download of the Dart SDK). I purposely didn't make the book a tutorial on using Dart Editor. I thought that was a good decision at the time, and its removal has proven me right.

None the less, the book does make mention of Dart Editor enough (especially in the first couple of chapters), that the Dart team's decision to eliminate it will prove confusing for readers. Unfortunately, I feel the alternatives available today are either too simple (DartPad) or too complicated (WebStorm with a Dart plugin) for the type of projects I designed for the book. I’m not sure which I would choose if I rewrote the book today.

Another ecosystem change, the aforementioned end of planning to put the Dart VM into Chrome, make some of the forward-looking statements in the book no longer true. The ecosystem has not yet coalesced around a single server-side solution or GUI toolkit. Therefore I’m glad that I did not “pick a winner” when addressing (or not addressing) these topics.

Is the Book Obsolete?

With the changes mentioned, the book is certainly no longer current. I think it’s still a fantastic introductory programming book and all of the topics covered are still completely valid. The source code is still valid. I think it still offers a ton of value, but I can see how the elimination of Dart Editor in particular, despite being a small part of the book, may confuse new programmers.

I don’t look forward to the inevitable “out of date” bad reviews. If Apress contacted me to do a second edition, I’d certainly be up for it. Will I contact them about it? Maybe – it depends how much free time I have in the next year.

Posted in , , , , , . Bookmark the permalink. RSS feed for this post.

6 Responses to Dart for Absolute Beginners One Year Later

  1. Hi, David. Great write-up. I, for one, would love to see you update the book, as I use it regularly as a teaching aid. Because of the small issues you've mentioned here, I'm now slightly reluctant to suggest the book to beginners who won't have me around to guide them as they progress through the chapters.

    Anyway, just wanted to let you know there's someone out here rootin' for you. On a side note, two of the Dart GDEs (Faisal Abid and Jana Moudra), along with myself, have recently started a site at http://dart.academy. Perhaps you'd be interested in contributing some content? If so, drop me a line on G+ (https://plus.google.com/+MontyRasmussen/). For now, it really is a labor of love for us all, because there isn't much money in it, huh?

    ReplyDelete
    Replies
    1. Thanks for your support, Monty. Dart Academy looks cool and I'll recommend it to anyone I know who's getting into Dart. Your Dart evangelism is great - they should pay you as a developer evangelist! - DK

      Delete
  2. Thanks for this honest post, David!

    I feel the same about the editor choices for beginners:

    > "the Dart team's decision to eliminate [the Dart Editor] will prove confusing for readers. Unfortunately, I feel the alternatives available today are either too simple (DartPad) or too complicated (WebStorm with a Dart plugin) for the type of projects I designed for the book. I’m not sure which I would choose if I rewrote the book today."

    I have stopped all my efforts to create more tutorials for Dart as long as we don't have a good editor solution for beginners. The current state is very unfortunate.

    ReplyDelete
    Replies
    1. I completely agree. I would like to see statistics on how adoption has changed since the removal of Dart Editor... A big selling point of the language was that you downloaded the SDK and you had everything you needed to get started. Beginners don't want to be configuring plugins.

      Delete
    2. @Markco Jakob and @DK what do you guys think of the Dart plugin for Atom. I think it is very easy to install, and Atom feels like a good editor for dart beginners.

      Delete
    3. @Anoniem I truthfully haven't checked it out. Does it include integrated support for pub? Does it have a built-in debugger? Without those features, any solution will be lacking... the other great thing about Dart Editor for beginners was that it came "in the box." There was no setup necessary.

      Delete

Copyright 2012-2016 David Kopec. Powered by Blogger.

Search

Swedish Greys - a WordPress theme from Nordic Themepark. Converted by LiteThemes.com.