Programming languages in 2015

3 years ago I scribbled down some predictions about programming languages trends in 2012. That was fun but a bit too boring to do every year…. so now is the time for a follow up.

What happened with my predictions?

It seems that I was mostly right with my predictions about the main contenders. Since then javascript has moved forward and Java is still rock solid. People are even moving back to Java from excursions to other languages. Scala hasn’t really taken off (thank god for that). A couple of new interesting languages has appeared that I didn’t anticipated. In the functional sphere we have elixir that lures the ruby crowd onto the erlang platform and makes it more accessible. We also have go, googles C replacement that looks really promising. I had the opportunity to try it out a bit a year ago and it was mostly good warm feelings.

Looking into the next couple of years

Java will continue to be the main choice for enterprise software. This is a bit sad given all the nice alternatives out there nowadays but will probably make it easier to maintain large systems over time. Another trend is to combine enterprise Java on the backend with single page web apps with angular for the frontend. This brings me to javascript ->

Javascript will continue to increase in importance still being the only native language for web browsers. Neither dart nor coffeescript will make it into mainstream browsers in the upcoming years. It may be possible to run dart in chrome but not anywhere else. There will be a couple of new javascript web frameworks that will be used for a while. Angular may still be there three years from now but don’t count on it.

HTML and CSS will continue to be crucial view technologies for the web. Combined with javascript they will form the mobile platform of tomorrow. Firefox OS is leading the way here and I expect to see more of this kind of consolidation. Nice things like haml and slim will continue to be marginal things.

Functional languages and functional style in OO languages will continue to increase in popularity due to the heightened awareness of maintenance cost. Here I expect elixir to continue going strong together with clojure and erlang. Scala will not make it - partly due to the smorgåsbord character of the language and partly due to an elitist community. Also keep in mind that javascript is a capable functional language.

You can also expect a move back to server side web frameworks. While it is fancy and performance friendly with single page web apps they are hard to maintain over several platforms and honestly - do users care about this at all? I hope this move will be towards lightweight web frameworks like sinatra on ruby, flask on python or dropwizard on java rather than going back to rails and whatnot in the draconian framework genre.

Also the move back to relational databases will continue and people will start using postgre as a document database.

My path forward

I am currently working with a client where the stack is a mixture of angular.js, camel, java, spring and some grails. This means I will improve my groovy and hopefully not turn worse with my javascript. I hope to continue doing some ruby on the side because I like the beauty of it. Strategically I will try to improve my go and my javascript and if I have any energy left after that I will dive into elixir.

Photo by nubui.