TQ
dev.com

Blog about software development

Subscribe

JavaScript is too expensive to use

22 Oct 2016 - by 'Maurits van der Schee'

Programming in JavaScript is free. Free as in "free speech", but also free as in "free beer". There are no fees to pay for platforms, tools or run-times. Still the choice for JavaScript too expensive to make as it increases the cost of development both from a personal and a product point-of-view. The main cause for this is that the ecosystem is changing so rapidly that both people and products are struggling to keep up.

JavaScript Fatigue Fatigue Fatigue

Yes we have all read the JavaScript Fatigue blogs and they either tell you "the ecosystem changes too fast" or they tell you to "stop whining". IMHO both are true and I'll try to explain that later. But nobody says what should be evident by now: JavaScript is failing. It is making simple problems complex. You don't need it. HTML5 supports forms better than ever. Page loads have become almost free with HTTP2. Ajax is no longer needed. And it was already clear 3 years ago that JavaScript is a security (and privacy) liability.

Cost of personal development

Posts like How it feels to learn JavaScript in 2016 and You Can’t Get Comfortable in Web Development address the costs of JavaScript from a developer point-of-view. I see that it is leveling the playing field for fast-learning beginners. It is like an Eternal September in development land. Those beginners will eventually need you if you actually have a clue. The constant change is also the driving force behind programmers scarcity, the acceptance of high risk and low ROI expectations in software development. So you have to learn yet another front-end framework? That's good for your CV. And you are getting paid for learning. So it is no wonder people say: "Stop whining!"

Cost of product development

If you have chosen the Knockout framework 3 years ago you may already be faced with developers suggesting a rewrite. Same goes for any other front-end framework choice that you could have made at that point in time (Angular 1, Ember). If you are funding the product you don't benefit from hiring beginners as professionals or slower development. You care about the speed of development, but even more about the durability of your software investment. Code that needs to be rewritten within three years may not be durable enough. Investors don't influence technology decisions, but if they would learn about JavaScript they would probably agree with: "The ecosystem is changing too fast."

Boring software is bad too

Proven technology is old and "boring". Boring software development may be less risky and a better investment, but it is dangerous as well. Nobody wants to work for an employer that is "lagging behind" on it's technology choices. When you are not exposed to the technology that drives the self-destructing arms race of "latest and greatest" you can not beautify your CV with it. Thus working for such an employer will make you quickly devalue as a knowledgeable software development employee. So, if you want to hire ambitious experienced self-motivated job-hopping software developers you'd better work with the latest technology.

Conclusion

Although it may not be feasible to completely stop using JavaScript, you may try to only apply it where strictly necessary. Same goes for many other technologies (like NoSQL). But in all these cases the personal interests of the software developers are exactly opposite of the interests of the product software company. Developers want exciting technology, while investors want boring technology. I wish I knew how to fix this...