From: Liu Fung Sin
Subject: Lisp Web Toolkit
Date: 
Message-ID: <1169176435.583639.39210@a75g2000cwd.googlegroups.com>
Doing web development in lisp is really easy (on the server side).

However, the client (JavaScript DOM, CSS, AJAX) side is still a pain
in the rear.

With the help of a bunch of libraries (YUI, prototype...), at least
you are shielded from the browsers inconsistency. However, it is still
hard to write reusable presentation layer code. (dojo widget is
unsable,
too slow if you convert all the UI to widget based)

For instance, in UCW you can define a bunch of components, each of
them have rendering method and actions. This makes bottom up
programming possible.

However, UCW only solve the problem that Paul Graham needed to solve 10
years ago. If you login to gmail, you can scroll to the bottom of the
page and click on the text link "basic HTML". This gives you a version
of gmail that runs without javascript enabled, and yet it still have
most of the features in the javascript enabled version. UCW is ideal
to develop this kind of HTML only apps.

Fast forward to 2007 - most of the modern browsers provide API
powerful enough to do most of the presentation work in the client side
(aka AJAX). When used properly, it really enhance the user experience.

Enter Google Web Toolkit. I've been playing with GWT for a few days.
Basically it's a java framework where you'll be writing java code and
your code ultimately get compiled to javascript.

GWT provided a bunch of classes like

AbsolutePanel Button CheckBox Composite DeckPanel DialogBox

and event interfaces like

KeyboardListener LoadListener MouseListener.

So it's like programming Swing.

You can take a look at the examples:

http://code.google.com/webtoolkit/documentation/examples/

Now the code become manageable and easy to code (compared to writing
javascript). BTW, for a dumb language like Java, the IDE really helps.

Except when your code base grow to a certain size. Suddenly I missed
all the closure and macro (especially the UI code, where I have a lot
of code patterns that repeat but cannot be encapsulate using function).

I'm curious if a similar framework like GWT in lisp will rock?

I know there's parentscript. But it's a direct (limited set) syntax
translation. And there's no driver code like GWT (connecting your code
to the DOM and DOM events). And you're not writing lisp code actually,
so no loop macro out of the box until you implement the js-macro.
GWT allows you to use 95% of java language construct.

>From what I understand, this will require a hacker that is good at the
domain language and also know javacript and the browser DOM model
inside out.

But the question is, do you think this project is a good idea?
Any comments on the ideal way to develop client side code (with the
help of lisp)?

Regards,
-- fungsin

From: skibud2
Subject: Re: Lisp Web Toolkit
Date: 
Message-ID: <1169180962.418874.74070@s34g2000cwa.googlegroups.com>
I think this is an excellent idea. I have been fooling around with a
clisp-based rails-like project and I am just getting into the
javascript side of things. The awesome part is that lisp can generate
both the server and the client side of the application. And the syntax
can be consistent. I am excited to see the possibilities, and I can't
wait to try it out. However I think the wife is getting tired of the
programming at night, and my wrists are not too happy either. ;) I need
to be doing this as my full time job.

On Jan 18, 10:13 pm, "Liu Fung Sin" <···········@gmail.com> wrote:
> Doing web development in lisp is really easy (on the server side).
>
> However, the client (JavaScript DOM, CSS, AJAX) side is still a pain
> in the rear.
>
> With the help of a bunch of libraries (YUI, prototype...), at least
> you are shielded from the browsers inconsistency. However, it is still
> hard to write reusable presentation layer code. (dojo widget is
> unsable,
> too slow if you convert all the UI to widget based)
>
> For instance, in UCW you can define a bunch of components, each of
> them have rendering method and actions. This makes bottom up
> programming possible.
>
> However, UCW only solve the problem that Paul Graham needed to solve 10
> years ago. If you login to gmail, you can scroll to the bottom of the
> page and click on the text link "basic HTML". This gives you a version
> of gmail that runs without javascript enabled, and yet it still have
> most of the features in the javascript enabled version. UCW is ideal
> to develop this kind of HTML only apps.
>
> Fast forward to 2007 - most of the modern browsers provide API
> powerful enough to do most of the presentation work in the client side
> (aka AJAX). When used properly, it really enhance the user experience.
>
> Enter Google Web Toolkit. I've been playing with GWT for a few days.
> Basically it's a java framework where you'll be writing java code and
> your code ultimately get compiled to javascript.
>
> GWT provided a bunch of classes like
>
> AbsolutePanel Button CheckBox Composite DeckPanel DialogBox
>
> and event interfaces like
>
> KeyboardListener LoadListener MouseListener.
>
> So it's like programming Swing.
>
> You can take a look at the examples:
>
> http://code.google.com/webtoolkit/documentation/examples/
>
> Now the code become manageable and easy to code (compared to writing
> javascript). BTW, for a dumb language like Java, the IDE really helps.
>
> Except when your code base grow to a certain size. Suddenly I missed
> all the closure and macro (especially the UI code, where I have a lot
> of code patterns that repeat but cannot be encapsulate using function).
>
> I'm curious if a similar framework like GWT in lisp will rock?
>
> I know there's parentscript. But it's a direct (limited set) syntax
> translation. And there's no driver code like GWT (connecting your code
> to the DOM and DOM events). And you're not writing lisp code actually,
> so no loop macro out of the box until you implement the js-macro.
> GWT allows you to use 95% of java language construct.
>
> >From what I understand, this will require a hacker that is good at thedomain language and also know javacript and the browser DOM model
> inside out.
>
> But the question is, do you think this project is a good idea?
> Any comments on the ideal way to develop client side code (with the
> help of lisp)?
> 
> Regards,
> -- fungsin
From: hyperstring.net ltd
Subject: Re: Lisp Web Toolkit
Date: 
Message-ID: <1169192351.153327.85280@l53g2000cwa.googlegroups.com>
skibud2 wrote:
> I think this is an excellent idea. I have been fooling around with a
> clisp-based rails-like project and I am just getting into the
> javascript side of things. The awesome part is that lisp can generate
> both the server and the client side of the application. And the syntax
> can be consistent. I am excited to see the possibilities, and I can't
> wait to try it out. However I think the wife is getting tired of the
> programming at night, and my wrists are not too happy either. ;) I need
> to be doing this as my full time job.
>
> On Jan 18, 10:13 pm, "Liu Fung Sin" <···········@gmail.com> wrote:
> > Doing web development in lisp is really easy (on the server side).
> >
> > However, the client (JavaScript DOM, CSS, AJAX) side is still a pain
> > in the rear.
> >
> > With the help of a bunch of libraries (YUI, prototype...), at least
> > you are shielded from the browsers inconsistency. However, it is still
> > hard to write reusable presentation layer code. (dojo widget is
> > unsable,
> > too slow if you convert all the UI to widget based)
> >
> > For instance, in UCW you can define a bunch of components, each of
> > them have rendering method and actions. This makes bottom up
> > programming possible.
> >
> > However, UCW only solve the problem that Paul Graham needed to solve 10
> > years ago. If you login to gmail, you can scroll to the bottom of the
> > page and click on the text link "basic HTML". This gives you a version
> > of gmail that runs without javascript enabled, and yet it still have
> > most of the features in the javascript enabled version. UCW is ideal
> > to develop this kind of HTML only apps.
> >
> > Fast forward to 2007 - most of the modern browsers provide API
> > powerful enough to do most of the presentation work in the client side
> > (aka AJAX). When used properly, it really enhance the user experience.
> >
> > Enter Google Web Toolkit. I've been playing with GWT for a few days.
> > Basically it's a java framework where you'll be writing java code and
> > your code ultimately get compiled to javascript.
> >
> > GWT provided a bunch of classes like
> >
> > AbsolutePanel Button CheckBox Composite DeckPanel DialogBox
> >
> > and event interfaces like
> >
> > KeyboardListener LoadListener MouseListener.
> >
> > So it's like programming Swing.
> >
> > You can take a look at the examples:
> >
> > http://code.google.com/webtoolkit/documentation/examples/
> >
> > Now the code become manageable and easy to code (compared to writing
> > javascript). BTW, for a dumb language like Java, the IDE really helps.
> >
> > Except when your code base grow to a certain size. Suddenly I missed
> > all the closure and macro (especially the UI code, where I have a lot
> > of code patterns that repeat but cannot be encapsulate using function).
> >
> > I'm curious if a similar framework like GWT in lisp will rock?
> >
> > I know there's parentscript. But it's a direct (limited set) syntax
> > translation. And there's no driver code like GWT (connecting your code
> > to the DOM and DOM events). And you're not writing lisp code actually,
> > so no loop macro out of the box until you implement the js-macro.
> > GWT allows you to use 95% of java language construct.
> >
> > >From what I understand, this will require a hacker that is good at thedomain language and also know javacript and the browser DOM model
> > inside out.
> >
> > But the question is, do you think this project is a good idea?
> > Any comments on the ideal way to develop client side code (with the
> > help of lisp)?
> >
> > Regards,
> > -- fungsin

Yes we have this sort of thing with LEWIS which is our web server - try
http://search.hyperstring.net to see some windowing stuff in action -
actually it makes web programming a breeze. Right now we can build an
ecommerce site in about 3-4 days whereas it used to take us 2 - 3
weeks.

Paul
http://www.hyperstring.net
From: Peetward
Subject: Re: Lisp Web Toolkit
Date: 
Message-ID: <1169462240.493408.112110@38g2000cwa.googlegroups.com>
Is there any likelihood of any of this excellent work being
open-sourced? That would be one way to share the burden and help make
Lisp the preferred platform for web development.
(I'm expecting Hyperstring to say "no" as they clearly have a
competitive advantage.)

I'm also working on a project with a Lisp server and have ended up with
GWT as the least bad option for the client side. GWT is still a heck of
a lot better than writing Javascript, and there are Eclipse plug-ins
for visual layout which generate much of the Java boilerplate.

Yet it does seem obvious (but non-trivial) to generate the Javascript
direct from Lisp, avoiding the Java. This would require serious
Javascript expertise, of which Google have plenty.
From: ·······@gmail.com
Subject: Re: Lisp Web Toolkit
Date: 
Message-ID: <1169590497.679166.178150@l53g2000cwa.googlegroups.com>
Peetward ha escrito:
> Is there any likelihood of any of this excellent work being
> open-sourced? That would be one way to share the burden and help make
> Lisp the preferred platform for web development.
> (I'm expecting Hyperstring to say "no" as they clearly have a
> competitive advantage.)
>
> I'm also working on a project with a Lisp server and have ended up with
> GWT as the least bad option for the client side. GWT is still a heck of
> a lot better than writing Javascript, and there are Eclipse plug-ins
> for visual layout which generate much of the Java boilerplate.
>
> Yet it does seem obvious (but non-trivial) to generate the Javascript
> direct from Lisp, avoiding the Java. This would require serious
> Javascript expertise, of which Google have plenty.

Maybe the following two links are of interest here (yes, yes, its
Scheme; no, I don't want
to start any flame war).

[Compiling Scheme to JavaScript]
http://hop.inria.fr/usr/local/share/hop/weblets/home/articles/scheme2js/article.html

and

[Hop]

http://hop.inria.fr/usr/local/share/hop/weblets/home/articles/hop-lang/article.html


Best,