5 ms·
Whenever I see people still praising Django in 2019, I immediately know that their technical understanding of the current backend and ops technologies is years
by trpc 8y ago
Whenever I see people still praising Django in 2019, I immediately know that their technical understanding of the current backend and ops technologies is years behind. Django is still okay for small and amateur projects but nothing more than that. It is a curse for a fast moving business.
EDIT:
even though I stopped writing Django for 3 years now but here are some of my reasons as far as I can remember:
1. mediocre routing (no nesting, all routes have to be declared in one place)
2. mediocre middleware (middleware is global)
3. mediocre ORM (easy only for very easy stuff, more pain in the ass than writing raw SQL itself when it comes to complex aggregations and joins) not to mention some of the famous ORM bugs that have been open for like a decade
4. custom user model? good luck fighting with Django errors to make that happen
5. custom authentication? external authentication? good luck
6. Django is built for 2000s websites not REST/gRPC era
7. want to use graph databases? noSQL? good luck
8. external migration for SQL? oh god, prepare yourself for the mental hell
9. Django as far as I can tell still ONLY supports decoding "x-www-form-urlencoded" bodies, yeah no JSON, it's that pathetic
Django is very intrusive and is pain in the ass in a fast moving environment where you want to use microservices, external authentication/authorization, APIs, gRPC, etc... that's excluding all problems of Python itself. I totally recommend Typescript/Express or Golang for doing any kind of non trivial backend with fast moving environment/requirements currently
- acdha 8y agoNo need to troll if you don't like it — move along and don't waste everyone else's time waving your ignorance around so proudly.
- trpc 8y agoaccusing me of ignorance while not providing a single argument is the ignorance itself EDIT: keep downvoting me, maybe downvoting the truth on a website will hide your technical mediocrity some day
- acdha 8y agoFeel free to substantiate your claims. Even after your edit it's just a bunch of big claims with no supporting evidence for the things which aren't simply wrong (e.g. “no nesting, all routes have to be declared in one place” sounds like you haven't ever used a Django app, including the built-in ones. Perhaps there's something else you have in mind but since you didn't explain, who else can tell?). Lobbing insults won't hide the fact that you aren't even trying to make a technical argument or otherwise contribute in any way to the discussion: > Eschew flamebait. Don't introduce flamewar topics unless you have something genuinely new to say. Avoid unrelated controversies and generic tangents. > Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- trpc 8y agoI made 9 arguments and you claim I am not even trying? good luck with your career, if you have any
- deleted 8y ago[deleted]
- dang 8y agoPlease stop also. Flamewar is not what we want here, and https://news.ycombinator.com/item?id=19545921 https://news.ycombinator.com/item?id=19545921 was as much a violation of the site guidelines as the comments you're criticizing. If someone is wrong, provide correct information and move on. If a comment breaks the guidelines, flag it and move on. In egregious cases, you're welcome to email us at hn@ycombinator.com. But please don't respond in kind or perpetuate spats.
- acdha 8y agoSorry about that — I deleted my last comment before your reply for the same rationale rather than wasting more time on a thread started in bad faith.
- xparco 8y agoWhat do you suggest?
- spectaclepiece 8y agoWould you mind sharing some more precise reasoning with regards to this statement?
- skullborg 8y agoDon’t bother, the poster doesn’t follow up his/her posts with any information backing up their statements or claims.
- joelbluminator 8y agoAs opposed to?
- zimablue 8y agoThis post is very antagonistic but I can say that point 3 rings very true, even using advanced/data heavy SQL got very annoying for me relative to SQLAlchemy and I don't think you really want to try and pull it out.
- dcbadacd 8y agoI second to this, SQLAlchemy was nicer to use when my data model wasn't super simple and used PostgreSQL specific features.
- preommr 8y agoIt's been a while since I've used SqlAlechmy, but I remember absolutely hating it. Like you said, Django's ORM fails above very simple manipulation and even though SqlAlchemy might be better, it was still awful. I found it better to just write raw sql for my few use cases than to dive into page after page of sqlalchemy documentation.
- drinfinity 8y agoYou guys hate, but he is right and you know it. In year heart you feel this call, this.. twinge. You know this is not the True Path. I've done it both. Our Go + Angular project slaughtered Django and now I was dealing with services running at 25MB RAM with single digit CPU usages instead of the disgusting gluttons that Python and Ruby produces with memory usage measured in GBs. Production servers can have specs rivalling Raspberry PIs instead of IBM Blue Genes. Quite refreshing. The illusion of power that Django (and all fat frameworks) create works OK if you work with a narrow set of very specific web applications in a static environment with a team of Django specialists. Anything else and the project turns to shit.