Why Django and Grok matters

02 February 2008   5 comments   Web development

Powered by Fusion×

Now I realise why I'm taking a serious look at new "shorthand frameworks" like Django and Grok rather than Twisted, Plone 3 or Zope3: Because of jQuery! The Javascript framework which makes writing normal Javascript a joke.

Ever since I discovered jQuery I haven't looked back. Seeing "manual" Javascript code makes my crinch. By jQuery'ifying a pile of pure Javascript code you can go from 100 lines of code splashed with semi colons and for-loops into 20 human-readable lines. There's lots of magic which I guess you've just got to get over and accept but what's so brilliant is that stepping out of the magic into the wild is so damn easy and near. My only regret is not using jQuery since the day it was released. Now I've been using it for at least a year and can't see any reason for using anything else.

Ruby on Rails looks tempting too with its own nifty magic but I'm just afraid the step into "raw mode" is going to be too big. Like Plone, if you just do what you're told you can do you're getting brilliant results but anything more exceptional than that and you're back to more trouble than if you had done it without a framework.

My personal current dilemma is that I can't decide which on to invest in fully: Django or Grok. Grok seems technically superior but Grok as a community is where Django was a very long time ago. I'm going to try to master them both and some point in the future drop one of them. This is what I did when the Javascript frameworks came out. I eventually gave up on Prototype and Mootools and put all my effort into jQuery instead and I'm glad I did.


Hello, I'm in the same dilemma

Actually I'm using Django for my pet projects and I'm happy with it, but with all my honesty, if just grok would lack a bit less in terms of documentation (Django is fully documented instead) I would be with grok today. If it's true that Zope Component Architecture is initially hard to grasp it's also true that once you got it you are enabled to write well structured code that is ready to be extended/reused/maintained (isn't this a dream in the topten of us programmers?).
OTOH Django has something that grok will probably have just in the long period (hopefully): a vibrant, large and responsive *user* community.

Finally, I think that they both are great frameworks that worth a try, but IMHO the best choice is to mediate between them and use the best of which each one has to offer. At this aim, I'm actually trying to understand better zca and if it's possible to use it with django. At least in theory it should be possible and there is something about it on the web I'm going to read (http://www.stereoplex.com/two-voices/adapters-in-django-and-the-revenge-of-zope).
Hi there,

So what have you decided ? I found your comments SO TO BE TRUE ! First we noticed a dramatic increase in speed by using JQuery instead of outsourcing to coders who made their own javascript. Plus standardisation etc.

We chose for Plone 2 years ago, versus RoR.. and I think we're regretting it now. Not only do we have a lot of ideas (such as collaborative, social elements, speficic url requirements etc) but I sometimes feel we need to hire "the world's leading Plone magician" to get things done. Django on the other hand gives us much more choice, if ever.. the magician and us do not get along, or we need more magicians or whatever.

So unless we stay in the Plone system, exactly as it was designed for, we also feel we're spending a hell of a lot more time tweeking/working around it.. than if we could do it from scratch.

Any ideas you have on comparing Plone/Zope with Django would be very much appreciated though !
Peter Bengtsson
I don't think it's fair do compare Plone with RoR or Django. Plone is a content management system whereas RoR and Django are application frameworks. Sure, you can twist Plone to make it do whatever you explicitely want to do but if you're going to build something that has nothing to do with editing content and workflow and stuff then why bother?

Plone is in my eyes one of the best looked after open source project in the world. The only project to have a stand at PyCON 2010 and it's still very actively supported and developed. But it spits out content management systems, not web apps.
Hi Peter,

how about a followup on this?

Looking at your plog, this was the very last post about Grok, while Django even has its own category by.

Could you elaborate on the decision (if there was any formal decision) between them?
Peter Bengtsson
It's really quite simple: I couldn't get productive in Grok. In Django I could.

With Grok there was just too many hoops to go through and it was too anal about getting things right before you could actually build something. One example, with Django it reloads automatically when I change the code; with Grok I could never get that to work. Restarting would take seconds which is not an option in development mode.

Also, there's the "business perspective" on it. With Django there's loads of ready made plugins that are super easy to integrate meaning you don't have to write everything from scratch (albeit tempting). There are fewer people doing Grok too meaning there's less eyes on the code and fewer people available to help you when you get stuck.

Django has flaws and it's not perfect. But when it comes to delivering results my mind is dead set: Django rocks!

Your email will never ever be published

Related posts

The Official Dilbert Widget 31 January 2008
Ocado gets customer service right 02 February 2008
Related by keywords:
Difference between $.data('foo') and $.attr('data-foo') in jQuery 10 June 2012
Why I gave up on JQuery UI's autocomplete 20 October 2010
Lesson learnt with creating DOM element with jQuery 04 April 2008
jQuery and Highslide JS 08 January 2008
In jQuery, using the :visible selector can be dangerous 14 September 2010
Size comparison of Zope3, Django and TurboGears 04 February 2006
WSSE Authentication and Apache 13 December 2007
QUnit testing my jQuery Mobile site in full swing 17 March 2011
JetBlue a good and bad website 22 February 2007
Musings about django.contrib.auth.models.User 28 August 2010
To $('#foo p') or to $('p', $('#foo')) 24 February 2009
Pixoh.com and Instant Domain Search 16 May 2006