Archive for July 2015

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 , , , , , | 6 Comments
Copyright 2012-2016 David Kopec. Powered by Blogger.


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