On Sun, Mar 05, 2006 at 04:04:48PM -0500, Benji York wrote: > Geoff Davis wrote: > >* What can we learn from Rails / Django / TurboGears? > > Fun presentation along those lines: > http://oodt.jpl.nasa.gov/better-web-app.mov > > One of the best put together movies I've seen.
Really interesting stuff. I was struck by the way he presents zope/plone. He gives it a winning "fun factor" score for "hello world"... by doing through-the-web development. So he says "Zope [2] rocks" precisely because of features that many of us have been largely ignoring and advising against for a couple years now. The kind of thing that the built-in zope 2 tutorial shows you how to do. Why is Zope 2 TTW fun? - No restarts - No configuration That's certainly food for thought. The sample app demos were also interesting... he kinda glosses over what exactly was the full zope/plone stack and how he did it, but since he generated a Plone content-like app from a UML model it's not hard to guess :) Notably it was the kind of app that sits squarely in the single-developer- in-a-hurry space. The "I just want some forms to save some data and I don't want to care how it works" space. The space where, as Jim keeps saying, zope 2 traditionally excelled and Plone lives today. A similar app could've been written pretty quickly in Zope 3 by writing a schema and using browser:addform, browser:editform, and browser:schemadisplay. It would be interesting to see how that would go in the movie. I suspect that the movie author (named Sean Kelly i think?) would've complained about the xml "sit-ups" and the numerous server restarts. (In the middle of the movie he gives a link to his article at http://www.developer.com/xml/article.php/3583081 which includes the line "The fad of applications using XML for their configuration files is dismaying, to say the least...") This is the kind of guy for whom TTW development really is compelling. Watching the "hello world" section reminded me of when I used to really enjoy doing that stuff. But there are some important things left out of that story. Why did I stop enjoying TTW work? Like a lot of Zope 2 developers: * I needed my work to live in CVS. ZODB history and undo isn't good enough as version control. * I needed to write tests that I can run without having a real ZODB and without starting up a server. * I needed a sane way to deploy software from dev to staging and from staging to production. ZSyncer is fine for what it does, but it too is a poor substitute for version control, shell scripts, make, et al. * The unix shell still beats the pants off the ZMI as a complete working environment (even with ExternalEditor, the find tab, etc.) * I got tired of bouncing between restricted and unrestricted code. I want to live in unrestricted code as much as possible. Ultimately the zope 2 restart time started to become less of a problem than dealing with all those problems when working TTW. For CMF development, I settled on a pretty nice compromise: templates and scripts in filesystem directory views, with the scripts doing only view-related glue. This got me files on the filesystem and in CVS, and no restarts when tweaking UI. The scripts are easily testable using CMFTestCase. Pretty nice way to work. I still have to deal with some restricted code, but I'm mostly resigned to that. In Zope 3, we take restarts and filesystem-only development for granted, because it's intended specifically for the audience that I'm a member of... developers who have those concerns. I'm hoping to see a similarly interactive, yet long-term-sane, working style evolve for in zope 3. Maybe we'll get there with Persisent Modules and fssync. If there's a moral to this story, it's this: Scaffolding that gets you up and running with a minimum of fuss is a great thing. Rapid interactive and iterative development is also a great thing. But if you can't easily transition from there to more complex apps that are still maintainable, it sucks. It's irritating to have to throw away some of your knowledge and completely replace it with new ways of thinking; it's better if the new knowledge strictly supplements the old. It's worse than irritating to have to throw away your work and rebuild it from scratch; it's better if your new work can cleanly leverage the old. Put another way, if we consider Jim's first two audiences, how do we teach a single person to move from "i don't want to have to care" to zope zen master / SVN contributor with minimal wasted effort along the way? Today I don't know if there's a clear coherent story to be told there, even for zope 2. If there was... wow, that would be a great. Sorry if I haven't really said anything new. -- Paul Winkler http://www.slinkp.com _______________________________________________ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com