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

Waldo Rubinstein waldo at trianet.net
Sat Sep 10 15:13:22 UTC 2005


On Sep 6, 2005, at 8:53 AM, Drew Crampsie wrote:

> Waldo Rubinstein wrote:
>
>
>> 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).
>>
>
> There is a license problem with elephant as well, as it uses the  
> Berkeley DB. Not a problem if all your code is Open Source, or if  
> its in-house only, or you pay for a license.

Not a problem

>
> I personally use clsql's O-R mapping, but there are a few other  
> options available.

 From what I read, clsql seems interesting. However, I'd like to see  
some more abstraction in the O-R mapping. I feel you have to do too  
much work to keep the O and the R synchronized.

>
> http://common-lisp.net/project/cl-prevalence/
>
> "CL-PREVALENCE is an implementation of Object Prevalence for Common  
> Lisp. It was written by and is being maintained by Sven Van  
> Caekenberghe. CL-PREVALENCE is using S-XML for the XML  
> serialization protocol (there is also a more Lisp-like s-expression- 
> based serialization protocol)."
>
> http://common-lisp.net/project/cl-store/
>
> " CL-STORE is a package written by Sean Ross for serializing and  
> deserializing CL objects from streams
> It has been tested and works on -
>
>     * SBCL (0.8.10.12) on Linux x86
>     * CMUCL (CVS Head 2003-09-14) on Linux x86
>     * CLISP (2.33) on Linux x86 and Windows
>     * Lispworks Personal Edition 4.3 on Linux x86 and Windows
>     * Allegro CL Trial Edition 6.2 [Linux (x86)]
>     * OpenMCL is supported but is largely untested.
>     * ECL (Embeddable Common-Lisp) 0.9d
>
> CL-STORE is licensed under the MIT Licence. "
>
> FWIW, the latter seems to be more active/supported, though i have  
> not used either for anything serious.

They both seem interesting. Does anyone know of production use?  
Scalability? Performance?

>
>
>> 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.
>>
>
> Very. Marco is constantly evolving UCW and arnesi, and this list  
> sees many patches sent from users/developers. I personally make my  
> living with UCW, so i can guarantee that it will have at least one  
> user for a long time :)

For my own learning purposes, could you describe your use of UCW for  
production-based applications? Is there any public web site I can see  
your work, or for that matter, where I can see public usage of 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.
>>
>
> I'm not sure comparing Rails with UCW is fair. From the UCW docs :
>
> "UCW deals with managing user interaction via HTTP and nothing  
> more, no database layer, no user authentication or security nor any  
> content management systems. This is an intentional design choice:  
> there is no way UCW could provide a single implementation of these  
> features which would well in every setup, so instead of trying to  
> be everything for everyone UCW will limit itself to help developers  
> deal with interacting via HTTP."
>
> and from the Rails page :
>
> "Rails is a full-stack, open-source web framework in Ruby for  
> writing real-world applications with joy and less code than most  
> frameworks spend doing XML sit-ups"
>
> The two projects have a very different focus, and very different  
> implementation strategies. UCW is a framework that you could  
> implement somthing like Rails in, like my own Lisp-on-Lines for  
> example (watch this list for upcoming 0.1 release), which provides  
> the "missing" ucw features (an introspective o-r mapping and a  
> presentation system for CLOS objects).

Well, other than Lisp-on-Lines (which I haven't been able to find  
anywhere other than the wiki since http://versions.tech.coop/lisp-on- 
lines/ seems to be down), are there any other type of component-based  
web frameworks based on UCW? I think that if UCW's objective is  
mainly to become the best framework for abstracting the interaction  
of user <--> HTTP <--> UCW-based app, there should be someone out  
there focusing on the Lisp-on-Lines-type framework.

>
>
>> 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.
>>
>
> One of the problems is that UCW is not really for newbies, yet it  
> attracts a lot of people both new to CL and to CPS frameworks.  
> FWIW, i learned CL and UCW at the same time, but it was a bit of a  
> struggle.

I can relate

>
> Once one is well versed in CL, and has played with continuations  
> enough to have a solid grasp on the concept, things get easier.  
> UCW's component model is very powerful, and i couldn't imagine  
> doing web-apps any other way, but it is _very_ different from most  
> other web frameworks.

Can't wait to get there

>
> The other thing is that CPS based web stuff is new as well, and  
> we're still discovering things. There is room for improvement in  
> UCW, but finding out where that room is, is challenging :)
>
>
>> 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.
>>
>
> Both UCW and (especially) Lisp on Lines are a little short in the  
> documentation dept. The UCW source code is _very_ well documented,  
> but for some reason some people don't like to read docstrings :)
>
> I think a high-level overview of how components work would probably  
> help the n00b crowd a lot. Something like what is a component, and  
> what the slots PLACE, CONTINUATION, and CALLING-COMPONENT do, and  
> how it all interacts with call-component etc would be great, and us  
> 'insiders' are a little too close to the code to be able to explain  
> it to beginners.

I can try hacking up some beginners docs based on my learning experience

>
>
>> 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.
>>
>
> I'm always interested in good ideas, and i'm a pretty good listener :)
>
> drewc
>

Thanks,
Waldo



More information about the bese-devel mailing list