On 11/20/05, Simon Willison <[EMAIL PROTECTED]> wrote:
> I just saw http://code.djangoproject.com/ticket/853 , which advocates
> simplifying Django's first-time user experience as much as possible.
> I think this is an admirable goal, and one that would dramatically
> improve the number of people using the framework. First impressions
> count!

I like the idea of simplification, and I think the proposal of doing
models and views as files instead of packages is a good step in that
direction But...

> I particularly like this example code for a Django app contained in a
> single file:

I don't like this at all, mostly because I don't think it can scale;
the "single-file app" organization might work well for very simple
applications, especially if all they use is generic views, but
anything much more complex (e.g., an application with several custom
views, models with several extra functions and attributes each, custom
templatetags, etc.) could quickly become unmanageable.

Although, from looking at that and your comment in the ticket, it
seems models would be defined elsewhere? I'm not sure that helps
things any, though.

And I'm not at all convinced that there's really a significant barrier
to adoption; having a multi-step setup (which, last time I checked,
involved not only creating the database, but also manually creating
tables for your models) certainly doesn't seem to be hurting Rails any
;)

But inevitably, something as flexible and powerful as Django is going
to have a learning curve. I think it's a tiny bit steeper right now
than it needs to be, and some of the recently-proposed modifications
will help out with that a bit, but in the long run I don't think it's
a bad thing to have that learning curve. If people don't have to learn
the ins and outs of the framework when they start out with it, or if
they'd be turned off Django by having to learn that up-front, then
odds are that 1) they wouldn't have bothered to do so later on, and 2)
they wouldn't really get much out of Django.

And beyond that, I think David's points are good ones -- the crucial
limiting factor for Django adoption right now, I think, isn't
simplicity; Django practically bends over backwards to provide easy
ways to do powerful things without writing much code. Rather, the
limit is marketing. A screencast of a non-trivial application setup
would go a long way toward helping that, as would greater publicity of
Django-powered sites in the wild and write-ups of how some of them
work.

For example, consider the djangoproject.com site; all the code is
there in the repository to be browsed, but most people new to Django
won't even realize it's there. Which is a shame, because it's really a
great example of how to harness Django to achieve a useful and
non-trivial task. Poke around in the source and you'll see a number of
Django's strengths being put to work -- generic views, pluggable
applications, custom templatetags, etc. -- with very little code.
Something similar (say, a weblog application) would make an awfully
good candidate for a Django screencast, I think, and would provide the
"hook" to lure new users in.

--
"May the forces of evil become confused on the way to your house."
  -- George Carlin

Reply via email to