Programming languages in 2012

A new year is about to be born and it is time to make vows and predictions. Here is my take on programming languages in 2012 and what I will try to do with them.

Java will stay around for much longer just as Cobol has been around for ages. There has been much buzz in the business about Scala being the replacement of Java. I don't think it will happen in 2012. I am not sure Scala will be the next Java either. Java is a language where you can only do things in a few ways. This is a huge benefit for organisations that can not be sure their developers will stick around. A switch to Scala would make it much harder to get into a typical code base with many authors over several years. A nice and clean Scala system with a bit of code conventions would be a bliss to work with. So for enterprise software Java and its microsoft siblings will stay strong for yet some time.

I don't think 2012 is the year when developers start writing tests so I certainly hope that nice dynamic languages like Ruby, Python and Smalltalk will not enter the stage in any big way. But if they do lets pray that it is with developers that test.

Functional programming will continue to come back and this will move Scala (again) and erlang forward. Haskell is a bit too obscure to count.

I also predict that C will come back a little due to arduino and other stuff like that. Try to taste "domain specific languages in C".

One dynamic languages that will continue to shine is of course javascript. As code moves from the backend to the browser javascript will rise and shine. It is not that bad a language but it got several nasty traps for the newcomer. The only hope for a Javascript alternative comes from Coffeescript. Lets pray for native browser support in firefox during 2012. (I guess chrome is busy fiddling with that strange dart.) We will also see much more backend javascript during the year. node.js is here to stay and it will mature and become a serious option even for more conservative shops.

So what will I do with this knowledge in the year to come. This year I have become fluent in Ruby so I will continue to use it for backend stuff. I have also learned more Javascript and will continue down that path. The new language I will try to pick up is Coffescript. It looks much more joyful to code in than Javascript and may also be useful for testing. I guess I will do some Java also. It will feel nostalgic now that I haven't touched it for quite a while.

Old comments

2011-12-28Mikael Kindborg
Hi, I really enjoyed reading your article! I think domain specific languages in C is an intriguing idea. I like C a lot more than C++, because of its simplicity :) I would not be surprised if Google move from Java to Dart on Android, Dart is how Java should have been designed in the first place :) But it is a poor successor of JavaScript :( I just read an entertaining actitle about the history of Lisp at the Jet Propulsion Laboratory, with some interesting remarks on Java :) http://www.flownet.com/gat/jpl-lisp.html