4 ms·
Still Django. It's in a weird state where it's starting to show its age, but everything else is at least 10 years away from catching up. So still the best bet i
by Alex3917 7y ago
Still Django. It's in a weird state where it's starting to show its age, but everything else is at least 10 years away from catching up. So still the best bet if you're starting something new today.
- vnpc1 7y agoCan you share a bit more about how it's showing its age? (I'm not a web dev, but played around with Flask recently and in general find the giant ecosystem of different frameworks fascinating.)
- Alex3917 7y ago> Can you share a bit more about how it's showing its age? 1. There are some bugs that can't be fixed just because they break backwards compatibility. E.g. usernames are stored to the database incorrectly by default, but the dev team isn't going to change it. So if you don't know that it works the way that it does, it can cause issues. 2. Most people now use a js frontend and a REST backend. Django can do this well, but because it wasn't originally designed to be used that way there is a ton of random cruft that isn't super useful to most people anymore. 3. No good async story. They are working on this, but it's going to be kind of bolted on rather than designed for async from the ground up. 4. Lots of random cruft related to weird design patterns that folks have advocated for over the years. You don't have to use any of it, but the fact that it's there leads a lot of people to believe they should be using it, which leads to bad codebases. Basically you can do everything you'd want to or need to using Django, but there is just a bunch of random crap in there that you need to prevent people from using. And preventing people from doing stuff that they want to do tends to lead to either conflict or technical debt, so it would be much better if it just weren't there in the first place.
- carlmr 7y ago>4. Lots of random cruft related to weird design patterns that folks have advocated for over the years. You don't have to use any of it, but the fact that it's there leads a lot of people to believe they should be using it, which leads to bad codebases. If i saw this sentence out of context I would have bet a decent amount of money you're talking about C++. This describes C++ to a T.
- mattmanser 7y agoDo most people actually use a js front-end and a rest backend? It's still brittle, it's still user hostile and it's still slow. Seems like a massive waste of time and a vanity project to me. I'm still mainly doing server-side templates coupled with complicated js widgets when I really need them.
- Alex3917 7y agoA js front end itself (versus templates) is probably a wash for most use cases, but the benefits of having a REST back end that imposes a clear separation between the front end and the back end is enormous. IMHO the benefits are big enough to make it worth re-writing the front end over again every 5 years until the front end folks eventually get their act together. Just try to make sure you're doing as little logic as possible in the front end, because as I said every line of code you write is going to need to be rewritten, whereas with Django any code you write today will still be good 10 years from now with only minor maintenance needed.
- mattmanser 7y agoI've not seen any of those magic benefits, just had massive pains with debugging and maintainability.
- npolet 7y agoI always reach for django for new projects. It's never let me down and can be used in many, many ways. I usually end up with fairly succinct code and it's never difficult coming back to a project that is 5-6 years old. Can always understand what's going on in the project and get my mind back and running quickly with it. Using it with GraphQL (graphene) makes it feels a bit more like one of the newer frameworks out there. Really happy I learned it years and years ago. Nice to invest time into a framework that is still going strong so many years later.
- Zivanovicb 7y agoHow do you feel about implementing social authentication with Django Rest Framework? What are the packages you'd normally use?
- Alex3917 7y agoI don't like social auth so I haven't used any of them. But there are several packages for that.