Ask HN: What framework should I learn?
In 2024, if you have a good grasp of HTML/CSS/JS without the need for a job and disregarding the # of job postings - what is the best way to get going building full-stack web app?
I've never built a production ready app before and there is still a lot to learn about databases, deployments etc. But I also don't want to spend 5 years to ship a CRUD app with some API fetching and forms.
Any tips would be appreciated!
25 comments
[ 3.8 ms ] story [ 66.9 ms ] threadFor my current side projects I am interested in two kinds of technology.
(1) ML-enhanced apps that involve sorting and classifying content. Here I am drawing everything in the back end and using HTMX to partially update the screen to, for instance, create modal dialog boxes. The point here is that I want to quickly add new UI tasks and it will not be so quick if a front end build process is involved. (Notably in my system you can roll out a new task on the back end without reloading the front end)
My back end is Python which I am souring on. The basic problem is that it does not have threads. So if I have a 1GB ML model and a celery with 32 processes I could waste memory with 32 copies of the model. There are ways of working around all this but if I was just using Java, one copy of the model could be shared by any number of threads. Java doesn’t have the ML libraries though. As it is I think adding another RAM stick will solve my problems but that’s not a good answer for a system with a lot of users.
The general principle here is that the vast majority of React apps are just ordinary form processing apps that could be developed using the methods we used back in 1999 and seem to have either forgot or never learned (if we are young.). You could make the case that DX and UX were better then.
(2) Virtual reality applications using
https://aframe.io/
here there is no back end. With these tools you can make a world that is browsable with an ordinary web browser but put on a VR headset and you are there. This is another counter to the boring React app because it is something you could never do with an frontendless site.
My app is just a few external APIs
- Fetch audio
- transform to text
- let users edit
- save and publish via a form
- send to another external API
Good luck.
The thing I’ll share is that I have a day job and kids. I learned JavaScript and then started learning a JS framework.
The problem I had was that by the time I was able to become proficient in a framework, it was on its way out and there was some new thing.
I still do a lot of JS with Node and Express and Fastify but I’ve stopped bothering with further frameworks until I have a firm requirement for one.
I would have picked up Rails, but I am not well-versed with Ruby despite knowing about the productivity of the stack.
Around here, for whatever reason, Rails jobs seem to pay much higher than JS jobs. But, I know that's not true everywhere.
Otherwise the only purpose to JS frameworks is either attaining employment or because you cannot write original architecture.
You can create monoliths, miroservices, APIs, it works with almost any DB, it has a good performance, etc.
Laravel is way more opinionated, you do things the Laravel way. On the other hand Symfony is more flexible, you can use it as a full featured framework or use only the components you need. Laravel itself is built on top of Symfony components.
For quick prototyping Laravel is probably better. It's community is also bigger and they have built many tools for every use case you can imagine. But as I said, you're stuck with their own way of doing things.
Symfony is a bit tougher at first but more elegant. It allows you to write software the way you need. Its components are not tightly coupled and they don't get in your way. And I think it's easier for a Symfony developer to switch to Laravel than viceversa.
For server side rendering, you can go with something simple like expressjs, flask or even... Wordpress -_X Yes I did just say that.
- Server side framework (Hono or ElysiaJS)
- HTMX / Hyperscript, Alpine
Seems simple enough, but still not a lot of batteries so you kind of start building from scratch every time.
[1] https://www.baeldung.com/spring-tutorial