Most active commenters
  • rollcat(3)
  • bnchrch(3)

←back to thread

Happy 20th Birthday, Django

(www.djangoproject.com)
578 points davepeck | 18 comments | | HN request time: 0.444s | source | bottom
Show context
bnchrch ◴[] No.44560718[source]
As someone today who is an unrelenting critic of python.

I have to say thank you to Simon and the Django community as a whole.

Its a wonderful "batteries included" framework that has launched many successful projects, companies, and careers. Mine included.

And I'd be lying if I didnt say I still use pgadmin as my benchmark for evaluating admin panels in other ecosystems.

What you all created with Django is amazing.

We'd all be much further behind in tech without it.

Thanks absolute heaps.

replies(1): >>44561318 #
1. chistev ◴[] No.44561318[source]
How can you be an unrelenting critic of Python but love Django?
replies(5): >>44561413 #>>44561430 #>>44562790 #>>44566058 #>>44570653 #
2. rollcat ◴[] No.44561413[source]
I don't think you can honestly and objectively criticise something you don't truly know.

There's still no framework in e.g. Go that comes anywhere close to matching Django. It's pragmatic, doesn't do too much meta-magic (I still don't "get" Rails), lets you strip away any layers you don't need, etc.

replies(3): >>44562685 #>>44565730 #>>44566446 #
3. Daishiman ◴[] No.44561430[source]
Software is multilayered and you can prefer some layers over others.

I am huge fan of Python and Django. I despise PHP with the force of a thousand suns but I give enormous credit to Laravel as a well-designed framework that makes life bearable when working with PHP.

replies(1): >>44561616 #
4. fatbird ◴[] No.44561616[source]
Same here: I started with PHP (and Zencart and the like) and moved on to Python and Django. When I had to step back to PHP for a while, Laravel was an island of sanity, just because it was clearly "let's do Django/Rails in PHP".
5. mervz ◴[] No.44562685[source]
I think Phoenix is very close to Django at fitting that bill.
replies(1): >>44562801 #
6. bnchrch ◴[] No.44562790[source]
Same way I can hate the drivetrain of a car but love the interior! They're separate systems that co-habitate.

Specifically for python vs django, most of the things I dont like are actually attributable to decisions by the python team, not necessarily Django.

But many of the things I do like are attributable to the Django team.

7. bnchrch ◴[] No.44562801{3}[source]
Now Phoenix and Elixir are two technologies I love! But theyre admin offering is lacking. (Which is ok today in modern development and things like pgadmin)
replies(2): >>44565410 #>>44565654 #
8. rollcat ◴[] No.44565410{4}[source]
Django Admin is a bit of a trap though ;) it's powerful enough that you can build an entire application with it, custom views and powerful filtering and ACLs and whatnot, it easily gets 80% of your job done with almost nothing but a declarative DSL.

But the remaining 20%? Now you've dug yourself a hole with no recourse but a complete rewrite. It's time/money you would've otherwise spent anyway, but that sunken cost fallacy hits hard.

replies(4): >>44568370 #>>44568814 #>>44569708 #>>44570564 #
9. POiNTx ◴[] No.44565654{4}[source]
https://backpex.live/ is a pretty good Phoenix Admin. Django's admin is still unmatched though.
10. Induane ◴[] No.44565730[source]
Sometimes I think it's better to think of rails as a dialect of Ruby.
11. peterashford ◴[] No.44566058[source]
I'm not sure how this is even a question. I love Java, I hate a number of its frameworks. I've used Django and really liked it but I find Python awful for large codebases. Languages and tools made with the language are two different things.
12. imiric ◴[] No.44566446[source]
> There's still no framework in e.g. Go that comes anywhere close to matching Django.

I don't think Go is an apt comparison. Its philosophy is to eschew traditional frameworks in favor of relying on the rich standard library as much as possible, and on small external libraries when needed. This does lead to a duplication of effort and bespoke mini-frameworks that only technically have a fraction of the features of a typical framework, but the end result is much simpler, more understandable and flexible. All in a highly performant language with a great ecosystem, packaging, and tooling <3

That said, Django is an amazing framework that has stood the test of time. Like many here, it was one of the projects that kickstarted my web development career. Kudos to the team and community, and here's to another 20! \o/

13. globular-toast ◴[] No.44568370{5}[source]
Yep. Unfortunately the trap extends further than just the Django admin site itself. ModelForm and generic views are what power the admin site and they're exposed and you're encouraged to use them. Same with the low level crud permissions it creates. Once junior devs start doing the remaining 20% without rewriting you end up with something really difficult to maintain.
replies(1): >>44569601 #
14. andybak ◴[] No.44568814{5}[source]
Oh, I've been disagreeing with this take on the admin for such a long time!
15. rollcat ◴[] No.44569601{6}[source]
It's not just the junior devs. A client once came to me with something that looked like 99.9% is just ModelForm, some CSS, and money. I should've taken 25% upfront and said no to the increasingly absurd change requests, but oh well.
16. gnz11 ◴[] No.44569708{5}[source]
The Django docs do explicitly state that the admin is just meant for when you need a quick admin dashboard for internal applications. Anything outside of this domain or more complex, you should consider building your own.
17. pkphilip ◴[] No.44570564{5}[source]
Many frameworks have the "admin" sections with very similar drawbacks. It gets you 80% of the way there in 20% of the time, but the remaining 20% is very difficult to get done.

One framework which does not have this problem - or at least minimises the problem, is the Yii framework for PHP. A very nice and underrated framework

18. robertlagrant ◴[] No.44570653[source]
> How can you be an unrelenting critic of Python but love Django?

Writing a Django app is like writing Python, but it's more like writing Django.