Saturday, January 3, 2015

JavaScript Melancholy

In some recent history there have been many blog posts and articles about the state of JavaScript. In particular, there seems to be some level of surprise that the landscape has turned into the same morass as every other environment, and in a very short order. Perhaps even more so than anything else if you look at the NPM package counts surpassing that of Java Maven.

Generation JavaScript describes this whole thing quite well.

I am personally not surprised at all about the core point, though I am somewhat surprised about the lightning speed of how quickly things turned to this mess, but maybe I should not be. Things are moving with ever more rampant speed in this industry, but everything new is not good.
It is a language that as an profession we should be pretty ashamed for letting become so popular; it is for cowboy developers writing cowboy systems and anybody setting out to build new applications on top of this (with the intention of longevity) should strongly reconsider. I think that the motivation of using JS to teach programming is understandable because of how accessible it can be to new people but it is also a mistake because it teaches the wrong message about our industry - it is the antithesis to professionalism. If we were ever in a "race to the bottom" then JS can be considered to have won; it has lowered the barrier to entry so far that we'll be dealing with the consequences of this mistake for decades to come.
--Rob Ashton (Disinterest Curve: JavaScript and Node)

It is quite interesting to see Rob's own shift on the topic if you read his earlier entries.

Software Fashion Industry

Software seems to repeat the same cycle as fashion. There always has to be something new almost every year, and every kid follows the new patterns and garments with religiosity. I am pretty sure, if you are a JavaScript "professional" these days, you are one of those fashion lovers. Trust me, in a couple of years it is something else.

Yet, after a while, you will notice how the same patterns and same approaches repeat. They are rehashed, and backed with flamboyant 'opinionated' software that decidedly garners the interest of many until the spell clears once again, or people see the next new thing. There is a back chorus of people who criticize the state of software development, because they have been there and done that already.

Hype Machine

There always seems to be some kind of hype machine going on in this industry that repeatedly does disservice to itself. I am not so sure these things are always driven by programmers themselves though we do like the new and shiny a bit too much.

I am not so against getting people interested in writing software. People should be. The problem is that those same people get caught in the hype cycle and do not educate themselves. There are a lot of dropouts in that process but not before they write a lot of bad code that lives for a long time.

There seems to be no real sensible collective memory about lessons learned. It is perhaps created by the obsession about youth and the hacking culture. I am not talking about real Hackers but this kind of quick turnaround, copy pasting, everyone can code culture, where you actually spend little time with theory and deeper lessons. I do like the sense of enthusiasm but not necessarily the results.

This is a problem in the industry where there really are no prevalent standards or requirements for formal education. The truth is that people need mentors so they can learn and fail safely before stuff gets out in the wild. Open source projects just are pretty much free for all - especially, you can start a new one any time. It can be a great thing, but also bad considering the tidal wave of new and soon obsolete libraries and frameworks.