[ANN] SkunkWeb 3.0 Released!

Drew Csillag drew_csillag at geocities.com
Fri Aug 24 08:40:53 EDT 2001


On Thu, Aug 23, 2001 at 11:37:48PM -0700, Paul Rubin wrote:
> This sounds pretty interesting.  How does it compare to Mason?

Mason and SkunkWeb compare rather well with each other, as they do tend 
to attack the web serving problem in similar ways.

 * Mason and SkunkWeb have a similar approach to their templating languages,
   but I don't think you can reasonably extent Mason's whereby SkunkWeb's
   templating language was designed to be extendable.

 * Mason and SkunkWeb both have HTML and data components.

 * Mason and SkunkWeb both have a Request object (though SkunkWeb calls
   it CONNECTION).

 * Mason uses Perl, SkunkWeb uses Python.

 * Mason runs in-process with Apache (under mod_perl), SkunkWeb is
   it's own daemon (Apache talks to the daemon either by mod_skunkweb
   or by a CGI) and if you like, can serve HTTP itself directly.
   Mason's approach can easily use more memory and database resources
   that the standalone daemon model if you are talking to slow web
   connections (which you generally are) since the time it takes to
   send the page is much more than it takes to render the page.  In
   this case, you have a bunch of processes with Mason in memory and
   database connections open that are sitting idle waiting for the
   client to get the data, whereby with SkunkWeb, as soon as Apache
   gets the response back from SkunkWeb, the SkunkWeb daemon can start
   handling another request while the Apache process goes about
   sending the page back to the slow client.  As an example, with
   SkunkWeb, you may have 100 Apache processes (not even necessarily
   on the same machine mind you) using only maybe 30 SkunkWeb
   processes.  The other thing, since Apache's process pool grows and
   shrinks over time, you a) have less control over memory
   utilization, and b) you tend to reconnect to the database more
   frequently.

 * It doesn't appear that you can make custom url schemes with Mason
   without writing an Apache module to do it.  In SkunkWeb, you can
   write a Service which does it with little trouble.  As an example,
   for my current employer, we have a url translation scheme which
   translates urls to and from Spanish and Portugese.

 * Internationalization.  Mason appears not to have any builtin
   internationalization features.  SkunkWeb has message catalogs.

 * Caching.  Mason caches component output to DBM whereby SkunkWeb
   caches to disk files.  SkunkWeb's cache can be shared between
   machines as well as managed with filesystem tools.  SkunkWeb's
   caching interface is also a lot easier to use.

 * Caching again.  Since you can't get at the compiled representation
   of Perl code, you can't cache the compiled forms of things in
   Mason.  In SkunkWeb, the templating language is compiled down to
   Python bytecode and cached to disk.  Compiled forms of Python
   components and message catalogs are also cached to disk.  The
   compile cache can also be additionaly stored in memory (as a
   read-through, write-through cache).

Hope this helps,

Drew
-- 
print(lambda(m,d,y):['Sun','Mon','Tues','Wednes','Thurs','Fri','Satur'
][(lambda(m,d,y):(23*m/9+d+4+y/4-y/100+y/400)%7)(m<3and(m,d+y,y-1)or(
m,d+(y-2),y))])(map(int,raw_input('mm/dd/yyyy>').split('/')))+'day'




More information about the Python-list mailing list