Thursday, December 08, 2005
Portable Allegroserve as a de facto standard?
The "Ruby as an acceptable Lisp" and Reddit discussions (I don't really need to supply links, do I?) brought back to the surface a question I ask myself often.
It's true that Common Lisp doesn't have multithreading or network clients in the standard, and people want that, but what's wrong with Portable Allegroserve? The acl-compat component has those covered (if the underlying implementation has support) for Allegro, LispWorks, CMUCL, SBCL, OpenMCL, SCL, Corman, CLisp. It appears to be used a lot, and has decent documentation.
Why not just use that and move on to the next problem? Is there something horrible about Portable Allegroserve I should know about?
It's true that Common Lisp doesn't have multithreading or network clients in the standard, and people want that, but what's wrong with Portable Allegroserve? The acl-compat component has those covered (if the underlying implementation has support) for Allegro, LispWorks, CMUCL, SBCL, OpenMCL, SCL, Corman, CLisp. It appears to be used a lot, and has decent documentation.
Why not just use that and move on to the next problem? Is there something horrible about Portable Allegroserve I should know about?
Comments:
<< Home
One of the advantages of networking on windows for high performance is so called IO Completion Ports, with a very small pool of threads to process network traffic. Other platforms have improved versions of select such as Poll, and AIO, to approach the same level of performance. See the c10k problem page for details. When considering networking, unless you can attain that same level of control perhaps its best to leave it out of the standard and therefore remain within the realm of FFI.
There is no problem with portable aserve except that many Common Lispers don´t like the style it is programmed in. In fact, it looks more like FORTRAN than Lisp, it´s internal workings are badly documented and the acl-compat library is not well documented, let alone complete. This is not to say that paserve is not useful (I´m using it a lot, in production environments, and it performs very well), but it still is nothing which would replace a "standard" networking or mt library.
Common Lispers are used to something different from what, say, Perlers expect from a "Standard". Can you say libwwww-perl?
Common Lispers are used to something different from what, say, Perlers expect from a "Standard". Can you say libwwww-perl?
I tried portable aserve, cl-http, and mod_lisp(/w tbnl).
cl-http has the best quality, then mod_lisp... and portable aserve is the worst! (did you tried to read it and understand it? It is C program written in Lisp!)
With cl-http, I have licensing issue so my current platform is mod_lisp+tbnl.
I think the best solution is make the cl-http more free license, then make it as a de factor standard.
Anyway, in Lisp world there are too many ideas!
cl-http has the best quality, then mod_lisp... and portable aserve is the worst! (did you tried to read it and understand it? It is C program written in Lisp!)
With cl-http, I have licensing issue so my current platform is mod_lisp+tbnl.
I think the best solution is make the cl-http more free license, then make it as a de factor standard.
Anyway, in Lisp world there are too many ideas!
The license of CL-HTTP is critized very often. Are there any comments from the makers of CL-HTTP? Any plans to change this?
I've looked at the source for CL-HTTP and it's one of the worst Lisp programs I've ever seen in my life. It looks like someone's first Lisp program. Trying to get it to run is no picnic.
Portable aserve is very readable and well designed. The author goes out of his way to make it readable and thus understandable.
Post a Comment
Portable aserve is very readable and well designed. The author goes out of his way to make it readable and thus understandable.
<< Home