Hey,
I’m undecided on which backend framework to pick for my next projects.
As of now, I’m pretty proficient with HTML, CSS/Sass, JavaScript, and React. I can build a multi-page UI with React Router and I’m pretty comfortable with getting data from an API and displaying it on the frontend. I’m not good at coming up with my own designs but I’m able to implement the kinds of designs you see on Frontend Mentor without too much trouble.
Now on the backend, I’ve dabbled in both Express and Django but haven’t built any projects with them.
There are two projects I want to build in the coming months to showcase on my portfolio:
- A pokémon web app with CRUD and login functionality.
- A bug tracker, got the idea from this this video.
What’s driving me towards Express is that I would use the same language on the frontend and the backend. Which would be convenient because while building these projects I’d like to further solidify my JS knowledge by diving a bit deeper into the language and ecosystem, which is why I’ve picked up the book Eloquent JavaScript. I also want to learn TypeScript at some point.
On the other hand, what’s driving me towards Django is that it’s a batteries-included framework. As opposed to Express which is pretty chaotic and you kind of have to npm your way through it. In Express there are a lot of ways to, say, implement the login or connect to the database and you have to do all these things on your own, it’s a bit overwhelming to make all these choices and know which npm package to use and where given my lack of experience with backend development. Because of the lack of structure, I fear that with Express I’ll develop bad habits and make bad choices without even realizing it.
While in Django these things are basically taken care of for you and it forces you to adopt good practices. At least that’s my understanding. Plus the admin interface is super handy and smooth to work with.
My only quibble with Django is basically that it’s not in JavaScript! xD I mean, I’m pretty comfortable with Python, not to the same extent as JavaScript but I'm comfortable enough with the language to use it with Django. It’s just that I’d like to get a more advanced understanding of JavaScript and for that Python would get in the way because I would have two languages to focus on. My point is I’d rather be excellent in one language (JS) than intermediate in two (Python & JS).
I guess the ideal would be a batteries-included JS framework. I know NestJS seems to be a popular choice but it’s built on top of Express so it would make more sense to have a working knowledge of Express first anyway.
Sorry for the wall of text and maybe I’m overthinking this a lot, but I want to make an informed decision so that’s why I’m asking for advice from more experienced people.
(also posted this on the Django subreddit to get both perspectives)