Live data from Hacker News

The Decline of Django

david-dahan.com

41–50 of 173 posts

Re: The Decline of Django

#41
post #36

Seems like a strange bit of feedback to me. My company uses Django as the backend for our REST API and it's simply phenomenal. Django isn't a complete solution out of the box, but that's why things like Django REST Framework [0] exist. It supports JSON-based views and has an excellent serialization layer that can map directly to the ORM models. This setup does NOT help with serving our frontend app, but we're using R…

The core DNA of Django has always been conventional publishing / content management. It's usable for SPA, hybrid rendering models, and so on, but I would be nervous about putting in too much to make those first class, vs just steering people to other projects or frameworks for which those types of uses are the primary target.

Re: The Decline of Django

#43
I don't really understand this article at all. It comes across as a rant rather than picking on anything that actually points to a decline. Django is fully featured and still fast as ever. There are dozens of packages out there that extend it and the nature behind the way Django was built it encourages those packages.

It seems that the only genuine gripe is with documentation. Okay -- so contribute those changes? I've contributed documentation to lots of packages I use, including DRF, celery and so on. It's an open source project with an awesome community behind it. If you feel that docs need updating, then update them. It doesn't mean there is a decline in any way, shape or form just because it uses IRC as a support channel[0] rather than Discord.

[0] Worth mentioning that the Django support channel is perhaps the best support channel for any similar project of this size you can find

Re: The Decline of Django

#44
Eh, "[insert stable, mature MVC framework] is dying/dead/etc" articles are a dime a dozen on the Web. I suppose it could be considered a badge of honor for a framework to have some internet punter declare the framework as "dead". But, just to nitpick...

> Bad Official Admin GUI UX

For anyone reading, Django's admin tool is designed for situations in which you need to stand up a quick admin or build some internal admin functionality. For more complex cases, you build your own admin to fit your user needs (including the UI/UX). From Django's own documentation:

> The admin’s recommended use is limited to an organization’s internal management tool. It’s not intended for building your entire front end around. [1]

Also, regarding documentation, in my opinion I have yet to see any project have better documentation than Django.

[1] https://docs.djangoproject.com/en/3.2/ref/contrib/admin/

Re: The Decline of Django

#45

Earlier quoted context omitted.

Could you elaborate? After a ~10 years hiatus I revisited Rails last year and whipped up a CRUD app with auth in no time. No SPA in sight.

They've been mucking with the asset pipeline every single version and their forray into webpacker has been a disaster. Turbolinks and ActionCable have been attempts to compete with SPAs while still being SSR but both are just glitchy and a source of endless Heizenbugs. Thankfully Rails7 looks like they've restored sanity.

I have high hopes that Rails 7 will be much saner. Importmaps are such a Railsy solution, and if you need anything more jsbundling-rails will provide easy starters for ESbuild, Rollup and Webpack.

Re: The Decline of Django

#46
Same thing with the Grails framework, which is another Rails framework for Java eco-system.

After Grails got refactored between 2.x and 3.x which broke all plugins, most new Java projects went with Spring Boot. Popularity of the Grails framework has declined a lot since the release of Grails 3.0. But the strong decline the last few years I mostly blame on all MVC framework not being interesting enough for new young developers. Only David Heinemeier Hanson has a loud strong voice telling the world about how fantastic the Rails and MVC web application really are. Which makes sense considering that I feel Rails is still super popular.

But my preference is not Ruby, but rather Java :-) and I feel Grails is still awesome. And I also use Spring Boot for some projects.

Re: The Decline of Django

#47

1) Documentation is too verbose 2) Onboarding new developers lacks IDE specific tooling for free 3) Admin GUI isn't great 4) Async support is still incomplete 5) Static types aren't used in Django 6) Django is MVC which isn't useful if you just need a light V 7) People ignore other, newer tech because Django exists What??? 4 and 5 are legit complaints, the rest is literally the nittiest of picks, in my opinion. You d…

Number 1 isn’t a show stopper in any way but is it pretty annoying. The primary django docs are very textual and place more emphasis on developing intuition and understanding context, than something that can be quickly referenced. Also a lot of the method parameters are either not documented or not explained. I think Django would benefit from a more technical and complete but less dense secondary reference.

Re: The Decline of Django

#48
Found lots of things rubbed me the wrong way about this post, though tbh I really haven't done Django dev; only Flask.

I'll just nitpick on their bagging on Pycharm. Pycharm is great. Frankly, I like it better than VS Code; though I do grant VS Code has its strengths, especially as a lightweight capable code editor.

Re: The Decline of Django

#50
post #15

Earlier quoted context omitted.

I second FastAPI! In my mind it's, "Flask, but better." The killer feature in my mind is that it leverages type hinting and dataclasses, using Pydantic, to take away a lot of the grindyy, boilerplate parts of writing an API, like type checking, dependency injection, generating good error messages, generating API documentation, ... Even when I'm not using FastAPI now, I use Pydantic everywhere. Types in Python, while…

Pydantic's BaseSettings has cured my configuration-DSL itch. You can type in (typed) defaults in Python and have them overidden by env vars.

And Docker secrets! It's also pretty easy to rig them up with YAML files! BaseSettings is amazing.

The only gripe I have with Pydantic is that sometimes it has really opinionated type coercion that can get you in trouble sometimes. For instance, `Union[int, float]` will accept either an int or a float, sure, but it will always output an int. This isn't difficult to fix but may only realize it after having shot yourself in the foot.

Post reply on HN