5 ms·
Before ~2015: "JavaScript is a terrible language!" After ~2016: "Stop improving JavaScript, I can't keep up!" (Not a personal attack, just general sentiment I
by tlrobinson 9y ago
Before ~2015: "JavaScript is a terrible language!"
After ~2016: "Stop improving JavaScript, I can't keep up!"
(Not a personal attack, just general sentiment I've observed)
- _pmf_ 9y agoTo be fair, those are not mutually exclusive options.
- camus2 9y ago> After ~2016: "Stop improving JavaScript, I can't keep up!" The bad parts are still here that's the problem. The language didn't improve so much that it got new features. But var, ==, type coercion and co still exist.
- aaron-lebo 9y agoSo use a linter which disallows var and some of the worst usages and and use libraries which make up where it's lacking. It's the price of improving the language + backwards compatibility.
- camus2 9y agoA linter never fixed the runtime behavior of a language, this is beside the point. The point is the assumption that Javascript is a better language today.
- aaron-lebo 9y agoYou mentioned var, let exists to fix those issues, hence the language just in that one area is better.
- Vinnl 9y ago> But var, ==, type coercion and co still exist. They all have alternatives, and linters can help restrict you to those alternatives. As a developer, that makes it pretty doable. I presume you too can appreciate why they can't simply be removed.
- tlrobinson 9y agoThe first two are totally solvable with a couple ESLint rules (`===` and `no-var`), and the latter somewhat solveable with TypeScript or Flow.
- andreareina 9y agoI've been using JS lightly for a couple of years, in earnest for a couple of months. From the perspective of someone who's comfortable in C, Lisp, Python I think the semantics are fine (given a certain subset). One major issue I have with JS is that the standard library is severely lacking in the basics. We have Promises but Math.round only rounds to the nearest integer. We have generators but no string formatting (the template syntax is not a replacement).