Hacker News new | ask | show | jobs
by bkovacev 517 days ago
Aside from the obvious that ninja let's you use django.
1 comments

The ability to use django is the main attractor. The other frameworks are great but make you reinvent Django if you require auth, orm, admin, etc
That would have been my argument exactly - I am not saying that Django fits every use case, but with my limited exposure to projects that have ended up using non-Django Python API framework, they ended up recreating the batteries included approach, with probably way too many issues waiting to be discovered with manually rolled out auth, middlewares and ORM.
It's such a shame Pyramid isn't more popular. I think you'll find what they have recreated is not Django, it's Pyramid.

The thing is, Django isn't just a web framework. Django is a CRUD app framework. It's great for building CRUD apps, but that's about it. In other words, it makes the easy stuff easy, but doesn't help with the hard stuff (in fact, it often hinders it).

I think the real reason for using Django is the "app" ecosystem. You wouldn't be able to get Django-style packages with Pyramid. It's possible with Django, though, because it's a CRUD app framework.

If you're not using "apps" then I guess the only other reason is the community support that you probably won't get from Pyramid + SQLAlchemy or similar.

The apps are a major sell like with any ecosystem. But don't forget you also get a stable, mature project, excellent documentation, a pool of developers, etc.
> But don't forget you also get a stable, mature project, excellent documentation, a pool of developers, etc.

You get all of that with any of Pyramid, Flask, FastAPI etc.

As for "pool of developers", I would expect any backend web developer to be able to pick up anything in a couple of days at most.

> You get all of that with any of Pyramid, Flask, FastAPI etc.

Yes, with fewer batteries, and so less consistency between projects, etc.

> As for "pool of developers", I would expect any backend web developer to be able to pick up anything in a couple of days at most.

Not some half-baked homegrown ORM, etc. Been there, seen it fail.

Oh but you wouldn't reinvent Django, you'd build a properly architected, simple system.
Of course you would.