Crisis in the House of Node.js?

An interesting thing happened this Independence Day —TJ Holowaychuk (the brilliant fellow that wrote Empress, Mocha, Jade, Stylus, etc., in other words, a NodeJS guru) announced he is greatly reducing his work in Node.  See his ‘Farewell Node.js‘ post (best quote, “callbacks suck”).

As can be guessed, this is causing a stir in the vibrant Node and JavaScript communities. Interestingly enough he mentions the venerable C language that I love in passing, but his next language-of-the-day love appears to be the very young Go language. Personally, I would place bets that he will eventually step away from Go too.

Some of the reaction:

An excellent functional-language developer I know recently described the language-of-the-day trend, especially regarding the explosion of wrappers and libraries for JavaScript, simply as efforts to make up for deficiencies in the base language that other mature languages simply don’t have or that were solved years ago (c.f. this article, by Douglas Crockford, the author of JSON).

The ubiquity of JavaScript interest, in my opinion, is because it is a “lowest common denominator” language (as put by my functional developer acquaintance) that is initially easy for new developers to learn. It is the new, more functional, BASIC. Eventually, the most serious of these new programmers run into its problems and thus start seeking (or use their talent to re-invent) various libraries, extensions, and wrappers to try and fill these gaps.

Perhaps some of this trend comes from our lack of the pursuit of a pre-college software development curriculum leaving smart people who may be interested in software development on their own to pursue their interest. Logically, they first turn to front-end development where they are exposed to HTML and CSS then, in turn, JavaScript and JQuery. The march then to libraries and Node.js logically follows.

I cannot help but wonder that if we had a decent curriculum for young developers (like the one by Project Lead The Way that focuses on Python as a starter language) then these smart developers would gravitate towards C/C++, Java, or C# for imperative and Lisp/Clojure, Erlang, or Haskell for declarative development needs.

On the personal side,  I continue to re-birth my own skills and have been refreshing my straight C skills these days, doing some bash scripting, and Java. I’ve also been wondering if Haskell can be brought to bear on some of the more complex algorithm challenges I have at LigoSphere.