Richard Bucker

Response to Seven Languages in Seven Weeks

Posted at — Dec 19, 2011

Bruce Tate is a good writer and recently he published a book titled: “Seven Languages in Seven Weeks”. I do a lot of career development so I completely agree with the premise, however, the first place I get lost is the selection of languages: Ruby, IO Prolog Scala Erlang Clojure HaskellInitially there is nothing wrong with this selection. Tate tells the reader that the choices were made my asking his readers. And at first glance this might makes sense (blame the reader), however, it’s more dubious than that.As I rebuked a recent blog for it’s survey results pertaining to Agile because the sample group were in relative social circles to the author. I believe the same can be said here. About the only thing in Tate’s favor, however, is that the words “practical” or “pragmatic” were omitted. Had they been present then I believe that the language selection might have echoed github’s language survey.In hindsight I should have read the TOC before I purchased the book. I already had a cursory knowledge of Ruby, I’ve been coding erlang professionally for 3 years, prolog was deprecated when Borland’s Turbo Prolog was decommissioned, I’ve reviewed Haskell and it’s of no general interest… I think erlang got it right. And as the saying goes, “lipstick on a pig, it’s still a pig” when it comes to Scala and Clojure.If it were my book I think the list would have been a little different: go - the languages solves some concurrency and messaging issues in many other languages, it’s also statically linked. erlang - lightweight processes, fast, has momentum python 3 & perl 6 and PHP(Facebook) - These updates have been in development a long time. It’s critical to understand whether the new versions are worth the mid share or if they should be deprecated. modern C or C++ - groovy - It’s java lite and while I do not have any practical experience with it, since I do a lot of development in python, perl and ruby this makes sense in the JVM environment. serverside javascript (NodeJS, MongoDB, etc) - another up and comer. This is probably more like a 1/2 week experience, however, just because you know browser javascript does not mean that you’ll be successful on the server side. R - The google-ites and Facebook-ies are going crazy with analytics and now that the “social” aspect has entered just about every website tools that render information about the business are becoming critical. R has a great many tools to help out. Hopefully one does not need a Phd in math to be successful.What sets my list apart from Tate’s is that they are look to the future. “Where are we going?” not “What’s slipped between the cushions?"As a sidebar, I have another list that I think might be interesting: “Seven Frameworks in Seven Days”. You’re not going to become an expert in seven days but you might know enough to make a choice for your next project based on that experience: TornadoWeb or Cyclone (python) - very capable frameworks but they are even driven. Mojolicious (perl) - another event driven framework. Sinatra (Ruby) - something to attract ruby-ists. It’s as capable as those above. Limonade (PHP) - PHP is powering back up thanks to Facebook’s compiler. Orbit (Lua) - Lua was conceived in the vacuum of Brazil and has an adopted home in World of Warcraft. At some point those programmers are going to want to break out of the game into the real world. Snap (Haskell) - It’s fast. Nitrogen (erlang) - interesting GUI, comet, baked right in.One reason for the entries in this list is that the language portion of the exercise is trivial. Micro frameworks are not capable of running an enterprise but it’s low cost of entry is going to get things started so that your burn rate is smaller.While Snap and Nitrogen are interesting in their own right that’s about it. They will not likely be here in 2 or 3 years but the ideas are great.Thanks for reading.