[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