en
Aug 2010
Mo Tu We Th Fr Sa Su
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

Last Played

» The Beatles – Hey Jude
» The Beatles – Lady Madonna
» The Beatles – Hello Goodbye
» The Beatles – All You Need Is Love
» The Beatles – Penny Lane
» The Beatles – Eleanor Rigby
» The Beatles – Yellow Submarine
» The Beatles – Paperback Writer
» The Beatles – We Can Work It Out
» The Beatles – Day Tripper

Time for a Quixote based Mega-Framework ?

There's been lots of discussions recently about Django, TurboGears, and other Rails ... With the release of Quixote 2.3, a thread started on quixote-users mailing list about Quixote's popularity. There are some very interesting thoughts in this thread, proposing a sample application skeleton which Dulcinea would provide. Indeed at mems-exchange there's a bunch of good stuff:

  • Durus provides data persistance (think of ZODB, but simpler)
  • scgi protocol implementation
  • Sancho is a unit-test framework
  • the well-known Quixote :-)
  • and Dulcinea which aims at helping the developer gluing Quixote and Durus

Put all of this together, add some CRUD, add some hyper-hype Ajax goodies and you get another Mega-Framework, YMMV of course.

by Philippe Normand on Wed Oct 19 16:22:24 2005 (Viewed: 6239 / 6 comments )
  |   RSS  |   RSS2  |   Atom  |   Source  |   Edit

#.   Michael Watkins on Wed Oct 19 17:13:38 2005

I agree with you wholeheartedly on this... and the quick hit clearly is with the Troika of Durus/Dulcinea/Quixote.

Maybe a video ... :-)

#.   Jkx on Wed Oct 19 18:20:22 2005

The major Quixote stuff, is the scgi protocol. But I really hate the way Quixote handle the url. Playing wit h the index (sometimes method, or class method) is something that will kill most newbies enthousiast.

Another issue, is the lack of component oriented programming. This could be done easily w/ cherryPy (for example) and the defaut way of life in Django, but still missing in Quixote. I hope zope.interface will be used soon here.

But hurring up .. TurboGears and Django are really moving fast

--

#.   Michael Watkins on Wed Oct 19 19:22:05 2005

Clearly what works for one doesn't work for another... Myself I hate the way Django gets at URLs. regex? Yuk!

With respect to traversing the URL, I also don't find a series of UI objects calling each other as the tree is traversed to be hard to understand:

# and in my UI collection
RootUI
   CalendarUI
      CalendarItemUI
         EventUI
   DocumentUI
      ViewUI (index)
      EditUI
   ... etc

That's similar to a good ol' file system:

/
calendar/
   an item/
   another item/
documents/
   doc1
   doc2
   doc2/version1

Easy enough to implement in Quixote, although no doubt a few more tutorials or HOWTOs on trickier cases would be useful.

I'm not sold on what you call Component Oriented Programming, assuming you are speaking to the Zope Interfaces methodology. Its interesting and I can see its utility, but for now good clean object design continues to work for me.

You might have a play around with Dulcinea's "spec" module... it may not become immediately obvious but employing "specs" you can design objects with great reusability without diving whole hog into the IInterfaceThis and IImplementThat model.

But whatever turns one's crank! I can appreciate Zope3's approach even if I choose not to use it nor suffer the performance the overhead implied.

Its all what one gets used to but after having built a number of Quixote applications I've never found myself pining for the fjords[1]. Quixote allows you to write fairly complex applications relatively quickly and with a high degree of stability and safety; it also allows you to make a complete mess of the job too.

That's its charm! Cheers - Mike

[1] a Monty Pythonism

#.   Jkx on Wed Oct 19 21:49:49 2005

Ok, this is a short answer but: - I don't really like the regex url of Django too. I really think that url=Instance() (à la CherryPy) is a good way to solve most of issues.

  • For the UI component, I really think this is far too much complex for a web app.
  • The Zope.Interface is not a really funny module, and too much verbose (for me). But it can provide a good way to reusability that a good point.
  • Not talking about Zope3 ...

-- Jkx

#.   phil on Wed Oct 19 22:13:18 2005

Well, we could dissert one decade on web frameworks, but still we'd need to choose one ... And there's enough candidates for teh app.

May be i'll wait for Mickael's TurboZCherryPloRails Giga-framework :-) It seems so hype!

#.   beza1e1 on Fri Oct 21 14:19:15 2005
Yesterday i hacked together quixote and feedparser. So now i can do:

import server
from feed_directory import Feed, Category
server.Root = Category([Feed("feed.xml"), Feed("slashdot.xml")], 'feeds')
server.run(server.create_publisher, port=8080)

Category and Feed are Objects, which are traversed by quixote. This works better and more dynamically, than a file based approach in my eyes.

btw the really nifty thing is the caching and automagically refetching Feed object, which simply wraps feedparser.Feed :)
Comments not allowed anymore on this post