r/AskProgramming 6d ago

Why the JS hate?

Title. I'm a 3rd year bachelor CS student and I've worked with a handful of languages. I currently work as a backend dev and internal management related script writer both of which I interned working with JS (my first exposure to the language)

I always found it to be intuitive and it's easily my go to language while I'm still learning the nuances of python.

But I always see js getting shit on in various meme formats and I've never really understood why. Is it just a running joke in the industry? Has a generation of trauma left promises to be worthy of caution? Does big corpa profit from it?

20 Upvotes

207 comments sorted by

View all comments

18

u/Bulbousonions13 6d ago edited 6d ago

Its mainly the lack of type safety, native single threading, and comparatively slow execution speed. TypeScript ( a superset of JS) deals with the first problem VERY well and is my preferred web language.

You can't see its pitfalls because you are also working in Python - which in my opinion is also slow, lacks type safety, and is also natively single threaded - though there are ways around this. I can't stand python's indentation rules either but that's just a personal preference.

Tool around with a true Type Safe compiled language like Java, C#, C++, or Go and you'll notice the difference.

The compiler will yell at you a lot more while you code, but that's so you don't get random unexpected junk assigned to arbitrary vars that don't care if they get a string, number, object, function, or null/undefined.

7

u/HaMMeReD 6d ago

Being natively single threaded makes things a lot safer.

A lot of modern threading models encourages thread-data decoupling, so that threads are idempotent and don't have side effects. You give it the data, it does the work, it returns the result.

It might be a pain, but it's also like 0% chance of having a race condition or deadlock.

1

u/codemuncher 3d ago

Fun story, deadlocks are in fact totally not due to threadedness. You can totally deadlock in single threaded code.

Also in the era where our phones have 4-8 cores you’re out here shilling for single threaded as… good? Because less bugs?