At 02:46 PM 5/27/2001 -0700, Kevin Altis wrote:
>Hi Chuck,
>I just started looking at WebWare, but so far I'm quite impressed with the
>amount of work and quality of documentation, examples, etc.
Thanks. You have some good questions and I have some good responses, so I
CCed webware-discuss. Hope you don't mind.
>You make references to WebObjects and Java servlets as inspiration for
>WebWare. I've only done a small amount of work with Java servlets (none in a
>production environment) and no work with WebObjects other than reading the
>tutorials and hearing a good friend of mine constantly tell me how great it
>is... However, I am pretty familiar with how both work. Anyway, what I'm
>wondering is what is wrong with WebObjects and/or servlets in your opinion?
>In other words, why go to the effort of building a whole new framework,
>especially with something as inexpensive as WebObjects ($695) or free to
>expensive (depending on servlet engine) like straight Java servlets? I
>didn't see anything about this issue in the docs or while searching the
>mailing list.
The primary reason for Webware is that prior to its creation, there was
nothing like it for Python. I rejected Java due to productivity reasons. I
rejected Obj-C because it's community was drying up and the language had no
improvements for several years straight, which was frustrating.
To top it all off, I was burned hard by NeXT/Apple. I had co-founded a
company which did all development on NeXTstep, but delivered GUI apps to
Windows customers. That was a selling point for NeXTstep: use the best
development environment on top of a nice flavor of UNIX and still be able
to ship for Windows. When Apple bought NeXT they initially promised support
for Windows, but then changed their minds. This destroyed my company's
product and propelled me into the world of open source. I desire my
programming language and tools to be open source and avoid closed source
tools if I can help it.
I could possibly see myself using Mac OS X in the future as my desktop
system. However, I would still stick with Python, Apache, MySQL, etc. I can
use a closed source op sys and text editor, because all of my tools run on
all major platforms.
There *are* some things I don't like about WO and Servlets. WO's classes
appear too monolithic, like the super huge WOComponent class. In WebKit, we
split out our classes a little more so that you can inherit at the right
places and hopefully get just what you need.
Servlets seemed to have a better class breakout, but then no strong concept
of a web application and a rather confusing assortment of concepts around
containers, contexts, etc. Some of the Webware community actually gets
pretty passionate about those concepts, but people building sites for their
job (including myself) don't seem to care.
However, the WO and Servlet critiques weren't huge factors in creating
Webware. It was the drive for Python and open source in general that lead
me to create Webware.
>Anyway, as I get deeper into Python I plan to spend more time with WebWare
>and may get involved in development if it seems appropriate. I am a bit
>concerned at this point about maturity of other required components such as
>database connectivity in a Python environment (a must for a "real" site) and
ODBC, MySQL and Postgres seem well supported, although I know most about
MySQL and the least about Postgres. Overall, I don't have any concerns in
this area.
If worst came to worst, you could bind Python to your database's C API,
preferably in accordance to DB API 2.0:
http://www.python.org/topics/database/DatabaseAPI-2.0.html
e.g., the worst case scenario is that someone else hasn't done this for you
already (like they have for MySQL, Postgres, Oracle, etc.) and you have to
do it yourself.
>the future of modsnake and/or mod_python. I would like to see some basic
modpython (and probably modsnake) is already stable and working. In any
case, Webware's WebKit can use CGI, FastCGI, modpython, modsnake or
mod_webkit to connect the web server and the app server. I'm not dependent
on any one of them, because I can use any of them.
>benchmarks in comparison to more mature solutions like PHP, ASP, JSP, etc.
I wonder what your criteria for "mature" is. All of those approaches are
fairly boneheaded from a design perspective. I have an easier time building
object-oriented, extensible solutions in Webware. My apps are large enough
that I can't afford to forgo concepts like business objects, separation of
logic and presentation, etc.
I guess they are more "mature" in terms of installed sites. I don't really
care: Python is already totally outnumbered by Java, but undoubtedly the
better product.
>for simple pages just to get an idea of minimum overhead or fundamental
>limitations (see http://www.caucho.com/articles/benchmark.xtp for ideas in
>this area).
How simple? "Hello, world" was benchmarked recently, which seemed useless.
No one has a page that just prints "Hello, world". I'm interested in a
sample page that has a header, sidebar, footer, content well, SQL database
access, stylesheet, etc. e.g., a "real" page.
WebKit is orders of magnitude faster than CGI, it's faster than Zope, and
it's way fast enough for everything I have done. At this point, you're more
likely to have performance issues with your SQL database or network than
anything else.
-Chuck
|