I don't think we should blow this out of proportion.  This is *one*
person's opinion.  As a counterpoint, I also use both Django and
TurboGears.  I started the Django project first and quite frankly, it
will be my last.  I absolutely do not like Django.  I'd rather have
TurboGears' growing pains than Django's convoluted file layout,
multitude of silly configuration requirements, etc.   Deploying Django,
in general, is no easier than deploying TG, and further, requires two
*completely* different setups for development and deployment.  

The bottom line is this:  Django and TG, despite having much in common
at a high level, differ greatly at the nuts-and-bolts level, and those
differences appeal to (or irritate) different people.  Whether or not
they recognize that it mostly boils down to personal preference or chalk
it up to "beta software" or whatever doesn't change the underlying
reality: it's mostly a matter of taste.

As far as whether we should be willing to rip out parts of TG if the
component's maintainers are unwilling to help resolve issues, I'm
against this.  All that does is trade the devil we know for one we
don't.  If it's a real problem, I'd rather see a code fork than a
component replacement.  Forking means backwards-compatibility while
replacement practically guarantees breakage.  However, with rare
exceptions, it seems that the component developers are more than happy
to accept patches and implement fixes to support TG, and forking will
generally mean we lose the developer and community support of that
component so this should be an absolute last resort.

While it's true that RoR and Django don't have to worry much about
third-party components, that really means little to end users as the end
user *still* has to worry about the (much smaller) RoR and Django teams
implementing bug fixes.  The bottom line is that unless you are
supplying the patch yourself, you will have to wait for someone else to
do it.  Whether that person is a core maintainer or a component
maintainer doesn't seem too relevant.  It could have just as easily have
been Kevin denying Ian's patch as fumanchu.  Then what?  Ultimately
*someone* has to make decisions and those decisions may not always be
popular or even right, but jumping ship whenever it happens will kill
the project quicker than anything else I can think of.

Finally, I think it's far to early to worry about this stuff.  There may
be problems with the TG way of doing things and perhaps changes will be
required, but only time will tell, and frankly there hasn't been enough
time to tell very much at all.

Regards,
Cliff

On Sun, 2006-01-22 at 23:51 -0800, Dan Jacob wrote:
> It seems the problems are not so much in TurboGears itself but with the
> underlying components - CherryPy in particular recently (see Ian
> Bicking's comment at http://blog.ianbicking.org/my-cherrypy-rant.html).
> The problem we have is that although we can control the quality of TG
> code, we can't control what goes on elsewhere. For example, us poor
> benighted Windows users haven't had a functioning Toolbox until
> recently, all because of Kid (and that's only fixed in the SVN, not
> stable Kid release). I have wanted to add proper localization support
> to form validation, but that will have to wait until it's in
> FormEncode(for example, it does not seem to support unicode message
> strings, which means even lazy_gettext won't work for customizing
> messages).
> 
> The question is: how can we guarantee a stable TurboGears platform even
> post 1.0 (or for that matter, 2.0) if we cannot guarantee the stability
> of the underlying components ? Should we enforce a "comply or die"
> attitude to other projects (if you don't fix your issues, we'll go to
> Quixote/Cheetah/whatever) ? I don't think that's very workable, and TG
> is having a positive "rising tide lifts all boats" effect on other
> projects, but still we are often hamstrung by what happens outside of
> TG, something Rails and Django don't have to worry about.
> 
> Any ideas ?

-- 

Reply via email to