On 12/20/10 4:19 PM, Colin Alston wrote:
On Mon, Dec 20, 2010 at 5:01 PM, Werner Thie <werner@thieprojects.ch <mailto:werner@thieprojects.ch>> wrote:
Hi Colin
off list just for my information, what version of nevow/athena do have you have included in enamel. The latest fixes I sent back to the divmod list solved bugs server and client side when detaching Live Elements from a page, which I do habitually very often.
Enamel works on pretty much any version, but doesn't work with contextless Page and other stuff.
The motivator for it's creation was to increase dev speed with people who were slightly useless, and to act as a wrapper to make code trees that could survive Freeze.
What do you see as important areas where nevow/athena should be improved?
Primarily there is a great deal of bootstrapping. Just create a simple web-app (without something like Methanal or Mantissa, which I can't even understand) that does Athena and see how much code you're rewriting every time, it's quite insane. My boilerplate (me working with guys mostly doing PHP and MySQL) let's me start up a new project in less than an hour. Doing this for a living I see the problem not really in starting up projects fast, but in finishing them fast, because only finished projects are paying...
Also if you're not using Twisted plugins (which there are many reasons not to want to, like using shared state reactors with multiple TCP services, or again Freeze) the pain goes up double. I use only a single plugin in nevow letting me bootstrap easily and providing a clean mechanism to switch automagically between source/compressed deployment version. All the deployment is handled via SVN.
Essentially boiling Athena down to a page mixin class with standard js bootstraps, and/or separate fragment mixin and making all pages derive the necessary Athena object triggers or even putting that into flatten. Might be that there's need for a 'kiddy' version, letting the average interested user who does not have the time to look into a framework and its concepts and wants to whip up a page in less than 30 seconds.
You can see what I do here to try simplify things for the way I work, essentially I just stick an elements class dict in and map fragments to automatically created renderers and stuff works magically. http://open.thusa.net/enamel/browser/trunk/enamel/pages.py#L126 I see the basic idea, no objection, but why Fragments and not Elements?
There's also issues with the current model, like your root resource can't be an Athena page very easily. I don't understand this point, I usually work root only, with not a standard page change, but doing everything by attaching/detaching live elements (see http;//www.thieprojects.ch for work in progress for a simple Desktop like RIA)
Werner