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

Waldo Rubinstein waldo at trianet.net
Mon Sep 5 18:11:30 UTC 2005


On Sep 5, 2005, at 3:28 AM, Friedrich Dominicus wrote:





> Waldo Rubinstein <waldo at trianet.net> writes:
>
>
>
>
>
>
>> 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.
>>
>>
>>
>>
>>
> Well I just can tell you my experience, other will disagree. However
> here we go. I think Smalltalk/Seaside is easier to understand and
> apply, have you checked the Squeak Seaside examples? I found them
> amazing expecially the browser, however I did use CL and UCW for other
> reasons. I do not more about handling Common Lisp programs and how to
> run them "without" gui, then I know about Smalltalks. I assume there
> is a way to run Squeak in a sort of console, but I do not know.
>
> The other reason for me to use CL is cl-sql. It gives me persitence
> nearly for free. That is "a good thing" (TM;-). I just read about ORDB
> wrappers but did not have used them. Me seems that "generating" code
> instead of writing code is better supported in Common Lisp, that's
> another reasoin I choose to go the CL, but I found ruby on rails quite
> amazing and I found that there is much more in place for "application
> development", I were in contact with Drew on Lisp-on-lines, but he
> told me I'm nuts to expect his software to work out-of-the-box.
>
> Ruby is a Smalltalk with a "different syntax, but if you know
> Smalltalk you can learn ruby in no time really. There exists book
> "Agile web development with rails" or the like which explains rails
> very well. If I'd start from scratch I probably would choose
> rails.
>
> However there do exist something like a web-development system from
> the developers of PLT Scheme. I _guess_ that's one base example of
> applying continuations in web programming.
>
> http://download.plt-scheme.org/doc/299.200/html/web-server/
>
> The PLT people do have a lot of documentation and their Scheme is
> "nearly" a Common Lisp.
>
>
>
>
>

I actually started with rails. I developed a few production sites  
with it. However, during the time I was working with rails, it wasn't  
as mature as it is now. I can definitely say that their active  
community is one of the best communities I've ever worked with. They  
are all very willing to help.

Anyway, while reading more about Rub, I learned about its heritage  
in, among others, Smalltalk. So, I decided to learn Smalltalk mainly  
because of Seaside. I think Seaside is very nice. Although I felt  
rails had more features available to programmers as a framework, I  
think the benefits of continuations provided by Seaside outperformed  
rails (at least for my needs). I also read about Borges (the Ruby  
version of Seaside) but never bothered to play with it. I spent a few  
months stress testing Squeak/Seaside with a few database options. I  
was basically developing in that environment some of the applications  
I had developed in the past in either Ruby or Java. Well, although  
the performance was somewhat better than what I was getting with  
rails, I didn't feel that the development cycle in that environment  
was as productive as I would have expected from what I read/heard.

So, then I started reading up more about continuations and came  
across several articles that talked about it and made specific  
references to both Scheme and Lisp. For some reason, I tend to like  
Lisp better than Scheme. I haven't study much of Scheme, but there is  
something that aesthetically just doesn't attract me, even though  
Scheme seems to have evolved out of Lisp (or something like that).

I understand that continuations and tail-call optimization are native  
to Scheme. However, I like the UCW-way rather than what I have read  
on Scheme for web development. Granted, UCW is still in its  
childhood, as some refer, but that doesn't scare me much. When I  
started with rails, you could say it might have been at the same  
stage as UCW, but with alot of suggestions from a very active  
community and a dedicated team of developers, rails evolved very  
rapidly.

Since my original posting, I have been studying more Lisp and reading  
more white papers and case studies. The more I read, the more I feel  
Lisp offers a better environment for effective and scaleable  
development. Even reading some articles from way back when, where  
Lispers described more or less the development life-cycle in Lisp, it  
roughly detailed what Xtreme Programming is now, but more than a  
decade before the term was coined.

Like you, I don't necessarily get pulled into something because of a  
nice GUI IDE. To some degree, I prefer console and Vi/Emacs as well  
as being in control of the system processes that run my applications.  
Everything I develop is web based and it runs on remote servers, and  
there is nothing better than console for remote management. I agree  
that Seaside's exception handling mechanism via the web browser is  
magnificent in that it almost brings the Smalltalk environment to the  
browser for debugging purposes, but, after reading Paul Grahams  
article about Viaweb, you can do basically the same thing via the  
console connecting to the Lisp environment remotely.

At the same time, I don't develop applications that are accessed by  
millions of users. My business is more oriented towards business  
applications that are used within an enterprise of under 500 users. I  
go out of my way to make sure that I use open-source technologies. I  
don't believe much in paying license fees. I prefer to spend my  
moneys or any other resource I have available at supporting open- 
source efforts. The moment they go fee-based, I simply loose respect  
because of previous history I've had with license based applications/ 
tools.

So, my typical applications run on Linux with Apache, either MySQL or  
Postgres, and some "application framework", such as rails, or Squeak/ 
Seaside. Like I said before, because of the nature of my  
applications, I have to be able to easily export to CSV and be able  
to generate PDF documents on the fly, easily.

During my testing of Squeak/Seaside, I tested several OODBs and  
quickly learned about its benefits, particularly for some of the  
applications I develop. I only came across a couple of efforts in  
Lisp for OODBs. One was Elephant and the other was PLOB. I haven't  
had a chance to use either one, but while reading about PLOB, I  
discovered that it requires a server application managed by U. of St.  
Andrews, but no one seems to be able to get that going (at least from  
what I read), and that piece may require license fees. Elephant seems  
promising, but then again, I haven't stressed tested it (I haven't  
stress tested anything in Lisp yet for that matter).

As for PLT Scheme (the link you referred me to), it feels alot like  
Struts or something like that but in Scheme rather than Java. I don't  
know.





>
>
>
>
>
>
>
>
>>
>> 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.
>>
>>
>>
>>
>>
>
> Well IMHO it's worth using Common Lisp, however you better have some
> "hacker-mentality". A lot of Lisp Software is available but
> documentation is often sparse. Counterexamples are stuff from Franz,
> Edi Weitz and a few others. UCW was and is a lot of
> trial-and-error-and-asking here for me. There still are a lot of
> things mysterious for me. Adding or removing slots e.g, changing
> defactions are hard to understand for me, how to intervene TAL with
> Lisp is at least  a very dark greyhole for me.
>
> It seems however that others do not have that trouble, so it may be
> *me* but UCW....
>
> Regards
> Friedrich
>
>
>
>
>

Well, I can't relate well to the mysteries you seem to have with UCW.  
I do agree about the "mentality" you need to have and I think that's  
one of the things that encourage me more. I am productive most when I  
constantly feel challenged.

Overall, as far as UCW is concerned, I don't really know how involved  
the community is. Also, I don't know how committed the developers are  
to continually advance UCW. However, if only a fraction of what I saw  
in the rails community was active in this one, UCW could be at a  
completely different level within a month. Note to UCW team: I don't  
mean any disrespect nor do I intend on saying UCW is too infantile at  
this moment. I honestly haven't played enough with it and I'm only  
paraphrasing what others have mentioned. As a matter of fact, if  
there is anything I can contribute, I would gladly do so. It's just  
that at this moment, my Lisp skills are not at the level I would  
expect in order to contribute to such a project. However, I can  
provide plenty of ideas to contribute, as long as there is someone  
out there willing to listen and formally work on a development roadmap.

Sorry for the long post and look forward to reading more comments  
from this community.

Thanks,
Waldo







More information about the bese-devel mailing list