Graham Dumpleton wrote:
> FWIW, if would do much better to Cherokee's credibility, presuming you
> speak for its development team, if you present proper informed
> analysis rather than conjecture and FUD.
Graham,
First, I am glad you are interested on Cherokee and the decisions we are
making. In fact, I could not think of anybody else who could comment on
this better than you (as mod_wsgi author).
So, first of all, thanks for the long Apache internals tutorial. It has
been enlightening (seriously, even if it is a program I do not fancy
very much, there were a couple of interesting points I did not know).
However, there are a number of things you said I can not agree with.
The first and most important one, is the design flaw. Let's try to
forget about Apache for a second. Let's forget about its performance
issues (a few of them might be Layer-8 issues as you pointed) and its
ancient NCSA inheritance. Let's focus for a second on information
systems design from a high level point of view. From that perspective,
keeping the application logic, data and representation independent from
each other (MVC-like) is a good idea; I do not think there is much to
discuss about it. The very same principle applies to this case, keeping
the transport layer (the web server) and the application logic
independent IS a good idea as well, regardless of any concrete
implementation.
There is a bunch of examples and similes that support this affirmation.
Well known and accepted programming paradigms, the Unix way of working:
applications with a single purpose communicating with each other (never
embedding), or even the current web technology where people keep their
data, formating (css) and application logic independent for the shake of
maintainability.
Besides that, there was another thing you wrote that caught my
attention. As we all know, size matters (in this world, big is bad
though). You said that the Python interpreter is not that big, and you
were partially right, although you missed the Principle of relativity.
Putting it in context will change your perception:
--------------
$ ps -eo rss,comm | grep python
3620 python
$ ps -eo rss,comm | grep cherokee
1856 cherokee
$ ps -eo rss,comm | grep apache2
2068 apache2
2216 apache2
2220 apache2
--------------
0 1Mb 2Mb 3Mb 4Mb 5Mb 6Mb 7Mb
| | | | | | | |
Che |=============> |
Py |===========================> |
Apa |===================================================> |
For the record: Python was a completely empty interpreter with no
imported modules at all. Cherokee was using the default set up for
serving static content, and Apache was configured with a minimum number
of modules (even logging was commented out).
So, despite what you suggest, if a bare minimum interpreter is twice as
big as the web server, I wouldn't personally call it "small". IMO Python
rocks anyway, but calling it small may be too much.
Anyway! Let's put the swords down.
Graham, thank you very much for sharing your point of view with us. I am
sure that even if we have different technical approaches the
discussion has been useful for many people.
Hopefully someday you will join the project instead of marking my
technical argumentation as FUD. In fact, what about trying to prove me
wrong by writing handler_wscgi? Independently of the result, it'd lot of
fun for both of us. ;-)
Cheers!
_______________________________________________
Cherokee mailing list
[email protected]
http://lists.octality.com/listinfo/cherokee