So, I've been thinking all day about the quickstart stuff Florent
brought up and that I volunteered to help with, and have a proposal and
some comments.

First off, the problems. Quickstart is aiming to do 2 different things:

A) Provide the starting point for new TG projects for people who know TG
B) Provide the first impression and example for people new to TG

Right now, IMHO, it attempts to do both with the same template and fails
at both as a result. There is too much stuff to delete and move around
if you know what you're doing, and there is not a good enough first
impression or good enough examples if you don't. To fix this I think we
need to look at what the target market of TG is as well...

I do not think people who want to use what Django is providing are going
to even look at TG. If you want to use a bunch of ready made components
and lash them together in a known-best-practise fashion, without
customizing any more guts then you need to, Django is the only game in
town. They've done a great job at that, no point in pretending to be
Django.

So, who is choosing to look at TG? IMHO, it's people who plan at the
outset to *customize* heavily, but don't need the build-everything way
of pylons. People who want a killer scaffold, but already know that they
will not (for example ) just use the admin interface and hand it off to
a client, and that they want to reuse components that they use outside
of their webframework. ( Client disasters with the Django admin and
failing attempts to grok customizing it from the Django docs were what
brought me here! Using SA, formencode, tocsawidgets keeps me here! )

I think we can safely say that the first impression should be tailored
to most impress those people, and once they are impressed, they want the
examples to just get out of their way. These people will be most
impressed by seeing a simple scaffold of a fully functioning but very
minimal app, that is well commented. They want to install TG, see
immediately that it meets their needs by looking at the browser, and
also see immediately that they like the way your write a TG app by
looking at the code.

My proposal is that we do the following, not all points need to be done
together:
- clean out the quickstarted app so that it has a bare bones minimal
standards compliant front end ( or several that can be easily copied )
- adjust the css file tree so that several files are used, and using
reset.css, layout.css, and text.css gives one a totally clean but usable
slate
- add a new flag to quickstart, called --examples, tell people in the
docs to use this one for their first try
- the example flag pulls in an examples module, this adds the pretty css
and the content for first impression
- the example module can also have a fully functional minimal CMS with
heavily commented code that demonstrates:
  - an attractive starting site, designed by *professional* graphic
designers ( they work just as hard as we do folks, and they are worth
it )
  - using a simple Page model to make pages
  - using a widget to build a menu for every page
  - using sqlite to store content
  - using Rum or a hybrid of it and my restcontroller admin thing to
update pages and menus  
  - an out-of-the box usable way to manage users so users and
permissions are ready to go  

In addition, I think the way identity gets pulled right now is
frightening to new users. Instead of seeing a nice easy to follow
controllers.py and model.py, if you use identity, your starting app is
full of identity stuff that is hard to dissect and sparsely commented. I
also propose we:
- move the identity stuff out of the quickstarted model.py and
controllers.py so that it lives in identity.model.py and
identity.controllers.py or model_identity.py and controllers_identity.py
- import identity into the model ( I do this *every* time on a new
project anyway, doesn't everyone? )
  - mount the identity controller under a subcontroller in the root
controller to demonstrate how subcontrollers work and get it the heck
out the way, perhaps at "/users"? ( /users/login users/logout etc )

The example site could also be mounted as a subcontroller if we want to
make sure it's trivial to turn it off.

I believe the kind of people checking out TG are the kinds of people who
want to take it for a fly, and then look quickly through the code to get
and idea of whether this is the right way to do things for them. This
experience is sorely lacking right now. People who try it out have no
idea how powerful widgets are, how easy it is to use subcontrollers and
identity to mount protected sub-applications, etc. 

I am volunteering to work on this, it's stuff that I'm not afraid of
screwing up because it's over my head. Feedback appreciated.

Thanks
Iain


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

Reply via email to