In reality, it seems, a successful language that runs in the browser had no way around becoming a "full-blown" language, as opposed to "easy".
In reality, it seems, a successful language that runs in the browser had no way around becoming a "full-blown" language, as opposed to "easy".
Thing is, sooner or later, at the very least you find yourself wanting something like lodash or jQuery[1]. Ironically, the latter also came into existence to make programming across different browsers simpler back in the bad old days (of not that long ago), and did an admirable job of that.
Unfortunately jQuery, and similar libraries of the mid-noughties era, provided the breach in the dam that's seen us swamped in a torrent of new, sometimes baffling, and on occasion arguably unnecessary platforms, libraries, and tools, which have made the process of developing for the client a much more intimidating process for those starting out.
[1] Although these days you'd be surprised by how much of what jQuery offered is now built into the browser APIs and works consistently across them.
Javascript is really cool when you learn it. However, the moment you dip into libraries you are dependent on someone else's work. Then you run into a problem because Native doesnt let you use a specific library, and googling your issue recommends that specific library. You use something else, it works alright. Months later you re-write everything anyway.
Like every other programming language?
> Then you run into a problem because Native doesnt let you use a specific library
You are confusing runtime and language.
>Like every other programming language?
The lack of a standard library means you'll be dipping in a lot sooner.
The only difference, in my mind, between a "standard library" and a "third-party library" is the level of trust. If a third-party library is widely used by a community and known to be built by trustworthy people, I don't see how it's functionally different from a "standard" library.
EDIT: To clarify, I'm only trying to make a general statement about libraries, not the trustworthiness of any particular language's library landscape.
There are languages which do a much better job of reducing or eliminating possible "blast radius" of a bug in a dependent library. Functional/immutable languages such as Elixir come to mind (for example, you can literally reduce the scope of a library to an individual function). This is not one of those languages.