Acknowledgments

This is the most demanding book I have ever written. It’s also the most rewarding. The people who have offered to help in various ways have made it so. Thanks first and foremost to my family. Kayla and Julia, your writing amazes me. You can’t yet imagine what you can accomplish. Maggie, you are my joy and inspiration.

In the Ruby community, thanks to Dave Thomas for turning me on to the language that turned my career upside down and helped me have fun again. Thanks also to Matz for your friendship and your offer to share your thoughts with my readers. You invited me to Japan to visit the place where Ruby was born, and that experience inspired me much more than you will ever know. To Charles Nutter, Evan Phoenix, and Tim Bray, thanks for the conversations about topics in this book that must have seemed tiresome but helped me refine and shape the message.

In the Io community, thanks to Jeremy Tregunna for helping me get plugged in and sharing some cool examples for the book. Your reviews were among the best. They were timely and helped build a much stronger chapter. Steve Dekorte, you’ve created something special, whether or not the marketplace ever recognizes it as so. The concurrency features rock, and the language has intrinsic beauty. I can definitely appreciate how much of this language feels right. Thanks for helping this neophyte debug his installation. Thanks also for your thoughtful reviews and your interview that helped me capture the essence of Io. You captured the imagination of the beta readers and created the favorite language of many of them.

In the Prolog community, thanks to Brian Tarbox for sharing your remarkable experience with my readers. The dolphin projects, featured on Nova, certainly add a dramatic flair to the Prolog chapter. Special thanks go to Joe Armstrong. You can see how much your feedback shaped the chapter and the overall book. Thanks also for contributing your map-coloring example and your ideas for Append. They were the right examples delivered at the right time.

In the Scala community, thanks to my good friend Venkat Subramaniam. Your Scala book is both rich and understandable. I leaned on it heavily. I greatly appreciate your review and the little bits of help that you offered along the way. Those little bits of your time saved me tremendous anguish and let me focus on the task of teaching. Thanks also to Martin Odersky for helping this stranger by sharing your thoughts with my readers. Scala takes a unique and brave approach to integrating functional programming paradigms with object-oriented paradigms. Your efforts are greatly appreciated.

In the Erlang community, I again thank Joe Armstrong. Your kindness and energy have helped me form the ideas in this book. Your tireless promotion of the way distributed, fault-tolerant systems should be built is working. More than any other idea in any other language in this book, Erlang’s “Let it crash” philosophy makes sense to me. I hope to see those ideas more broadly adopted.

In the Clojure community, thanks to Stuart Halloway for your reviews and ideas that forced me to work harder to bring a better book to my readers. Your insights into Clojure and your instincts helped me understand what was important. Your book was also hugely influential in the Clojure chapter and actually changed the way I attacked some problems in other chapters as well. Your approach in your consulting practice is greatly appreciated. You’re bringing much-needed simplicity and productivity to this industry. Thanks also to Rich Hickey for your thoughtful ideas on the creation of the language and what it means to be a Lisp dialect. Some ideas in Clojure are intensely radical and yet so practical. Congratulations. You’ve found a way to make Lisp revolutionary. Again.

In the Haskell community, thanks to Phillip Wadler for the opportunity to look inside the process that created Haskell. We share a passion for teaching, and you’re very good at it. Thanks also to Simon Peyton-Jones. I enjoyed working through your interview, the insights you added, and the unique perspective you brought to these readers.

The reviewers did an outstanding job with this book. Thanks to Vladimir G. Ivanovic, Craig Riecke, Paul Butcher, Fred Daoud, Aaron Bedra, David Eisinger, Antonio Cangiano, and Brian Tarbox. You formed the most effective review team I’ve ever worked with. The book is much stronger for it. I know that reviewing a book at this level of detail is thankless, demanding work. Those of us who still like technical books thank you. The publishing business could not exist without you.

I also want to thank those of you who shared your ideas about language choice and programming philosophy. At various times, Neal Ford, John Heintz, Mike Perham, and Ian Warshak made significant contributions. These kinds of conversations made me look smarter than I really am.

Beta readers, thank you for reading the book and keeping me working. Your comments have shown me that a good number of you are working through the languages rather than casually skimming. I’ve changed the book based on hundreds of comments so far and expect to do even more throughout the life of the book.

Finally, to the team at the Pragmatic Bookshelf, I offer my sincerest gratitude. Dave Thomas and Andy Hunt, you have had an incalculable impact on my career as a programmer and again as an author. This publishing platform has made writing viable again for me. We can take a book like this one that might not be as attractive to the mass market and make it financially worthwhile. Thanks to all the members of the publishing team. Jackie Carter, your gentle hand and guidance were what this book needed, and I hope you enjoyed our conversations as much as I did. Thanks to those who labored in my shadow to make this book the best it could be. Specifically, I want to thank the team that labored so hard to make this book look good and correct all of my bad habits, including Kim Wimpsett, the copy editor; Seth Maislin, the indexer; Steve Peter, the typesetter; and Janet Furlow, the producer. This book would not be what it is without you.

As always, mistakes that slipped through this fine team are all mine. For those of you I missed, I offer my sincerest apologies. Any oversight was not intentional.

Finally, thanks to all of my readers. I think that real hard-copy books have value, and I can follow my passion and write because you do, too.

Bruce Tate