Happy 20th Birthday, Django
Stability, longevity, and careers
- Many commenters say Django literally started or defined their careers, from student side-projects to startups, ML labs, and long-lived companies.
- A recurring theme is stability: apps begun on very old versions (e.g., 1.4/Python 2.x) reportedly still run on Django 5 with modest migration effort.
- Django is praised as a rare web framework that’s still relevant and pleasant after 15–20 years.
Design philosophy and influences
- Django’s “batteries included” approach and strong, cohesive philosophy are repeatedly highlighted as differentiators.
- Several note it was originally shaped by PHP experience; request.GET/POST and the template system were influenced by PHP practices and Smarty, but deliberately avoid “PHP-style” arbitrary logic in templates.
- There is debate over how much it was inspired by Rails; timeline comments suggest independent origins, with mutual influence later.
ORM, admin, and “batteries included”
- The ORM is one of the most-loved features; some miss it when using other stacks and even add Django to projects just for schema/migrations.
- Others dislike the query DSL, finding it non-SQL-ish and hard to remember; some prefer SQLAlchemy’s thinner abstraction.
- The admin is seen both as a killer feature and as a trap: great for internal CRUD and fast prototypes, but hard to extend for the “last 20%” without a rewrite.
Async support and typing
- Async support is described as “clunky and incomplete”: heavy use of
sync_to_async, missing transactional async DB support, and limited async support in third‑party libraries. - A few argue that in real-world Python async projects, blocking issues are common anyway.
- Lack of first-party type hints is a noted pain point; workarounds include isolating the ORM layer and mapping to typed dataclasses/Pydantic models.
Comparisons with other frameworks
- Some have moved to FastAPI or Litestar for APIs and dependency injection, but miss Django’s ORM, integration, and tooling.
- Rails is widely respected; preferences often hinge on language taste, ecosystem size (Python wins for data/ML/GIS), and stability.
- Laravel is seen as having borrowed from Rails/Django and “moved faster” on things like job queues, websockets, modern forms, and CLI tooling.
- Flask is liked for minimalism, but several report Flask projects organically growing a “DIY Django” of bolted-on components.
- Phoenix/Elixir, Go, and others are mentioned as attractive but still lacking Django’s depth of batteries and admin.
Frontend and “best way to use Django in 2025”
- Two main camps:
- Headless/backend-only Django with React/Vite/Next.js and OpenAPI for rich SPAs.
- Classic Django templates plus HTMX (and sometimes Alpine.js) for moderate interactivity without heavy JS stacks.
- Some find HTMX/Alpine hard to maintain on larger UIs and prefer returning to React; others love the simplicity of server-rendered templates.
Documentation, community, and governance
- Django’s documentation is repeatedly called “gold standard” and “documentation as empathy,” including versioned docs going back many years.
- The community, local user groups, and the framework’s patient deprecation policy are seen as key to its longevity.
- Litestar is praised partly for its distributed governance, contrasted with more BDFL-driven projects; Django itself is viewed as having strong, long-term stewardship.
Critiques and differing experiences
- Some developers simply “don’t enjoy” Django, citing hidden magic, monolithic assumptions (RDB+ORM+HTML/JSON), and difficulty when using non-relational backends or non-Django ORMs.
- One commenter, despite great respect for Django’s engineering, avoids it for modern API-first work, preferring lightweight frameworks and direct SQL.
- A minority finds Django “toy-like” compared to Rails, though others point to large-scale users as counterexamples.
Funding and sustainability
- The blog’s note that the Django Software Foundation is only ~25% toward its annual funding goal sparks concern.
- Several commenters see this as emblematic of the broader problem: critical open-source infrastructure creating massive value while struggling for financial support.