Eloquent JavaScript
third edition

I'm writing a 3rd edition of my freely available book, Eloquent JavaScript. It'll modernize and further improve the book. Writing is a lot of work, and I know a lot of people appreciate this work, so I hope some of you are interested in chipping in some money to help pay for my time.

8976 € raised of 7500 € goal

We've reached the goal! Thank you all. If you still have money burning a hole in your pocket, consider donating towards the stretch goal.

Eloquent JavaScript is the best introduction into any programming language and programming overall. Period.

— Jan Lehnardt, founder of Neighbourhoodie, organizer of JSConf.eu

My name is Marijn Haverbeke. Ten years ago, I wrote the first edition of Eloquent JavaScript and put it online. In 2011, a paper version came out, followed by a second edition in 2014. That second edition is three years old now, which in terms of Web technology is ancient.

Each of these versions has been publicly available at eloquentjavascript.net. That site attracts over a hundred thousand unique visitors per month, so it is probably reasonable to say that this book has taught over a million people at least some programming.

Because I'd hate for the book to go out of date to the point where it is no longer a useful resource, I've started work on a third edition!

The plan

The biggest thing that happened in the JavaScript universe in the past years is the finalization and adoption of ECMAScript 6 (or ES2015), which is a major update to the language. We're all writing let instead of var now, and a book that continues to write var is starting to look a bit out of touch.

The idiomatic way of doing a lot of things has changed with ECMAScript 6, and teaching it that way from the ground up will require a thorough pass over the entire text, as well as a bunch of new material.

For example, the way we're doing asynchronous programming has gotten much more pleasant with promises and async functions. I'm planning a new chapter dedicated to that.

And browsers moved forward, too. Not quite as much as they did between the first and second editions, but many things got easier. Due to components and functional-reactive-style finally making it into the mainstream, we've started writing web apps in a very different way. I want to let some of those ideas flow into the web-programming examples in the book.

And finally, I've done a lot of programming in the past three years (building ProseMirror, among other things), and I want to integrate various new insights into the text. I'll rewrite or cut some sections that I don't like anymore, and simplify examples that are probably too clever.

I estimate that I'll probably be busy with this for the next three months. When it's done, the new edition will become the main one on the website. In the meantime, the git repository for the book remains open, so you can see what I'm doing. No Starch, my publisher, is interested in helping edit the book and publishing it in paper form again. Finalizing the copy editing and layout, and getting the actual book printed, will probably take somewhat longer.

Perks and Conditions

This crowd-funding campaign is ran in an open-ended way—even if I don't reach my goal, the book will come into existence in some form, and I keep the money raised. The campaign ends when the online book is published, which I'm aiming to do in December 2017.

Payments are handled by Stripe.com. Credit card details are never sent to my server.

If you contribute 25 € or more, you can choose to be included in the list of backers on the website.

If you contribute 50 € or more, and leave your address, I will send you a pair of Eloquent JavaScript laptop stickers.

If you contribute 1000 € or more, your logo and link will be included in the backer list and, in small form, on the book's website.

If you prefer bitcoin, transfer to 1PU3dYdekupCEVJFFM8BJNCkbmYqNp7j6B and shoot me an email with your details (including address if you want stickers).

Stretch goal

If more than 10,000 € is raised, I'll spend at least 2500 € to commission an illustrator to do some new art for the book—illustrations, maybe a new cover, depending on who I end up working with and the kind of thing they specialize in.

Thank you,
Marijn Haverbeke

Thank you!