3 ms·
Js is clearly very popular. What are these fundamental flaws that js has that this comment mentions? I don't understand why it would be the "paragon of wasted o
by ejcx 9y ago
Js is clearly very popular. What are these fundamental flaws that js has that this comment mentions? I don't understand why it would be the "paragon of wasted opportunity".
- roblabla 9y agolet's see... Lack of a real integer type ? The fact that {} + [], [] + [], [] + {} are all valid and all give different results ? [1] The fact that it has some silent error conditions like NaN ? The fact that, in v8 (which is the most common js engine out there), if you add a comment to a function, it can suddenly start performing poorly ?[0] I love JS, I really do. Hell, I write nodejs for a living ! I find prototypical inheritance to be an awesome idea. The simplicity, and extensibility of the language is something that I really like from it. But I can see where people hating it are coming from. I wish lua had been used instead of JS. [0]: https://top.fse.guru/nodejs-a-quick-optimization-advice-7353b820c92e https://top.fse.guru/nodejs-a-quick-optimization-advice-7353... [1]: https://www.destroyallsoftware.com/talks/wat https://www.destroyallsoftware.com/talks/wat
- _ar7 9y agoMost of the issues you listed with the language itself are fixed by using either Flow or TypeScript. As for that V8 issue, it's not ideal, but how about just putting comments of that size outside of the function, or not overcommenting functions small enough to be inlined. I know a lot of people view using so much tooling as a con of the language, but if you use Babel + Eslint + Flow/Typescript, JavaScript becomes a lot nicer and safer to program in. For small to mid-sized projects, I think JavaScript is pretty great.
- piedoom 9y ago> Most of the issues you listed with the language itself are fixed by using either Flow or TypeScript. Hence the initial comment about putting effort into fixing something fundamentally broken.
- _ar7 9y agoAh true. I guess what I was really getting at was that even though JavaScript has some fundamental missteps, it's not beyond being fixed and definitely not the worst language in existence i.e. that behind the quirks, is a quite nice and powerful language that isn't a waste of effort.
- bushin 9y agoNaN stuff works according to the IEEE 754 spec.
- Sir_Cmpwn 9y agoPopularity has next to nothing to do with how good something is.
- blockloop 9y agoHere's a start http://bonsaiden.github.io/JavaScript-Garden/ http://bonsaiden.github.io/JavaScript-Garden/
- _ar7 9y agoIt sucks that all of this is valid, but it's mostly avoidable. Eslint + Flow/TypeScript will catch most of these quirks for you. Also lets not pretend that having a bunch of quirks like these is exclusive to JS. I'd say there are equally as many ways to shoot yourself in the foot in many other languages. For example, for C++, which isn't necessarily beloved but people don't want to "eradicate" like OP's comment states about JS, you can have an entire talk[0] on the quirks of type deduction. I think where JavaScript earns its bad reputation isn't necessarily its quirks, but its quirks in combination with a low barrier to entry, lots of beginners, a large community, being a multi-paradigm language, and the fact that most people writing it were forced to write it because it's the language of the web not because they wanted to. All that in combination results in a lot of bad code...but if you take the time to learn it and use a bunch of tooling (which isn't ideal), it's actually quite nice. [0]: https://www.youtube.com/watch?v=wQxj20X-tIU https://www.youtube.com/watch?v=wQxj20X-tIU