News for hackers. Stuff that matters.
Re:Why Django Sucks by kmfrk on Wednesday June 06, 2012 @08:54PM (#4077013)
Spoelski has a great rant about frameworks and the concept of abstractions ad nauseam: http://discuss.joelonsoftware.com/default.asp?joel.3.219431.

In a way, frameworks are inherently stupid, but who's to decide where between assembly language and x layer abstraction people should work in?

I think people who criticize Django have yet to make up their minds about what a framework is all about, and what, if anything, it's for. They just hold on to their utopian idea of what their framework should be.

Django was created for practical purposes by people who used it in publishing. I think that's a great foundation for a framework - for some people - and piling on it is just a stupid bandwagon.

---

EDIT: I found a better way to put this: the author doesn't have a problem with Django; he has a problem with the concept of frameworks.

Re:Why Django Sucks by detst on Wednesday June 06, 2012 @09:22PM (#4077103)
> he has a problem with the concept of frameworks

I'd say it's more of a problem with frameworks as they exist today. I'd like to see a movement to REST API service frameworks with some level of cooperation to get compatibility for standard client libraries.

Everything then gets built around services: from static site generation to single-page apps, third-party developer APIs to admin interfaces. Then you'd have flexibility to replace any piece of the architecture, whether to get better to performance from a service or to use the latest JS single-page app framework.

Re:Why Django Sucks by xxpor on Wednesday June 06, 2012 @10:56PM (#4077386)
Jeff Bezos recognized this 10 years ago:

https://plus.google.com/112678702228711889851/posts/eVeouesv...

His Big Mandate went something along these lines:

1) All teams will henceforth expose their data and functionality through service interfaces.

2) Teams must communicate with each other through these interfaces.

3) There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team's data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.

4) It doesn't matter what technology they use. HTTP, Corba, Pubsub, custom protocols -- doesn't matter. Bezos doesn't care.

5) All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.

6) Anyone who doesn't do this will be fired.

7) Thank you; have a nice day!

Re:Why Django Sucks by taligent on Thursday June 07, 2012 @12:36AM (#4077638)
I remember when people thought Bezos was mad for doing this.

Now it has meant that Amazon can transition internal infrastructure into external AWS infrastructure and charge for it.

It really is genius and wouldn't surprise me if this becomes the future of how enterprise companies develop software.

Re:Why Django Sucks by pfraze on Thursday June 07, 2012 @12:22AM (#4077600)
Check out LinkJS. That's the project goal.

https://github.com/pfraze/linkjs

Re:Why Django Sucks by MatthewPhillips on Wednesday June 06, 2012 @10:01PM (#4077224)
The problem is not frameworks; the problem is object oriented programming. Simply put, OOP lends itself to kitchen-sink frameworks because it is the only way to really share code in OOP. We write these large hierarchy of objects and then, because we have to carefully maintain state, we mark most of it as private, or sealed. Then we give precise instructions on how to consume and use the code, and even more precise instructions on how to extend it.
Re:Why Django Sucks by UK-AL on Wednesday June 06, 2012 @11:31PM (#4077464)
Well that's strange because Django didn't use much OO either when I used it in the past, only for the ORM.
Re:Why Django Sucks by bad_user on Thursday June 07, 2012 @06:31AM (#4078306)
You must have been using a different framework called "Django" than I did.
Re:Why Django Sucks by jonknee on Thursday June 07, 2012 @03:08PM (#4080758)
Have you used Django much? Some classes you run into frequently (besides Model):

* Form * HttpResponse * All middleware * Template * Etc, it's all classes except if you write function based views

Re:Why Django Sucks by anthonyb on Thursday June 07, 2012 @03:16AM (#4077955)
Also this is Python, so you can poke the internals however you like :)
Re:Why Django Sucks by sashahart on Thursday June 07, 2012 @10:05AM (#4079051)
You can, but that doesn't mean you should. It's brittle. If your app or library breaks because a minor update to a dependency changed those internals completely, you can't say you weren't warned.
Re:Why Django Sucks by mattdeboard on Wednesday June 06, 2012 @09:16PM (#4077074)
Who's piling on Django? It has flaws and weaknesses just like anything. It is a huge codebase that tries to be everything for everyone, and it succeeds about being almost everything for almost everyone, which is great.

But it can be very difficult to do relatively simple things with Django sometimes, mostly in the admin pages. Admittedly, this is a pain point people bring on themselves by trying to do too much there, but it's a big red swollen example of how too much interleaving and complexity make it painful or impossible to reason about what's happening.

Re:Why Django Sucks by acdha on Wednesday June 06, 2012 @10:38PM (#4077335)
This got a lot better in 1.4: TemplateResponse and the list filter API meant some gnarly code removal on my biggest customized admin project.

That said, I also chose to implement many of my admin changes at a higher level: templates which use jQuery, etc. and interact with the REST API for e.g. complex object creation are much easier than the crazy form / widget hacks I used to try.

Re:Why Django Sucks by mattdeboard on Thursday June 07, 2012 @07:09AM (#4078378)
Yeah agreed, I just started writing js apps with backbone and dropping them into wherever in the amdin
Re:Why Django Sucks by acdha on Thursday June 07, 2012 @09:54AM (#4079018)
I'm about +10 on that approach: customize the admin until you hit a difficult point, then stop trying to hammer screws.
Re:Why Django Sucks by mattdeboard on Thursday June 07, 2012 @04:10PM (#4081086)
But the only tool I HAVE is a hammer!
Re:Why Django Sucks by kmfrk on Thursday June 07, 2012 @08:20AM (#4078603)
I have no problem with criticism of Django, but to write a presentation called "Why Django Sucks" is bombastic, misguided link bait - replete with rage comics and whatnot.

It's just not constructive for the discussion, interesting as it may be.

Re:Why Django Sucks by Confusion on Thursday June 07, 2012 @10:07AM (#4079057)
'replete' with a few Reddit-style comics, of which exactly one could be argued is a Rage comic (though it actually isn't).
Re:Why Django Sucks by zeemonkee2 on Thursday June 07, 2012 @10:17AM (#4079114)
It's a long-standing tradition for DjangoCon to have a "Why Django Sucks" presentation. And a healthy one IMHO.
Re:Why Django Sucks by famousactress on Wednesday June 06, 2012 @09:15PM (#4077073)
Actually yeah. Great point. I think Django rules for publishing, or building sites where your general technical competition might be Wordpress.

It's frankly an awkward fit for loads of web applications. It seems to me (note: Django guy, not RoR guy) that the Rails stuff has adapted much better to applications that fall well outside of the blog/publishing sphere... but maybe that's a false impression.

Re:Why Django Sucks by jawr on Thursday June 07, 2012 @04:56AM (#4078117)
I disagree, you can write anything in Django.

I'm currently writing a control panel for libvirt and it's a pleasure to use Django, so many features mean I can concentrate on the problem at hand and not on reinventing the wheel.

Re:Why Django Sucks by igorgue on Thursday June 07, 2012 @12:57AM (#4077677)
Joel didn't write that article.
Re:Why Django Sucks by zeemonkee2 on Thursday June 07, 2012 @01:54AM (#4077785)
> I think people who criticize Django have yet to make up their minds about what a framework is all about, and what, if anything, it's for. They just hold on to their utopian idea of what their framework should be.

No, they have a different idea of what a framework should do or not do. Doesn't mean they have some utopian idea just because it's not Django.