/me rereads this email...

Alright, the content of what I'm saying I still agree with.  The wording
was a bit harsh... I literally wrote this during insomnia with a 101
degree fever at 6:00AM.  It was supposed to be funny, not mean.

I still think we should adjust that documentation, but if it offended
anyone, I'll retract the projects->HPV analogy :)

Christopher Allan Webber <[EMAIL PROTECTED]> writes:

> So, by now the primary problem with Django is not the lack of good
> applications.  There are tons of good applications.  The primary problem
> is that almost none of them work together.  There are a few reasons for
> this... some of it has to do with templating, some of it has to do with
> people not using url reversal, and some of it has to do with the fact
> that most large django applications want to install some non-models
> related administrative ability to the django admin, so most of them
> override the admin templates in ways that make them incompatible.  But
> by far the biggest problem (and which encourages these other problems
> even more) is projects.
>
> Projects!
>
> I probably don't need to go into detail about *why* projects are bad.
> That's been discussed plenty before:
> http://groups.google.com/group/django-developers/browse_thread/thread/e9d92bceab679f6a
>
> But it's such a shame... we know that we're teaching bad habits from the
> very beginning.  We know that tying applications to a specific project
> make those applications either unusable or very difficult to use with
> installations outside that project.  And yet we still teach it!  And the
> vast majority of users still follow these bad teachings.  Some of the
> best, most high profile django projects follow these bad practices, like
> Review Board.  And it isn't their fault!
>
> If there was a cancer that was rapidly spreading through sexual contact,
> but which was preventable by being vaccinated early on, what would the
> best thing to do be?  Sure, it's worth our time to treat the victims,
> but it's much less costly if we just stop the problem upfront by
> vaccinating.  In fact, it's even worse.  It's like we're handing our
> users a bottle of lube known to be contaminated with the stuff and
> saying, "Here you go guys, apply liberally."
>
> Okay, that analogy starts to break down when you think about it too
> much.  But the point is, it's easier to prevent by teaching good
> practices from the get-go.
>
> So, django's documentation is already suggesting that we want users to
> do the right thing:
>   
>   Philosophy
>
>   Django apps are "pluggable": You can use an app in multiple projects,
>   and you can distribute apps, because they don't have to be tied to a
>   given Django installation.
>
> Unfortunately, this is telling users that right after telling them how
> to set up their site structure with "startproject".  And there is no
> mention, here or later, that there is a better way of doing things, and
> a pointer to whatever kind of document would help describe that way.
>
> In the previous discussion, James Bennett listed two solutions to this:
>
>   1. Expand the default application skeleton, or differentiate somehow
>      between a minimal, "traditional" app skeleton and a more robust one
>      which includes files and directories oriented at a distributable
>      application.
>
>   2. Spend a lot more time documenting best practices of application
>      development, possibly even mentioning in the tutorial that the
>      "apps inside project" model it uses is followed for convenience and
>      not because it's the best/only way to work.
>
> People seemed to be in favour of number two, which is "Teach the bad
> habits with an emphasis that these habits are bad, and that there is
> documentation to do things right."  I think this is fine (teachers and
> professors do this all the time with their intro students)... we just
> need to do it.
>
> I am more than happy to help with writing up documentation, whatever.  I
> just want to see django applications work together as a big, happy,
> pluggable family.
>
> 

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to