It was made in 10 days, its type system is a mess, its syntactic shit, and there are just better replacements out there that will never see the light of day due to how big its already gotten
I use it regularly (web dev). A lot of complaints and mockery stems from using it badly. None of the programming languages that are regularly the butt of everyone’s jokes force you to use them badly, they just allow you to. If you follow good practices, you’ll be just fine.
Many of the programming languages that are regularly the butt of everyone’s jokes don’t just allow you to use them badly, they make it easy to do so, sometimes easier than using them well.
This is not a good thing.
A good language should
be well suited to the task at hand
be easy to use correctly
be hard to use incorrectly
The reality is that the average software developer barely knows best practices, much less how to apply them effectively.
This fact, combined with languages that make it easy to shoot yourself in the foot leads to lots of bad code in the wild.
Tangentially related rant
We should attack this problem from both directions: improve developers but also improve languages.
Sometimes that means replacing them with new languages that are designed on top of years of knowledge that we didn’t have when these old languages were being designed.
There seems to be a certain cynicism (especially from some more senior developers) about new languages.
I’ve heard stuff like: every other day a new programming language is invented, it’s all just a fad, they add nothing new, all the existing languages could already do all the things the new ones can, etc.
To me this misses the point. New languages have the advantage of years of knowledge accrued in the industry along with general technological advancements, allowing them to be safer, more ergonomic, and more efficient.
Sure, we can also improve existing languages (and should, and do) but often times for one reason or another (backwards compatibility, implementation effort, the wider technological ecosystem, dogma, politics, etc.) old quirks and deficiencies stay.
Even for experienced developers who know how to use their language of choice well, there can be unnecessary cognitive burden caused by poor language design. The more your language helps you automatically avoid mistakes, the more you can focus on actually developing software.
We should embrace new languages when they lead to more good code and less bad code.
<span>Please enable JavaScript to use this app</span>
document.getElementById("noscript").style.display = 'none';document.getElementById("noscript-info-with-bold-text").style.fontWeight = 'bold';document.getElementById("status__content__text").textContent="JS ecosystem is all hack upon hack upon hack upon hack. We love hacks, but don't want to relay on them to access my bank or watch a movie. Just send me a webpage, not a soup of obfuscated, impossible to edit scripts that assemble god sake app. That's the reason we can't have new browser engines anymore, try to disable one wrong thing and whole app breaks. Browsers are made as interactive documents viewers, not disposable operating systems.";
How many people who post JS BAD memes could provide a single example of why it’s bad without looking it up?
It was made in 10 days, its type system is a mess, its syntactic shit, and there are just better replacements out there that will never see the light of day due to how big its already gotten
deleted by creator
Coming from other languages I find the async by default thing annoying but I fully understand it’s necessary for web sites to render in real time.
Well, use typescript. There’s no excuse to use pure JS nowadays. It doesn’t solve everything, but it for sure solves 95%+ of JS issues.
Or use WebAssembly, I think it’s usable nowadays?
WASM knows kung-fu
I use it regularly (web dev). A lot of complaints and mockery stems from using it badly. None of the programming languages that are regularly the butt of everyone’s jokes force you to use them badly, they just allow you to. If you follow good practices, you’ll be just fine.
Many of the programming languages that are regularly the butt of everyone’s jokes don’t just allow you to use them badly, they make it easy to do so, sometimes easier than using them well.
This is not a good thing. A good language should
The reality is that the average software developer barely knows best practices, much less how to apply them effectively.
This fact, combined with languages that make it easy to shoot yourself in the foot leads to lots of bad code in the wild.
Tangentially related rant
We should attack this problem from both directions: improve developers but also improve languages.
Sometimes that means replacing them with new languages that are designed on top of years of knowledge that we didn’t have when these old languages were being designed.
There seems to be a certain cynicism (especially from some more senior developers) about new languages.
I’ve heard stuff like: every other day a new programming language is invented, it’s all just a fad, they add nothing new, all the existing languages could already do all the things the new ones can, etc.
To me this misses the point. New languages have the advantage of years of knowledge accrued in the industry along with general technological advancements, allowing them to be safer, more ergonomic, and more efficient.
Sure, we can also improve existing languages (and should, and do) but often times for one reason or another (backwards compatibility, implementation effort, the wider technological ecosystem, dogma, politics, etc.) old quirks and deficiencies stay.
Even for experienced developers who know how to use their language of choice well, there can be unnecessary cognitive burden caused by poor language design. The more your language helps you automatically avoid mistakes, the more you can focus on actually developing software.
We should embrace new languages when they lead to more good code and less bad code.
C++ has entered the chat
Which subset of C++ specifically? That thing’s ridiculously huge.
<span>Please enable JavaScript to use this app</span> document.getElementById("noscript").style.display = 'none';document.getElementById("noscript-info-with-bold-text").style.fontWeight = 'bold';document.getElementById("status__content__text").textContent="JS ecosystem is all hack upon hack upon hack upon hack. We love hacks, but don't want to relay on them to access my bank or watch a movie. Just send me a webpage, not a soup of obfuscated, impossible to edit scripts that assemble god sake app. That's the reason we can't have new browser engines anymore, try to disable one wrong thing and whole app breaks. Browsers are made as interactive documents viewers, not disposable operating systems.";
deleted by creator
Reminded me of this: https://www.destroyallsoftware.com/talks/wat
deleted by creator
deleted by creator
The meme was not about bad or good… It’s about Colors (CSS = Barbie), and Complexity (JS = Oppenheimer)
deleted by creator
Quite a few
Security concerns.