You need thousands of tools and there always exists 3 alternatives.
Js/ts as a language is the smallest problem.
Edit: But I absolutely agree that $subj platform should focus on that, not even on the language. A language can be learned in one evening on a “fiddle” site, no platform required.
Personally, when I become interested in another language, all I want is a page of common snippets or a cheatsheet to get the feel of syntax, and then how to make and deploy a non-toy project with all the usual libs and tools attached.
I was used to use vue, there was webpack now it's vite or nextjs, some tools are build on top of others like nextjs on webpack and vite on esbuild.
If you stop working 2 years in js your tools will completely change.
E.g. java has maven and more and more use graddle, but it's way slower change.
For meta, I’d say our issue here is not the lack of platforms or manuals, but that we simply don’t have a decent search engine, because we don’t have a decent internet economy model. Our models and tools are indecent and there’s no help.
Why should I have to rely on Google/stack overflow/chatgpt to set up my environment?
I will confidently back you up. I am a well-rounded programmer, and have used many languages and domains. Kotlin (in the Android SDK at least) is the most complicated, messiest, least-pleasant I've found. JS/Node is second place.
I'm reasonably confident it's not the Kotlin language itself I dislike, so much as the tooling associated with it, and the expected project structure.
For me the most time intensive part of learning a new language is learning the new libraries. I don't mean here the standard library but rather things like library for interacting with SQL database, how mocking works in the new language, how concurrency works, web API framework.
Learning "just" a language can be done over the weekend. Learning to properly use its standard lib and the entire environment of libraries may take years.
While they are building up that conceptual model of software development, an engineer is also building up knowledge about the _details_ of their first or primary language’s ecosystem, libraries, and tooling. This also takes years, one just doesn’t notice it with the first language because it intuitively feels like “learning programming” since it happens in parallel.
The result is that a senior engineer can be productive quickly in any language, relying mostly on their conceptual model. But to go from “productive” to “mastery” with a new ecosystem is still all the same time and effort it took for the first one.
But I am an engineer, I build stuff. I am not sure I want to become Picasso
An unsolved problem in computer science
Python tooling got better with uv.
Python, how do I install and work with venvs? What is poetry and why is it better?
Scala, what is sbt and how do I make it work in Intellij?
Things I have learned under way, but still more of a headache than the actual language, since most ideas there are recognizable. And problems in the dev env can make you get stuck for several hours.
Docker helps a bit as an abstraction, but not all the way to the development environment.