Something something dining philosophers.
Something something dining philosophers.
It’s true that you can easily fall into analysis paralysis when you start learning JS, but honestly things have somewhat stabilized in recent years. 10 years ago everybody was switching frameworks every 6 months, but these days we’re going on 8+ years of absolute React dominance. So I guess that’s it for the view layer.
The data layer has seen some movement in more recent years with Flux then GraphQL / Relay, but I think most people have settled on either Apollo or react-query now (depending on your backend).
On the backend there was basically only express.js, and I think it’s still the king if you only want to write a backend.
Static websites came back in fashion with Jekyll and Github Pages so Gatsby solved that problem in js-land for a while, but nowadays Next also fulfills that niche, along with the more fullstack-oriented apps.
Svelte, Vue, Aurelia and Mithril are mostly niche frameworks. They have a dedicated, vocal fanbase (see the Svelte guy as sibling to your comment) but most of the industry has settled along the lines I’ve mentioned.
Honestly I think the main thing that the JS ecosystem does well is dependency / package management (npm). The standard library is very small so everything has to be added as a dependency in package.json, but it mostly works without any of the issues you often see in other languages.
Yeah, it’s not perfect, but it’s better than anything else I’ve tried:
In contrast, NPM is pretty simple: it creates a node_modules and puts everything there. No conflicts because project A uses left-pad 1.5 and project B uses left-pad 2.1. They can both have their own versions, thank you very much.
The only people who managed to mess this up are Linux distributions, who insist on putting things in folders owned by root.
C is crazy. While you are learning it you are learning Make and gcc without your consent.
Java is crazy. While you are learning Spring you are learning Maven or Gradle even without your consent.
To any non-js dev taking this too seriously: A good half of the technologies mentioned in this meme are redundant, you only need to learn one of them (in addition to the language). It’s like complaining that there are too many Linux distributions to learn: you don’t, you just pick one and go with it.
I use famous programmers. First Linux server was Torvalds, first mac was Woz, currently in service I have Kernighan (one of the inventors of C), KJohnson (Katherine Johnson was a programmer for NASA) and Shamir (The S in RSA).
I use pancake, works pretty well. It’s paid, but only a one-time payment and you get the code.
EDIT: here’s the link: https://www.pancakeapp.com/
As a beginner you don’t see the benefits as it is indeed JS with extra steps. It’s not worth it for small projects and prototypes, but once you start having larger projects where you need to refactor something, you’ll see the benefits.
Also, auto-complete.
Lexical (rich text editor by Facebook) recently “migrated” their Github discussions to Discord… I have a question that I can see was asked on the discussion, as it appears in my search results on DDG, but I get a 404 when I try to open it. The fuckers deleted the discussions!
Of course, Discord only has poor-quality answers to that questions as it gets asked every week and maybe gets answered in a different way every time. Quality of discussion is much lower.
I really like GL.iNET’s line of routers. They come with OpenWRT pre-installed, too!
I run my instance via docker-compose, and it’s just a matter of setting network_mode: host
on the container (in the YAML).
Docker’s secret that most “getting started” tutorials seem to miss is docker-compose.yml. Who wants to type these long-ass commands to start containers? I always just create a compose file, and then
docker compose up -d
.Dockerfile is for developers, you shouldn’t need more than a docker-compose.yml for self-hosting stuff.