4 ms·
IMHO, JS is has more mature parts than any other language. It's fast, stable, portable, practical and for every problem you could imagine, there's an answer on
by egeozcan 5y ago
IMHO, JS is has more mature parts than any other language. It's fast, stable, portable, practical and for every problem you could imagine, there's an answer on Stack Overflow, immense community, easy to learn (while hard to master, like the English language). The problem is, the popularity also brings huge amount of immaturity. So, it also has more immature parts than every other language too! People keep adding new libraries, trying to promote them, and most of them are indeed beginners, because when most people start programming, they do learn JS mainly, or as an addition.
Yeah, JS has a very small standard library which exacerbates the problem but if you look at the amount of libraries that do what they do best and are stable, I guess no ecosystem is anywhere close.
Beginners should just follow the happy path, and it almost always works fine. People can use "create-react-app" or "express.js" or "lithtml"... But just learn the language too. I use next.js myself and am surprised how everything just works. I can't say the same for many C# frameworks (and from Microsoft nonetheless).
- arbol 5y ago... happy path... Having come back to JS recently after years away I feel that typescript should be the recommended way of interacting with JS. It makes it much easier to write code with reduced bugs.
- 5e92cb50239222b 5y agoI try not to use any libraries that were introduced less than 5-6 years ago. Thanks to this I don't experience much library churn and don't have to rewrite the same thing every few months. For example, I didn't pick up React until 2020. Let the kids play with their shiny toys if that's what they want.
- dgb23 5y agoI think this is a smart heuristic if you optimize for stability. Incidentally, you started to learn React when it's API's got drastically simplified over the previous class based approach. You joined at the right time so to speak. But I want to add that play isn't just for kids. For me, it is an important part of my life and work. Deliberate, free play gets you in a different mode, it's fun and worth doing without some external reward. Does it have to be new, "shiny" toys? Not at all! That's the nice thing about it.
- singularity2001 5y agoThe often unmentioned killer feature part of js is that you can express tree data directly*: person={ name: "frank", address:{ city: "Berlin ", zip:12345 } } It's a different kind of "maturity" than discussed in the post, but a very important maturity nonetheless. * (without TreeDataFactoryImplementation treeDataFactoryImplementation=TreeDataFactory.newTreeDataFactoryImplementation())
- Nicksil 5y ago>The often unmentioned killer feature part of js is that you can express tree data directly This is the case in almost all well-used programming languages. Calling it a "killer feature" is a bit of a stretch; it's more an expectation.
- singularity2001 5y agoYou are right. I was thinking of Java, C, C++, and C# but my knowledge about the last ones was outdated (long ago) https://stackoverflow.com/questions/138600/initializing-a-static-stdmapint-int-in-c https://stackoverflow.com/questions/138600/initializing-a-st... https://stackoverflow.com/questions/15501202/c-sharp-nested-dictionaries https://stackoverflow.com/questions/15501202/c-sharp-nested-... IF you are happy with some constraints or the syntax exploding with every level of tree depth added: public Dictionary<string, Dictionary<string, string>> info = new Dictionary<string, Dictionary<string, string>> ....
- jakopo87 5y agoYou can define type aliases at the begin of the file to reduce verbosity, as example: using dic = System.Collections.Generic.Dictionary<string, string>; Otherwise you can use an anonymous type: var person = new { name = "frank", address = new { city = "Berlin ", zip = 12345 } }; In this case you get a plain object, but all fields area read only.
- singularity2001 5y ago