Hacker News new | ask | show | jobs
by Alex3917 2334 days 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.

2 comments

>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.

Do 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.

A 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.
I've not seen any of those magic benefits, just had massive pains with debugging and maintainability.