Programming Stack For Web

Tagged as: cloud web

Let us talk about the web backend (or server side) programming language with the associated frameworks and libraries. Enough (and probably more than required !) choices are out there – Python, Ruby, Node.js, Java, Php, ASP.Net, JSP etc.

What will you choose ?

Look at the trends – This graph shows some trends (what people search for !). Dont take it as something written on rock, but just a trend. Did you notice ? I didn’t show all of them in a single graph – Search volumes are very different and I am not talking about volume here but trend – Take Java vs Node.js – Node is a young baby, but trending up very fast, it doesn’t make sense to compare them on search volume.

Now, Why is trend important ? To me the single most reason: It indicates more developer interest. More developers means more community support, more frameworks, more tooling etc – A very non-technical reasoning.

Why is the trend so varying ?

Java, Php, asp and jsp trends shows the decline. People try to attribute many reasons for the decline. I am not sure whether any reason really can convincingly explain this. One general reason in favour of newer languages is “ease of use” and “less boilerplate code”. This seems to be the wave on which the up-trending ones are riding – Python, Ruby and Node. This indirectly has to do a lot with the cultural change in expectation that “programming has to be easy and fun !”. Once the interest is set-in, then good tooling and frameworks come-in and, yes this makes the programming “easy”. I think these languages are successful in the “catch them young” battle – Those straight out of college (and even before) are glued into them.

If you go with the trend, most of the modern (up-trending) languages are “late binding”. This makes programs more “flexible” (=easy). The downside is that the bugs tend to get discovered at runtime and not compile time (if at all possible). The solution for this is to have unit-tests, but unit-test is an “optional practice” and unless this is made mandatory (read internalize in the development process), expect hell to break loose !

So, What will you choose ?

My take is that, the choice of language per-se won’t make or break a product. The things around it (framework, tooling) and developer interest are more important. What is the point if you choose the best language, but there is no (or declining) developer interest and ecosystem around it ?

Tagged as: cloud web
comments powered by Disqus