[Seaside] YUI
C. David Shaffer
cdshaffer at acm.org
Tue Oct 30 18:32:45 UTC 2007
Randal,
Have you looked at ExtJS (http://extjs.com)? I'm developing a project
based on this widget set for a client. Many parts of YUI and ExtJS are,
as Lukas mentioned, not particularly well-suited for Seaside's stateful
component approach however I think I can find a decent combination of
both systems' strengths for my current project. Unfortunately I'm
tightly constrained timewise (UI demo in about three weeks). I have
permission to share the Squeak-ExtJS code (once there is anything worth
sharing) and I'd welcome other contributions and discussion but I'm not
in a position to participate in a community development project, if you
know what I mean. Maybe after a successful demo though. Anyway if
there's one thing I'm struggling with more than anything it is the
design of the "Javascript in Smalltalk" code which achieves a decent
balance:
1) Smalltalk code should reflect Javascript code
2) Smalltalk objects to should semantically represent Javascript objects
(not syntax), if possible
3) The API of the Javascript objects should be evident in Smalltalk
I'm not sure about 3. Basically it says that for each Javascript class
we want a Smalltalk class with the same methods (although the Smalltalk
methods simply produce Smalltalk values to represent their result). The
problem with this is, of course, that we can't predict the return types
of all Javascript methods which makes this approach "shallow" (you can
send messages to objects that you've created directly but not to objects
returned by their methods except in the cases where you're sure of the
interface of the return type). If we drop 3 then something much less
concrete than the SUObject hierarchy appears...something more like a
"proxy" which uses DNU to generate javascript syntax objects. This is
my current approach. The next couple days will tell me a lot about it.
This could act as a core to both an ExtJS and a YUI implementation...
BTW, "yes", I know about ST2JS. It might provide a solution but I just
don't quite see how to make it work yet.
David
More information about the seaside
mailing list