The cost versus benefits of disorganised programming power

The web is both becoming more powerful and more confusing.

Since then, I feel I’ve been watching JavaScript go the way of C++, it’s becoming a “kitchen sink” language. So many new features have been added that the new ES6 specification document is literally twice the length of the ES5 specification. Worse yet, a year before the ES6 specification was even completed, there was already a laundry list of features scheduled for integration into ES7. They weren’t nearly finished with ES6, and they were already planning ES7. There are a number of semantic inconsistencies in JavaScript that need fixing, but the ES6 and ES7 additions do nothing to fix those, they merely add new features (read: complexity) to the language.

JavaScript is the C++ of the Web by Maxime Chevalier-Boisvert (614 words).

I feel so conflicted about ES6 and ES7 (or the standards formerly known as such). They are incredibly useful and valuable additions to the language. They will make my life easier. They also are turning the language into something that’s just as complicated and unfriendly to new users as Java or C++.

And when you compare it to Go or Swift (or Python), those two languages arguably benefit from being more conceptually cohesive. The actual complexity of the language is on just about the same level, but having concrete underlying ideas makes the complex parts of Go and Swift a tad more accessible and their consistencty means you only have to learn their idiosyncrasies once.

There isn’t an easy answer here. The improvements to JavaScript are substantial and easily accessible to people like me who have a pre-existing familiarity with the language. But they are also becoming a hindrance to beginners. And, no matter how favourable your opinion is of JavaScript, it’s hard to argue that the language as a whole isn’t ‘suboptimal’, even for experts.

(‘Suboptimal’ here is in quotes because it is used here as the common programmer euphemism for ‘a fucking unusable mess’ and not, you know, merely suboptimal.)