What I’m Working With in 2010: After-hours Edition

I continue my earlier highly-opinionated discussion of tools I’m using in 2010, turning now to my off-hours choices…

Erlang is getting most of my current discretionary coding time.  I wish I had more time to give because aspects of it present a stretch activity for me.   A pleasant and stimulating stretch, to be sure, but bearing a significant learning curve and attendant effort, which can be a challenge to provide with three kids and a basket of other interests.   I’m going to keep at it for a number of reasons, the most personally significant being that concurrent programming models are clearly en route and, once they start arriving in force they will have a significant disruptive effect on the methodology we in the industry use to evaluate design problems and decide how to solve them.  Learning the syntax of Erlang is fairly straightforward; sure, there’s traps for the unwary (variables that don’t) and exoticisms not found in the “popular kid” technologies of modern IT (list comprehensions).  Other features bring back fond memories of procedural days past (callback functions!)  Those you can learn, particularly given a copy of Joe Armstrong’s book (how long before it is dubbed the “crosswalk” book, if it hasn’t been done already?)  Designing programs to take advantage of Erlang’s strong spots is another matter entirely;  I’m yet to write anything in Erlang I don’t cringe at 24 hours later.  But that’s the beauty of off-hours programming, isn’t it? All the fun, none of the professional repercussions.

I’ve done enough Rails programming the past 4 years to know I still really like it, as well as to be concerned by the apparent “all things to all frameworks” philosophy starting to manifest itself in version 3.0.  It’s good-hearted to try and support any and every Ruby-based persistence/routing/templating library under the sun.  Problem is, when you’re everything what exactly are you that makes you you?   I await version 3.0 with great interest; David, Yehuda and the other navigators have a big moment coming up and I hope they’ve made the right call, because Rails is/has been the best thing for web development I’ve ever worked with.  A thousand prayers it stays that way.

Perhaps as a hedge against possible Rails heartbreak, I’m doing more work than expected with Ruby the language.  Which is, yes, doing things backward, having learned the super-duper-sexy framework before the merely-super-sexy language it was written in.  Mea culpa, particularly having discovered meta-programming these past few months; a never ending marvel of bitwise sophistry (code writing code writing code!)   Someday, someone will end up creating the Singularity using a Ruby script.  Hopefully it will not be me, by accident or incompetence.

Another super-duper-sexy development gaining traction recently: NoSQL, alternately read as “ACID isn’t everything anymore”, certainly not when it might slow your social networking site down.  I’m happy that a whole new generation of techno-entrepreneurs can get their pages served up in pico- rather than micro-seconds now.  The interest for me lies, again, rather more in the design consequences posed by a willful about-face from the all-dominant relational data storage world we’ve been working in for the last several decades.  There was a reason the industry moved away from VTAM and the like, even if few people can identify it anymore.  Have MongoDB, CouchDB, Cassandra and the like figured out what it was and solved it?  Or is this just the proverbial swing of the pendulum and anything that isn’t the status quo going to be in good odor, warts and all?  Of more immediate interest are how these document-centric database technologies are going to be able to peacefully co-exist with their relational brethren during whatever transition period may come.

Comments are closed.