But in the end of the day, stick to this car long enough and it works for you.
Plus the most popular road of the world only accept this car so take it or leave.
But in the end of the day, stick to this car long enough and it works for you.
Plus the most popular road of the world only accept this car so take it or leave.
I personally don't like that Javascript has had to have a ton of work done on it to get it to the point of other languages that were better at their first release. It was just a ton of time spent on something that was weak to begin with.
If Javascript were better at the beginning, and this same effort was spent on it, it probably would be ruling the world, front and back-end, and be a really good language with great tooling around it.
There was a great amount of debate about nulls being a billion dollar mistake, but Javascript probably beats it in monetary damages by far.
I like it, some dont. I get it. All I ask is to not dismiss it.
Folks new to programming find these edge cases as a reason to not learn it. That irks me.
Some of us value our time and would like to improve our discipline. In other fields it's called being professional. It's a shame we care so little about it.
However, better tools and languages reduce your cognitive burden. The less mental context you have to work with the more you can focus on the problem at hand. If you have to constantly worry about language edge cases and odd behavior, it really detracts from being able to focus on the problem you are trying to solve.
There is a reason languages like TypeScript and Flow exist, they are helping to reduce this large burden JavaScript carries with it.
JavaScript is really great for small scripts (which is the use case it was designed for).
Anything beyond a few hundred lines starts to carry a lot more cognitive load. Not to mention that we are now building full fledged applications with tens of thousands of lines in this language.
Agree completely.
Depends really on how much care was put into the application structure, mostly from the outset.
I've followed opinionated styleguides closely on some projects, and have also walked into other swamp projects that snowballed into something massive from a few snippets of jQuery. The difference between working on something that was intended to be maintainable from the start and something that evolved haphazardly is of course like night and day.
I still think it's more the people and approach than the tools.
I understand that I need to use === instead of == to check if two things are actually equal, but I don't like that either.
It's not that you can't understand how the language works, it's that the language does some things that feel stupid when you're coming to it from any other programming language. Even if I can work around all of them it doesn't feel like I should have to when we have a lot of better planned programming systems, and that makes trying to get into js feel frustrating.
These were problems in various stages of JS's history, but not necessarily now:
Browser differences in javascript by not having a good specification or strong governing body.
Not having block-level scope despite convention in other C-like languages.
Optional semi-colons.
typeof inconsistencies.
Another problem with JS changing so much is developers picking up the language at various points in that development.
Its the browser implementation that was at fault. The ambiguity in specs was and is minimal to negligible for the past 8 years (since I started following). But like you said, not relevant today.
> Not having block-level scope despite convention in other C-like languages. > Optional semi-colons.
Its a feature, not a bug!
> typeof inconsistencies.
Maybe. Never faced it.
> Another problem with JS changing so much is developers picking up the language at various points in that development.
What I see constantly changing is JS frameworks and preprocessors, not the language itself. Newer folks tend to learn some JS framework first before the language itself (just like I did) and the constant change can hurt and impede progress and confidence. The language itself has been well documented and forgiving in my experience.
So yeah, point taken. You do not like JS. I do. Let's make peace with that.
So, what would be different about that? JavaScript does rule the world, front (definitely) and back-end (arguably, but there aren't a lot of contenders for the language that's more popular for new projects).
They both more or less accidentally became popular. None of them were very well designed. They both lacked type safety.
Unlike php though javascript became not only popular but it actually ended up being the only alternative.
Most languages had major design flaws. Rubyists will gladly complain about how OO is bolted on in Python, Python users will gladly talk about how slow Ruby's interpreter was and how god awfully complex the syntax is. Both of them have limitations in their runtimes and are actually catching up to JS in some areas (see Python's adoption of async).
We can talk about how baroque CL is or how much Java sucked in 1995, how massively complex C++ is, etc, etc. Those arguments have been made for decades, though. JS is no worse than most languages in various ways, but people are pissed off because their chosen language isn't as popular.
Maybe that's a cynical point of view, but these criticisms never get past the most superficial concerns, so it's not obvious why people really care so much.
I started with C in my early teens (first book I found, lucky me) and I've gone through the VB, PHP, Java, Python, Ruby, and Javascript phases. Honestly I've seen great engineering in all those languages (maybe not VB) and those projects have all been easy and pleasurable to work with (maybe not Java). I've also seen hideous stuff that's a total sanity destroyer. At least for me the main contributing factor to language dislike is dealing with shitty code. Except Classic ASP... That stuff is poison.
In Ruby code starts executing before everything is initialized making it unpredictable. Also JS is just so much smoother is composable. It's far superior to RUBY IMO
The features which make a language rise rapidly might just be different to the features that make a language "good".
PHP in particular is amazing for getting started at speed. I remember taking a HTML file and popping in a couple of lines of PHP in the middle. I still haven't found anything anywhere near that easy for making a server backed website.
If that's already your web server, anyway.
I agree, it sucks that js the only alternative in some cases. But hey, imagine if Java was the only alternative!
For some of us, A Toyota Corolla or a Honda Accord is more than capable of getting the job done.