[Bese-devel] UCW vs Seaside (and Scheme)

Peter Scott sketerpot at gmail.com
Sat Sep 3 15:21:02 UTC 2005


On 9/3/05, Waldo Rubinstein <waldo at trianet.net> wrote:
> I'm fairly new to both Lisp and Smalltalk (less than 6 months
> experience in each). The reason for my interest in these is because I
> feel, from what I have been reading, that both Seaside and UCW offer
> more practical solutions to the real-life problems I need to solve
> for developing web-based custom apps.

For some types of web apps, continuation-based is definitely the way to go.

> I have to say I have spent more time learning about Smalltalk/Seaside
> than I have invested in Lisp/UCW. However, somehow it feels Lisp/UCW
> seem to provide a better roadmap and more stable platform.

UCW is still very unstable, with major parts being ripped out and
replaced as we speak. Common Lisp is very stable, with a wide
selection of good compilers, both commercial and open-source. UCW is a
pleasure to work with, for what it's worth---but I haven't checked out
Seaside.

> Then, after googling a bit more, I came across certain articles that
> point out some differences between Lisp and Scheme. Particularly on
> the topic of continuations and the fact that these are native to
> Scheme vs to both Smalltalk and Lisp. Then I wondered, if what I'm
> looking for is better support for continuation-based development,
> should I be looking into Scheme?

Scheme does have nice native support for continuations, while Common
Lisp has some features that make CPS transformations inherently
difficult. UCW's old CPS transformer worked pretty well, but it had a
number of nasty and insurmountable problems.

Marco is working on (or has added, I'm not sure which) an interpreter
for a CL-like language which has proper serializable continuations and
has removed CL's features that conflict with continuations, like
UNWIND-PROTECT. This promises a significant improvement in things Just
Working properly, at the cost of one or two orders of magnitude
slowdown in the interpreted code. The interpreted code isn't a
bottleneck, so don't worry about it.

> Before I spent much time looking into Scheme, I decided to quickly
> glance at Scheme's support for some of the minimum requirements I
> have for web app development. For example, I need to access MySQL and/
> or Postgres databases as well as the easy manipulation (mainly
> generation) of PDF and CSV files. Also, I would like to start using
> object databases more than relational databases. I didn't find much
> support for these in Scheme. However, I did come across some projects
> for both Lisp and Smalltalk to support my needs, which brought me
> back to wanting to learn more about UCW and Seaside.

I can't speak for scheme, but CL has:

CLSQL: a good interface to a number of SQL databases. I'm particularly
fond of the reader syntax that prevents SQL-injection problems, among
other inconveniences. There's also an object-relational mapping, but I
haven't used it so I can't opine on it.

fare-csv: you can import and export CSV in a straightforward way. I
found some of the code in this one to be a little amusing, but it
certainly works well enough.

CL-PDF and cl-typesetting: make PDF files easily, and do so with nice
typesetting.

> At this point, I'm wondering if there is anyone in this list that can
> shed some light into clearing up where I should be going. I've always
> been fascinated with Lisp, but never spent enough time to learn it.
> Now that I have some time, I'd like to know where I should be
> investing my time more wisely (Lisp, Smalltalk, Scheme). I don't know
> if I should really rule out Scheme and may be someone could also
> comment on it.

Unless you find some big difference in libraries or tools (I'm a big
fan of CL's SLIME IDE), the perennial arguments about CL vs. Scheme
are relevant.

You might also try reading some of the articles linked to in
<http://bc.tech.coop/blog/041229.html>. They aren't directly related
to your question, but they may be useful.

-Peter



More information about the bese-devel mailing list