Atomic Scala is now “in production,” which means we’re building the index and finalizing the cover and making editing passes and creating other support elements so we can actually go to press in a month or so. We’ll stay with print-on-demand for the time being because we’re still learning things and want the freedom to make improvements. This book is also an attempt to adjust to the way that people actually learn and to make that learning experience better — this makes it more of a continuous experiment. For example, a few weeks ago my coauthor and I gave a one-day tutorial at a conference, and we came away realizing that experienced programmers needed a couple of summary chapters that they could jump to; this way the book can serve both beginning programmers and experienced programmers. So we came back and wrote those, and now the book is better. We expect this experience will be repeated as we gain more information about how people learn from the book.
Bruce Eckel and Dianne Marsh are at CodeMash this week. A small number of early access copies of the book shipped here in time for the conference. This has give us the opportunity to preview it (print on demand is flexible like that) and have attendees look at it before the final version is available. We still have some work to do — add the index, incorporate suggestions from attendees at the conference, beef up the exercises a bit more, and add that ever elusive “one last atom”. But it’s great to see it in print format, and it was particularly fun to open it up here at the conference. Stop by the SRT Solutions booth (near Salon B) to see the book if you’re at CodeMash!
Next week, the Ann Arbor Scala Enthusiasts will welcome Josh Suereth at its inaugural meeting on Wednesday, January 16 at 6 pm. We have 3 copies of Josh’s book “Scala in Depth” (thanks, Manning!) that Josh will sign and give away at the meeting. Join us there if you’re in or around Ann Arbor. The meeting will be held at SRT Solutions, 206 S. Fifth Ave., Suite 200, Ann Arbor, MI 48104. It will start at 6 pm, and Typesafe is sponsoring food!
We’ve been busy getting the Atomic Scala book ready for an early access printing for CodeMash, where we will be presenting a 1-Day seminar on Wednesday, January 10. The book has shipped to the conference location in Sandusky, OH, and we’re looking forward to seeing it!
We expect that there will be some fun face-palm moments where we realize that we have explained something poorly or inadvertently introduced a forward reference. We will use feedback from the attendees and from early viewers of the book to refine the final edition.
Following CodeMash, Josh Suereth will be joining us in Ann Arbor, MI, for the inaugural Ann Arbor Scala Enthusiasts meeting on Wednesday, January 16. If you’re in the area, please join us. The meeting, starting at 6 pm, is free and open to the public. It will be held at SRT Solutions, 206 S. Fifth Ave., Suite 200, Ann Arbor, MI 48104.
Hope to see you either in Sandusky or in Ann Arbor in January, or somewhere else in 2013!
Bruce Eckel traveled to Poland in May 2012 to present an introduction to Scala at Geecon. In this presentation, he describes our “atomic” approach to the book — introducing small pieces and building from that, rather than assuming a knowledge of Java and building on that.
You can watch Bruce’s presentation here.
I’m spending the day reordering atoms for Atomic Scala. It’s hard not to have any forward references (where we mention something we haven’t described yet and promise to talk about it later), but we think that this is really important, and we’ve made a commitment to our readers to avoid it.
But reordering cascades. So when I found that we had a reference to Methods in Objects, I decided to move Methods up. But Methods uses Testing, so I have to either rewrite the Methods atom or move Testing up. Aha, but Testing talks about Objects. D’oh!
It would be easy to convince ourselves to allow it “just this once, just this little forward reference”, but it’s slippery slope and we’re not going to do it.
It’s a fun puzzle. So that’s how I’m spending my day today, and I’m pretty happy about that!
We’ve added a Downloads area so that we can know how many people are downloading the book. When you fill out the contact form, you can say that you want “Book Updates” and/or “Public Seminar Updates”. We really won’t share your email address with anyone else and we promise that our communication will be infrequent.
Also, I’ve finally configured the mail server to send from the email address “downloads” in the hopes that this will mean less messages are going to spam.
If you tried to download the book and never received the email, check your spam folder for “email@example.com”. If you still can’t find it, please try again or fill out the Contact Form and we’ll send the download manually.
We really do appreciate all of the feedback we’ve gotten so far!
I’m having some fun today “splitting an atom”, based on some feedback from a reader who downloaded the first 25% of Atomic Scala. He said that he thought that Values and Data Types should be split, so I started down that path this morning …
I’m splitting it into 2 atoms: Values … and Data Types. Following our practice before theory principle, Values must come first since Data Types has no context without storing a value. That’s driving some other fun changes too, notably in the Type Inference atom.
The Type Inference atom appeared later in the book because that’s how we thought of it … as something special that Scala does for us. But why did we think of it as special? Because we’re programmers who didn’t have that in other languages. Ah, but we’re writing this book to appeal to beginners as well as to seasoned developers. Stepping back, we realized that beginners don’t know that they have to declare the types of variables. And why should they? You didn’t have to do that in math class and that all worked out OK.
Beginners are not tied to the restrictions in older programming languages that required you to do so. So why not introduce Values using Type Inference and later show how you can do this in a more verbose way? I wouldn’t have thought of this when we started writing the book, but because our atoms are written to contain single concepts, they are also easy to re-order.
We are really grateful for feedback! Please keep it coming!
Here’s Bruce’s blog on the Atomic Scala book and the upcoming seminar in Boulder: http://www.artima.com/weblogs/viewpost.jsp?thread=345161
And here’s mine: http://www.srtsolutions.com/atomic-scala-book-written
Glad to see we’re pretty much on the same page!