5 ms·
"JavaScript Delenda Est", by zeveb: https://news.ycombinator.com/item?id=11447851 https://news.ycombinator.com/item?id=11447851 Excerpt: JavaScript is the XML,
by acheron 9y ago
"JavaScript Delenda Est", by zeveb: https://news.ycombinator.com/item?id=11447851 https://news.ycombinator.com/item?id=11447851
Excerpt: JavaScript is the XML, the Yugo, the Therac-25 of programming languages. The sheer amount of human effort which has been expended working around its fundamental flaws instead of advancing the development of mankind is astounding. The fact that people would take this paragon of wasted opportunity and use it on the server side, where there are so many better alternatives (to a first approximation, every other programming language ever used), is utterly appalling.
- nulagrithom 9y agoMy opinion towards JavaScript is much like Cato's towards Carthage: it must be rooted out, eliminated and destroyed entirely. I don't know if I'd go quite so far as to say that the fundamental challenge of mass computing is the final destruction of JavaScript — but I want to say it, even though it's false. Beautiful. I actually really enjoy node.js and the ecosystem + community surrounding JavaScript. There's seriously a lot of passion and work going in to it. JavaScript itself though? Horrible. I hate it.
- ejcx 9y agoJs 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
- ptr_void 9y agoI'm a student trying to learn server side programming, I've started with node js. There seems to be a whole lot of modules to help with anything and with ES6 js doesn't seem so bad, and very fast (to write) as well compared to C++ that I've attempted. What are these better languages, what should one learn now for server-side when starting out?
- signed0 9y agoPython, in particular flask: http://flask.pocoo.org/ http://flask.pocoo.org/
- notdan 9y agoIt's fine, it really is. Just stick to what you are being productive with and enjoy actually building something useful.
- ethbro 9y agoKeep a sticky note next to your desk and, while you're learning, make a mark every time the answer to "Why does it do that?" or "How do I do this?" has a seemingly random or counterintuitive answer. In a year, that's the tally of how terrible or great a language is. Bad languages don't just make bad choices, they make bad choices and then make different choices for other, similar questions that should be related.