Just to note, this is my three days assesments of WebWare (basically
just a few hours), so what I noted may or may not be true :) I've also
only played with twisted for a while (like 2-3 months) and I'm not on it
full time, really.
On Mon, 2003-08-25 at 13:47, rtjohan@... wrote:
> How would you compare Webware to Twisted? Is Twisted overkill for creating
> web applications?
So far, I've just touch base on Twisted and will be creating an app with
is. Twisted shines when what you need is to connect to other hosts/nodes
with different protocols (web clients, snmp clients and servers, process
scheduling, queuing, etc), and vice versa, and Web serving, is /not/ a
big part of your app.
> Would you say webware+PSP/Cheetah or Twisted is more
> efficient in creting web apps?
When you say efficiency, it can mean a few things, especially when it
comes to developer efficiency. I believe webware is more developer
friendly when it comes to building web centric apps. I'm able to get a
hello world page up in no time with webware, because there's no code
overheads to it. It does what I tell it to do.
PSP (IMO it looks uglier than PHP) allows developers to build straight
forward apps like PHP, and it's got the advantage that modules in python
can be reused. And if I need more functionality than that, I can always
use servlets. I like the fact that PSP code actually becomes a servlet
I know what Cheetah is, but have not worked it with WebWare yet, but I
think it's a cleaner templating engine than PSP, then again, PSP will
make it easier for developers to get acquainted with Webware.
In Twisted, you have Woven, which really separates the app, from the
presentation logic, and woven templates are XML files, which you define
the model, and the view of the model. That is you say, your dict could
be the model, and the view converts the dict into something meaningful,
and the template will use these to create a web page, all in a minidom
style of coding. Bah, what am I saying, it is difficult for programmers
to deal with MVC style of coding, and it can lead to developers being
lazy, doing things manually as long as the results look right.
Blocking code in your page rendering (say a recursive function, or using
os.popen() with a long running process) can make the twisted server wait
and it will make twisted seems that it hangs. It's easy to make blocking
code, even if there are ways to make things not block, it's just that
developers will take the easy way out, as, event driven programming
(with callbacks) are a pain to deal with.
It's still doesn't mean that I don't like twisted :)
> Stability problems on either one?
I have not done anything yet to break Webware (although that machine
freezes that I got twice in a row, after running Webware for a few
hours, I'm not sure what really happens though).
With twisted, it is so much easier to make your app freeze (but in
reality it's not) just because you have an exception that is not handled
in an errBack (error callback). You can try it out your self, download
quotient from divmod.org, run it (after reading the instructions) and
point it to a mail server with lots of emails. After clicking on your
site a few times, you'll find that the webserver is not responding to
your clicks anymore, but the mail client is still downloading and
processing your mails. Also, the app will take up to 100% of your CPU,
not sure why it does, and at this point you will just download Zoe, and
get productive with that instead :)
And since quotient is done by a twisted developer, doing it the twisted
way, showing off the capabilities of twisted, it really shows that doing
a webapp is hard with twisted.
Stability? Well, I'm not sure which on is more stable.
Is such an app, say an RSS collector, and/or a mail reader that runs
once in a while, which later indexes everything, with a web front end,
possible with WebWare? I should think so, though I'm not sure where to