The hot new development framework

I’m hearing more and more about Django. Pownce uses it. Zooomr uses it. I keep hearing more about it at developer events and seeing more and more developers using it. The developers who’ve told me about it say they like it a lot more than Ruby on Rails — they like it’s based on Python and that they report it lets them develop high-performance apps faster than other frameworks. When Leah Culver, lead developer of Pownce, told me about it while waiting in line for the iPhone, she had high praises for it. If you’re a developer, what do you think?

Comments

  1. Rob says:

    I tried Django quickly but it lacks in many areas, espeically file uploading. Their “newforms” doesn’t even support it, and it was a terrible mess trying to use their “admin” app to change the uploaded filename to a random md5-hashed string or change the directory to something that isn’t based off of dates (such as model ids). Both of these problems were fixed in six lines in Rails using Rick Olson’s attachment_fu and overriding two methods. Django is good for CMS but if you’re trying to build a web app, use Rails instead. Better helper methods for views, more plugins, and Ruby uses rubygems which allows you to easily manage any gems such as rails and actually delete them as well. Python has nothing like this except for “easy_install” which not every program supports and is flakey.

  2. [...] calls Django the hot new development framework. Not sure about the new part. It’s been around for a few years. But definitely hot. When I [...]

  3. Chris,
    I’m not sure I quite follow your example in comment #9.

    Don’t most of the frameworks store their application code outside of the public directory? I know django does, and I was under the impression that RoR did. With that being the case, I’m not sure what googling for a vulnerable file would get you.

  4. Chris,
    I’m not sure I quite follow your example in comment #9.

    Don’t most of the frameworks store their application code outside of the public directory? I know django does, and I was under the impression that RoR did. With that being the case, I’m not sure what googling for a vulnerable file would get you.

  5. Of the myriad technology decisions we had to make for fluther.com, django has been our best. The community is extremely responsive, and the biggest positive is that to my coder’s mind, things just *make sense*. Every time I dig under the hood, I’m always impressed.

  6. Of the myriad technology decisions we had to make for fluther.com, django has been our best. The community is extremely responsive, and the biggest positive is that to my coder’s mind, things just *make sense*. Every time I dig under the hood, I’m always impressed.

  7. The Lazy Youth – Part 3

    Programming will never be the same (the Scobleizer). For those of you geeky scaffold folks here are links about call -151 and HP 16C. Btw.: Part 1 of Lazy Youth is here and part 2 is here.

  8. Time for another complaint about the lazy youth.
    See my small cartoon:
    http://geekandpoke.typepad.com/geekandpoke/2007/07/the-lazy-youth-.html

    Bye,
    Oliver

  9. Time for another complaint about the lazy youth.
    See my small cartoon:
    http://geekandpoke.typepad.com/geekandpoke/2007/07/the-lazy-youth-.html

    Bye,
    Oliver

  10. Jeff Croft says:

    Oliver, I do realize that was humor (and fairly funny, to boot!), but just to clear up any misconceptions: Django has no “scaffolding.” Rails does the scaffolding thing (although I believe it’s purely optional), but Django does not.

  11. Jeff Croft says:

    Oliver, I do realize that was humor (and fairly funny, to boot!), but just to clear up any misconceptions: Django has no “scaffolding.” Rails does the scaffolding thing (although I believe it’s purely optional), but Django does not.

  12. pk11 says:

    rob, there are solutions for the file upload issues:
    http://www.djangosnippets.org/snippets/103/
    http://www.niquille.com/2007/06/17/streaming-upload-in-django-for-large-files/

    also, the new version of the admin interface is going to be more flexible (http://code.djangoproject.com/wiki/NewformsAdminBranch).

    use what suits you the best, if it’s rails good luck with that.

  13. pk11 says:

    rob, there are solutions for the file upload issues:
    http://www.djangosnippets.org/snippets/103/
    http://www.niquille.com/2007/06/17/streaming-upload-in-django-for-large-files/

    also, the new version of the admin interface is going to be more flexible (http://code.djangoproject.com/wiki/NewformsAdminBranch).

    use what suits you the best, if it’s rails good luck with that.

  14. frank peterson says:

    Somethings I dont like about Django:

    1.0 will most likely not happen until next year (it was supposed to happen last summer and then this summer). Sure a lot of the code is stable and guaranteed to be in 1.0 but some things are still changing and until 1.0 things wont be guaranteed to have backwards-compatibility.

    Their aren’t any useful tools (like radrails or instantrails) for it.

    The only Django book is the one online which is the one they are writing.

    There are no screencasts of anyone showing how they do things. There are blogs with some little snippets of code but thats it.

    No forums are available, you have to use Google Groups.

    Its been hell getting Django installed on Windows, however someone did figure it out ( http://thinkhole.org/wp/django-on-windows/ ), this shouldnt be so hard and should of been documented better earlier on. It’s probably a pain to install on Mac OS X as well.

    All Python books only have 1 small chapter dedicated to talking about Web Development and its so basic its unusable.

    The Django “community/bloggers/developers” seems to be more doing more of their own thing and not sharing info as much as other language “communities” seem to.

  15. frank peterson says:

    Somethings I dont like about Django:

    1.0 will most likely not happen until next year (it was supposed to happen last summer and then this summer). Sure a lot of the code is stable and guaranteed to be in 1.0 but some things are still changing and until 1.0 things wont be guaranteed to have backwards-compatibility.

    Their aren’t any useful tools (like radrails or instantrails) for it.

    The only Django book is the one online which is the one they are writing.

    There are no screencasts of anyone showing how they do things. There are blogs with some little snippets of code but thats it.

    No forums are available, you have to use Google Groups.

    Its been hell getting Django installed on Windows, however someone did figure it out ( http://thinkhole.org/wp/django-on-windows/ ), this shouldnt be so hard and should of been documented better earlier on. It’s probably a pain to install on Mac OS X as well.

    All Python books only have 1 small chapter dedicated to talking about Web Development and its so basic its unusable.

    The Django “community/bloggers/developers” seems to be more doing more of their own thing and not sharing info as much as other language “communities” seem to.

  16. Jeff Croft says:

    > It’s probably a pain to install on Mac OS X as well.

    Actually, it’d dead simple to install on Mac OS X, since OS X comes with Python, MySQL, and Apache. I’ve never tried it on Windows, though, so I’m sure you’re right about that.

  17. Jeff Croft says:

    > It’s probably a pain to install on Mac OS X as well.

    Actually, it’d dead simple to install on Mac OS X, since OS X comes with Python, MySQL, and Apache. I’ve never tried it on Windows, though, so I’m sure you’re right about that.

  18. pk11 says:

    hi frank,

    1) the irc channel and the django-user+dev forums are high traffic, you should be able to get help there
    2) as for editors: there is Vim+plugins, Emacs, TextMate or PyDev(refactoring, code completion, snippets etc.) just to give you a couple of choices
    3) besides the official Django book, there is this in the making:
    “Professional Python Frameworks: Web 2.0 Programming with Django and Turbogears” due in October
    5) I can not comment on windows but on *nix it’s super easy to install
    6) there are some screencasts (not on rails level but still):
    http://www.throwingbeans.org/django_screencasts.html
    http://blog.webfaction.com/django-screencast
    http://www.djangoproject.com/screencasts/model_syntax_change/

  19. pk11 says:

    hi frank,

    1) the irc channel and the django-user+dev forums are high traffic, you should be able to get help there
    2) as for editors: there is Vim+plugins, Emacs, TextMate or PyDev(refactoring, code completion, snippets etc.) just to give you a couple of choices
    3) besides the official Django book, there is this in the making:
    “Professional Python Frameworks: Web 2.0 Programming with Django and Turbogears” due in October
    5) I can not comment on windows but on *nix it’s super easy to install
    6) there are some screencasts (not on rails level but still):
    http://www.throwingbeans.org/django_screencasts.html
    http://blog.webfaction.com/django-screencast
    http://www.djangoproject.com/screencasts/model_syntax_change/

  20. Ryan says:

    I work primarily in Ruby/Rails at work and on my own time. I’ve sought out, as a new years resolution, to learn a new language this year. That language is Python (which of course would entail django). I’ve also heard a lot of good things about it, and I can’t say (from experience) that I do or don’t think it’s better than Ruby/Rails. However, I’ve began sifting through a Python book, and I must say, as a beginner, I really, really like the Ruby language a lot more than Python.

    In theory, the open-ended block structures based on spacing/indentation is a great idea, but it’s almost too open-ended for me. I like the closure I get with blocks in Ruby. I absolutely love it’s readability, and it’s simply an amazing language altogether. Of course, it all boils down to an opinion, so I just thought I would share mine.

  21. Ryan says:

    I work primarily in Ruby/Rails at work and on my own time. I’ve sought out, as a new years resolution, to learn a new language this year. That language is Python (which of course would entail django). I’ve also heard a lot of good things about it, and I can’t say (from experience) that I do or don’t think it’s better than Ruby/Rails. However, I’ve began sifting through a Python book, and I must say, as a beginner, I really, really like the Ruby language a lot more than Python.

    In theory, the open-ended block structures based on spacing/indentation is a great idea, but it’s almost too open-ended for me. I like the closure I get with blocks in Ruby. I absolutely love it’s readability, and it’s simply an amazing language altogether. Of course, it all boils down to an opinion, so I just thought I would share mine.

  22. Siddharta says:

    Hi Frank,

    > There are no screencasts of anyone showing how they
    > do things.

    Here is one that I did a few months ago for the wikicamp.in event – http://www.silverstripesoftware.com/screencasts/wiki_in_15_mins.html

  23. Siddharta says:

    Hi Frank,

    > There are no screencasts of anyone showing how they
    > do things.

    Here is one that I did a few months ago for the wikicamp.in event – http://www.silverstripesoftware.com/screencasts/wiki_in_15_mins.html

  24. cjlesh says:

    Frank -

    While “not ready for prime time” yet, I do have a http://www.instantdjango.com up and running, and will soon finish my first tutorial.

    You can download something I call “instant django”, which is a no-installation-required development environment for Django, which runs on Windows. It even runs from a USB thumb drive. It mostly works for the official tutorials on the django project site.

    Check it out, and let me know about any bugs that you find. Don’t forget to read the disclaimer on the my site: I am a total newbie to django.

    -cjlesh

  25. cjlesh says:

    Frank -

    While “not ready for prime time” yet, I do have a http://www.instantdjango.com up and running, and will soon finish my first tutorial.

    You can download something I call “instant django”, which is a no-installation-required development environment for Django, which runs on Windows. It even runs from a USB thumb drive. It mostly works for the official tutorials on the django project site.

    Check it out, and let me know about any bugs that you find. Don’t forget to read the disclaimer on the my site: I am a total newbie to django.

    -cjlesh

  26. Anonymous says:

    “Its been hell getting Django installed on Windows”

    I haven’t deployed on Windows, but getting it running with the dev webserver is really easy, and I’ve had no trouble turning around and running the stuff I’ve developed on Windows under mod_python on webfaction’s hosting.

    I don’t know about screencasts, because, I don’t find screencasts to be very useful, anyway. The pace is always off they are either too slow, or they breeze over something important, and I have to go back over it 10 times to try and make out what happened on the screen. Give me a well written tutorial any day.

  27. eas says:

    “Its been hell getting Django installed on Windows”

    I haven’t deployed on Windows, but getting it running with the dev webserver is really easy, and I’ve had no trouble turning around and running the stuff I’ve developed on Windows under mod_python on webfaction’s hosting.

    I don’t know about screencasts, because, I don’t find screencasts to be very useful, anyway. The pace is always off they are either too slow, or they breeze over something important, and I have to go back over it 10 times to try and make out what happened on the screen. Give me a well written tutorial any day.

  28. Jason Best says:

    DJango was very easy to setup on Windows. Maybe you don’t understand Python at all? You should probably take some time to learn the language and how it works with your OS before attempting to build on a web application on top of it. Sadly the ruby on rails crowd got people started without “knowning” ruby. I am sure it will turn up some great maintainable web applications.

  29. Jason Best says:

    DJango was very easy to setup on Windows. Maybe you don’t understand Python at all? You should probably take some time to learn the language and how it works with your OS before attempting to build on a web application on top of it. Sadly the ruby on rails crowd got people started without “knowning” ruby. I am sure it will turn up some great maintainable web applications.

  30. George says:

    I also recommend WebFaction (http://www.webfaction.com) for hosting. I have *seven* Django sites with them and I haven’t had any problem in the 6 months that I’ve been there.

  31. George says:

    I also recommend WebFaction (http://www.webfaction.com) for hosting. I have *seven* Django sites with them and I haven’t had any problem in the 6 months that I’ve been there.

  32. @Frank

    Django is super-easy to install on Windows: i’ve been using it for development on Windows 2003 Server and XP for over a year now and i never had a problem.

    Provided you have TortoiseSVN these are the steps:
    - checkout Django’s trunk
    - python setup.py install

    That’s it, really!

    If you need a nice IDE be sure to checkout PyDev (it’s an Eclipse plugin) but that’s really a pain to setup. Alternatively you might use Komodo Edit which is not mind-blowing but works fine… BTW wasn’t RadRails dead?

    L.

  33. @Frank

    Django is super-easy to install on Windows: i’ve been using it for development on Windows 2003 Server and XP for over a year now and i never had a problem.

    Provided you have TortoiseSVN these are the steps:
    - checkout Django’s trunk
    - python setup.py install

    That’s it, really!

    If you need a nice IDE be sure to checkout PyDev (it’s an Eclipse plugin) but that’s really a pain to setup. Alternatively you might use Komodo Edit which is not mind-blowing but works fine… BTW wasn’t RadRails dead?

    L.

  34. Lorenzo, RadRails is not dead. It’s just been handed over to new developers, and is now backed by a company: Aptana. You can grab RadRails at http://radrails.org/download_rails_rdt.php

  35. Lorenzo, RadRails is not dead. It’s just been handed over to new developers, and is now backed by a company: Aptana. You can grab RadRails at http://radrails.org/download_rails_rdt.php

  36. minutetraders says:

    I think the most important question would be: how scalable a framework can be ? we are using Django but not sure if it can hold very high load … any experience ?

  37. minutetraders says:

    I think the most important question would be: how scalable a framework can be ? we are using Django but not sure if it can hold very high load … any experience ?