I’m reading the YDKJS book series, and the author says at the beginning of the book that JS has received a lot of criticism. I googled it, and yeah it turns out to be true. Not only criticism, but a lot of people seem to totally hate the language and can’t wait for WebAssembly so that they can avoid it. I’m just a beginner to JS myself, but it honestly doesn’t seem that bad. Yeah it might have its issues, but in the books the author discusses ways you can be efficient in JS and avoid those issues. Moreover, with all the updates it’s getting, I think the language is a pretty successful one and a lot of stuff is being fixed.
I’ve read the language was designed in just 10 days, so that could be a reason, but even though, I still can’t see the reason many people hate it. Hoping to get some thoughts of more experienced people.
There are only two kinds of languages: the ones people complain about and the ones nobody uses. Bjarne Stroustrup
I used to hate the hell out of it years ago, then ES6 came and make it actually enjoyable.
@h4m3d Lol. Yeah that makes sense, because I tried to also google “why do people hate java/c#/c++/python… etc” just for the heck of it, and it seems people hate those as well.
There are still flaws, but many were addressed in ES6.
If you want to see a beautiful designed language check C# or Golang, you’ll realize what could be better in JS land.
Yeah I’ve actually tried C# before. My plan for the long term is to learn Golang and Ruby, and get into Java more in-depth. I’ve read really good things about Golang. I might actually try it sometime soon. Do you think with WebAssembly we’ll be able to use those languages on the front end? I’m thinking it might be worth to start getting into them soon.
I started learning Java myself . I wouldn’t learn wasm yet, it’s going to take a while to be widely supported, just like 2 weeks ago they said it was being enabled by default in chrome canary.
Nice. As far as I understood though, developers won’t really be writing WASM, but rather it would allow them to use a variety of higher level languages which will be able to get compiled to WASM.
People just like to hate on stuff and form tribes.
Why do people hate Windows / Macs?
Why will someone claw your eyes out for suggesting you should use Emacs instead of Vim?
That’s just what we do.
On the point of JS being designed in just 10 days…that’s kinda misleading. I mean, people are still adding to JS today, and show no sign of stopping - so it’s had 2 decades of design go into it at this point! It’d be like attributing all of my achievements and quirks to the short time it took to conceive me, and not the 34 years since I was born where I’ve undergone some pretty significant upgrades
But the main issue for JS not being so liked is that the community moves really fast. Everyday new tool on npm, new framework, new way of doing/coding. For people coming from a backend languages like Pythons, Ruby or Java, this can be really frustrating. Also, you have npm compatibility issues when you update your packages.
I use JS a lot. But I can’t say that I like it or dislike it. I use it Every language has its own place and as a developer you have to think which language/tool/framework to use on each occasion. Another real important factor is your satisfaction when you write your code. If you enjoy writing in JS, its fine and it would be best language for you. If you enjoy something else, then go with that (this is for backend, obviously you are stuck with JS for front end)
UPDATE: As an example, check out This article and comments on it.
Yes, it is. I was so captivated with emotions that forgot to add:class based.
- Absence of stable and well matured solutions - longterm support is a headache .
- Every year there’s something new: Angular1.6, Angular2, Angular3, TS, PureScript, Elm. Newbies simply can’t keep up with such pace - entry barrier is growing and self-destructing over time which is frustrating.
- You simply can’t afford rewriting everything from scratch each time something new came out, and/or when you’ve updated your dependencies and everything had stopped working for the reason unknown.
- Prototype inheritance is a way to spagettize your brain neurons - there are not many people who really understands the difference between
- Node.js performance and overall JS performance is high compared to other interpreted languages, but compared to compiled ones, like Java / JVM based (Scala, Kotlin, Groovy etc), Golang, Rust, Swift node’s/JS performance is relatively poor . There’s a common misconception that if you’ll write a C extension and call it from Node / Java it’ll increase your performance, well actually calling a foreign function requires a lot of communicational black magic which comes with a huge costs. So Writting a C function for Java / Golang / Node.js with performance increasing in mind is a very dumb thing to do .
- Quality Assurance (QA) is a big bump - there’s not much tooling to provide proper metrics and embrace some of the Quality Engineering (QE) processes.
So, backend-wise Node.js is not so efficient and not a longterm viable solution.
Support costs are at least ten times higher then the development ones.
- It’s common, every teenager can learn it in few weeks. Well, at least I’ve did .
- It’s the only browser scripting environment available and it has quite good performance.
- There are tons of cheap work force, who are probably amateurs, but who cares as long as income and product value, even the illusory, grows, right ? Well, at least it’s an ignorant statement…
- Node.js has the best tooling for frontend assets bundling / dependency management, and it’s a dumb thing trying to use build tools of other languages.
- If you don’t really care about patents or how bloated your frontend can be, you can always go for React based frontend because it’s relatively simple and will be supported for quite a long time by facebook.
- There’s MongoDB that fits well for the Node.js based backend project, and allows to not worry about the data redundancy, integrity and consistency… at least 'till things are falling apart.
Every lang has the advantages or disadvantages, someone loves and someone hates it. No matter what. It’s still so popular
Less is more. --Mies van der Rohe
More good code has been written in languages denounced as “bad” than in languages proclaimed "wonderful --Bjarne Stroustrup
A language that doesn’t have everything is actually easier to program in than some that do. --Dennis Ritchie
The cheapest, fastest, and most reliable components of a computer system are those that aren’t there. --Graham Bell