The problem is refactoring. Want to rename a method? If the name isn’t unique enough to search for, you can’t do it. There’s too much risk that you’ll miss things and create severe bugs. Of course, that can be solved with really thorough unit tests, to some extent. But then you’re just spending a lot of extra time writing tests for things that typescript will enforce automatically.
You also get much better autocomplete from the editor with typescript, which speeds up development a lot. You save a pretty huge amount of time if you don’t have to constantly look through documentation or even dig through a bunch of code to figure out what methods are available and how to use them.
It does some funky things with type coercion and comparison which I don’t particularly like, but I generally understand why it does things that way.
A lot of the weird quirks of JS come from the desire to avoid completely blowing up and crashing as much as possible, which makes sense in a web dev context. Forcing weird operations to at least return something can prevent an unhandled error state in a single component from causing an entire page to crash, even if that component ends up malfunctioning as a result.
I hate all these “hurr durr javascript bad” posts. It’s really not so bad, and worse languages exist. It’s really just a bad, overused joke.
Esoteric languages do not count. Super obsolete ones don’t either. At that point you’re left with maybe PHP.
Now that might be true. I guess the main counterpoint is that it’s not like you never encounter it, so it’s natural it gets joked about a lot.
Yeah, I really don’t know what widely used language is worse than Javascript besides php (which is hardly used in new projects).
Weirdly, Kbin is written in it, though.
I can assure you that Laravel is still used for new projects
That’s one of the overused memes we can leave behind at Reddit.
It is an overused joke, but it doesn’t make it any less true.
I’d bet that most people who think this way either haven’t used it in the last 10 years or they only know it from the memes.
Nope. Use it very often, though mostly usually with typescript.
Raw Javascript becomes a massive hindrance in any project past half a dozen files and 1000 lines.
Typescript makes it a lot more usable.
I agree, I also prefer Typescript, but I don’t think I’ve ever seen a meme about JS not having strongly typed variables.
They either don’t center around any specific problem or things that are also mostly true about TS.
This was not our experience with raw JS programs in the 10k-20k loc range composed of scores of files.
The problem is refactoring. Want to rename a method? If the name isn’t unique enough to search for, you can’t do it. There’s too much risk that you’ll miss things and create severe bugs. Of course, that can be solved with really thorough unit tests, to some extent. But then you’re just spending a lot of extra time writing tests for things that typescript will enforce automatically.
You also get much better autocomplete from the editor with typescript, which speeds up development a lot. You save a pretty huge amount of time if you don’t have to constantly look through documentation or even dig through a bunch of code to figure out what methods are available and how to use them.
It does some funky things with type coercion and comparison which I don’t particularly like, but I generally understand why it does things that way.
A lot of the weird quirks of JS come from the desire to avoid completely blowing up and crashing as much as possible, which makes sense in a web dev context. Forcing weird operations to at least return something can prevent an unhandled error state in a single component from causing an entire page to crash, even if that component ends up malfunctioning as a result.
Even now, the only thing that Javascript has going for it is that it’s not Groovy…
You’ve said that, not us =P
@Ultra980 try being a PHP dev :(
Not my favorite language, but I don’t remotely hate it. The story of its creation is rather fascinating too.
The best languages allow you to program not just emojis as outputs, but with emojis themselves. 🫳⌨️🖥️