Smalltalk alternative to Ajax?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Smalltalk alternative to Ajax?

Stew MacLean

Hi,

 

For the company I work for we have a Java client interfacing to Servers written in VisualAge Smalltalk using Ultra Light Client protocol (a proprietary (ex) IBM protocol).

 

In order to make our interface look more “sexy” and to keep up with the hyperbole, it has been decreed that we need to develop an Ajax front end to the servers (which are also earmarked for rewriting in a more “mainstream” language down the road).

 

I’m curious if anyone knows of a serious Smalltalk alternative to using JavaScript, bearing in mind that one of the main attractions to JavaScript is the zero install.

 

All comments appreciated…

 

Cheers,

 

Stewart

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk alternative to Ajax?

Martin McClure
Stewart MacLean wrote:

>
> For the company I work for we have a Java client interfacing to Servers
> written in VisualAge Smalltalk using Ultra Light Client protocol (a
> proprietary (ex) IBM protocol).
>
> In order to make our interface look more “sexy” and to keep up with the
> hyperbole, it has been decreed that we need to develop an Ajax front end
> to the servers (which are also earmarked for rewriting in a more
> “mainstream” language down the road).
>
> I’m curious if anyone knows of a serious Smalltalk alternative to using
> JavaScript, bearing in mind that one of the main attractions to
> JavaScript is the zero install.

Seaside has recently (this year) acquired the ability to use Ajax or an
Ajax-like JavaScript library. You don't have to program in JavaScript to
use it, you specify your stuff in Smalltalk.

I don't know very much about it more than that -- what I've seen looks
cool, but I haven't used it myself.

Unfortunately for your situation, Seaside does not run in VA, only in VW
and Squeak.

-Martin

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk alternative to Ajax?

Mark Roberts
In reply to this post by Stew MacLean
At 06:51 AM 9/21/2006, Stewart MacLean wrote:
Hi,
 
For the company I work for we have a Java client interfacing to Servers written in VisualAge Smalltalk using Ultra Light Client protocol (a proprietary (ex) IBM protocol).
 
In order to make our interface look more “sexy” and to keep up with the hyperbole, it has been decreed that we need to develop an Ajax front end to the servers (which are also earmarked for rewriting in a more “mainstream” language down the road).
 
I’m curious if anyone knows of a serious Smalltalk alternative to using JavaScript, bearing in mind that one of the main attractions to JavaScript is the zero install.
 
All comments appreciated…

Somebody else may have some ideas, but I've not heard of anything on the client side that you can leverage without an install of some sort (VisualWorks has a browser plug-in, but obviously it's not a "zero install").

That said, I have used Ajax with the VisualWorks Application Server and my impression is that you can do a lot without getting heavily involved in JavaScript.

Have you looked at the JS framework called "Prototype"? http://prototype.conio.net/

I believe this is used by scriptaculous, and ergo Seaside. It's not very complicated and takes a lot of the pain out of using JavaScript.

For Ajax, you just include Prototype, write a few simple glue functions, and then you can talk to a server running Smalltalk without much fuss. With a few hours of work, you can have web pages that use HTTP POST in the background, dynamically updating the page depending upon success or failure. After the glue functions are done, you can avoid writing more JavaScript except for the little bits that invoke the functions <input type="button" value="Submit" onclick="postAndUpdate('myServerPage.ssp', this.form, 'responseString', 'errorString', true);">.

Thus, you can keep the bulk of your code in Smalltalk on the server. You can, for example, do input validation in Smalltalk by applying all the rules on the server instead of writing a bunch of JavaScript, and forwarding validation exceptions on the server as errors that get returned to the web client. The Ajax architecture makes it easy to do this without stashing a lot of stuff inside session variables on the server.

Of course, it depends upon what you want your front end to look like, but it may be a lot less messy than you think, and you can put the cycles you save into the Smalltalk server application.

Finally, if you're curious, I can provide some example code for what I used with Prototype.

HTH,

M. Roberts
Cincom Systems, Inc.
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk alternative to Ajax?

Janko Mivšek
In reply to this post by Stew MacLean
Hi Steward,

In my experience Ajax is more than just a buzzword and it can really
help making web apps more user friendly and closer to GUI counterparts.
I even expect that in the future the web and GUI apps will merge into
one. MS Vista is an example of that direction, if you just look at its
quite web-alike GUI apps.

Ajax can be quite easily "hidden", that is, seamlessly integrated into a
server-side Smalltalk code and maybe a small example can show that
better. This is a code for a first example in Ajax demo (see Demos at
http://aida.eranova.si/, a demo site for the Aida/Web web application
server, developed on VW):


WebDemoApp>>ajaxTimeElement
  | e |
  e := WebElement new.
  e style: '{background-color: #eee }'.
  e addTextBold: Timestamp now printString.
  ^e

WebDemoApp>>ajaxUpdateTimeExample
  | e element |
  e := WebElement new.
  e addTextH4: 'Example 1: Update element from server (AJAX)'.
  element := self ajaxTimeElement.
  e
    add: element;
    addBreak;
    add: ((WebElement new addText: 'click here to update')
             onClickUpdate: element);
    addBreak.
  ^e


This demo demostrates a most common Ajax pattern, which updates a
portion of a web page when some event occurs. In our case we update a
timestamp printout when we click on text 'click here to update'.

A timestamp printout is a duty of a first method #ajaxTimeElement. This
method should be therefore called every time we click on 'click here to
update' and result should be returned to a client to replace a printout
there. As you can see from a bottom of second method, in Aida/Web you do
that simply by:

        anElementToClickOn onClickUpdate: anElementToUpdate.


To demonstrate Ajax even more, here are some screenshots from commercial
Ajax enabled web apps:

        http://www.aidaweb.si/screenshots.html


Best regards
Janko


Stewart MacLean wrote:

> Hi,
>
> For the company I work for we have a Java client interfacing to Servers
> written in VisualAge Smalltalk using Ultra Light Client protocol (a
> proprietary (ex) IBM protocol).
>
> In order to make our interface look more “sexy” and to keep up with the
> hyperbole, it has been decreed that we need to develop an Ajax front end
> to the servers (which are also earmarked for rewriting in a more
> “mainstream” language down the road).
>
> I’m curious if anyone knows of a serious Smalltalk alternative to using
> JavaScript, bearing in mind that one of the main attractions to
> JavaScript is the zero install.
>
> All comments appreciated…

> Cheers,

> Stewart
>

--
Janko Mivšek
Svetovalec za informatiko
EraNova d.o.o.
Ljubljana, Slovenija
www.eranova.si
tel:  01 514 22 55
faks: 01 514 22 56
gsm: 031 674 565

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk alternative to Ajax?

stéphane ducasse-2
In reply to this post by Martin McClure
In fact Seaside had Ajax support before the term was coined :)
But now you have a good support using the scriptaculous library.
have a look at http://scriptaculous.seasidehosting.st/ to see it live :)

Stef


On 21 sept. 06, at 00:01, Martin McClure wrote:

> Stewart MacLean wrote:
>> For the company I work for we have a Java client interfacing to  
>> Servers written in VisualAge Smalltalk using Ultra Light Client  
>> protocol (a proprietary (ex) IBM protocol).
>> In order to make our interface look more “sexy” and to keep up  
>> with the hyperbole, it has been decreed that we need to develop an  
>> Ajax front end to the servers (which are also earmarked for  
>> rewriting in a more “mainstream” language down the road).
>> I’m curious if anyone knows of a serious Smalltalk alternative to  
>> using JavaScript, bearing in mind that one of the main attractions  
>> to JavaScript is the zero install.
>
> Seaside has recently (this year) acquired the ability to use Ajax  
> or an Ajax-like JavaScript library. You don't have to program in  
> JavaScript to use it, you specify your stuff in Smalltalk.
>
> I don't know very much about it more than that -- what I've seen  
> looks cool, but I haven't used it myself.
>
> Unfortunately for your situation, Seaside does not run in VA, only  
> in VW and Squeak.
>
> -Martin
>

Reply | Threaded
Open this post in threaded view
|

RE: Smalltalk alternative to Ajax?

Stew MacLean
In reply to this post by Martin McClure
Hi Martin,

Thanks for this.

Yep, sadly we're a bit stymied with Seaside and VA. I believe
Instantiations have put it out as a challenge to port Seaside to VA.
However, from what I understand, the stack architecture of VA presents
some difficulties :(.

Cheers,

Stewart

>-----Original Message-----
>From: Martin McClure [mailto:[hidden email]]
>Sent: 21 September 2006 10:01 a.m.
>To: Stewart MacLean
>Cc: [hidden email]
>Subject: Re: Smalltalk alternative to Ajax?
>
>Stewart MacLean wrote:
>>
>> For the company I work for we have a Java client interfacing to
Servers
>> written in VisualAge Smalltalk using Ultra Light Client protocol (a
>> proprietary (ex) IBM protocol).
>>
>> In order to make our interface look more "sexy" and to keep up with
the
>> hyperbole, it has been decreed that we need to develop an Ajax front
end
>> to the servers (which are also earmarked for rewriting in a more
>> "mainstream" language down the road).
>>
>> I'm curious if anyone knows of a serious Smalltalk alternative to
using
>> JavaScript, bearing in mind that one of the main attractions to
>> JavaScript is the zero install.
>
>Seaside has recently (this year) acquired the ability to use Ajax or an
>Ajax-like JavaScript library. You don't have to program in JavaScript
to
>use it, you specify your stuff in Smalltalk.
>
>I don't know very much about it more than that -- what I've seen looks
>cool, but I haven't used it myself.
>
>Unfortunately for your situation, Seaside does not run in VA, only in
VW
>and Squeak.
>
>-Martin


Reply | Threaded
Open this post in threaded view
|

RE: Smalltalk alternative to Ajax?

Stew MacLean
In reply to this post by Mark Roberts

Hi Mark,

 

Thanks for your reply.

 

I have done a bit of research into JavaScript toolkits, and prototype (along with Richo) looked promising.

 

I’ve opened up the Server using the VisualAge Web Connect feature, and done basic authentication and a generic SQL like select query.

 

I’d take up your kind offer of code samples, however my role is currently “Smalltalk/Server Side”.

 

I’ve never tried the plug in, and was wondering what the over head is? Does anyone actually use this? Maybe this could be used along with WithStyle?

 

 I’ve got an uncompressed VisualWorks runtime image that’s ~15MB (with a “non aggressive” packaging strategy). So with the VM, my guess is that it would take along time to do the initial download?

 

Cheers,

 

Stewart

 

-----Original Message-----
From: Mark D. Roberts [mailto:[hidden email]]
Sent: 21 September 2006 1:23 p.m.
To:
Stewart MacLean; [hidden email]
Subject: Re: Smalltalk alternative to Ajax?

 

At 06:51 AM 9/21/2006, Stewart MacLean wrote:

Hi,
 
For the company I work for we have a Java client interfacing to Servers written in VisualAge Smalltalk using Ultra Light Client protocol (a proprietary (ex) IBM protocol).
 
In order to make our interface look more “sexy” and to keep up with the hyperbole, it has been decreed that we need to develop an Ajax front end to the servers (which are also earmarked for rewriting in a more “mainstream” language down the road).
 
I’m curious if anyone knows of a serious Smalltalk alternative to using JavaScript, bearing in mind that one of the main attractions to JavaScript is the zero install.
 
All comments appreciated…


Somebody else may have some ideas, but I've not heard of anything on the client side that you can leverage without an install of some sort (VisualWorks has a browser plug-in, but obviously it's not a "zero install").

That said, I have used Ajax with the VisualWorks Application Server and my impression is that you can do a lot without getting heavily involved in JavaScript.

Have you looked at the JS framework called "Prototype"? http://prototype.conio.net/

I believe this is used by scriptaculous, and ergo Seaside. It's not very complicated and takes a lot of the pain out of using JavaScript.

For Ajax, you just include Prototype, write a few simple glue functions, and then you can talk to a server running Smalltalk without much fuss. With a few hours of work, you can have web pages that use HTTP POST in the background, dynamically updating the page depending upon success or failure. After the glue functions are done, you can avoid writing more JavaScript except for the little bits that invoke the functions <input type="button" value="Submit" onclick="postAndUpdate('myServerPage.ssp', this.form, 'responseString', 'errorString', true);">.

Thus, you can keep the bulk of your code in Smalltalk on the server. You can, for example, do input validation in Smalltalk by applying all the rules on the server instead of writing a bunch of JavaScript, and forwarding validation exceptions on the server as errors that get returned to the web client. The Ajax architecture makes it easy to do this without stashing a lot of stuff inside session variables on the server.

Of course, it depends upon what you want your front end to look like, but it may be a lot less messy than you think, and you can put the cycles you save into the Smalltalk server application.

Finally, if you're curious, I can provide some example code for what I used with Prototype.

HTH,

M. Roberts
Cincom Systems, Inc.

Reply | Threaded
Open this post in threaded view
|

RE: Smalltalk alternative to Ajax?

Stew MacLean
In reply to this post by Janko Mivšek
Hi Janko,

As we say down under... NICE!

I'm wondering what the possibility of porting it to ViusalAge would be?

Would it be possible to use VisualAge's WebConnect instead of Swazoo as
an interface to the web?

Cheers,

Stewart


>-----Original Message-----
>From: Janko Mivšek [mailto:[hidden email]]
>Sent: 21 September 2006 8:32 p.m.
>To: Stewart MacLean; 'VWNC'
>Subject: Re: Smalltalk alternative to Ajax?
>
>Hi Steward,
>
>In my experience Ajax is more than just a buzzword and it can really
>help making web apps more user friendly and closer to GUI counterparts.
>I even expect that in the future the web and GUI apps will merge into
>one. MS Vista is an example of that direction, if you just look at its
>quite web-alike GUI apps.
>
>Ajax can be quite easily "hidden", that is, seamlessly integrated into
a

>server-side Smalltalk code and maybe a small example can show that
>better. This is a code for a first example in Ajax demo (see Demos at
>http://aida.eranova.si/, a demo site for the Aida/Web web application
>server, developed on VW):
>
>
>WebDemoApp>>ajaxTimeElement
>  | e |
>  e := WebElement new.
>  e style: '{background-color: #eee }'.
>  e addTextBold: Timestamp now printString.
>  ^e
>
>WebDemoApp>>ajaxUpdateTimeExample
>  | e element |
>  e := WebElement new.
>  e addTextH4: 'Example 1: Update element from server (AJAX)'.
>  element := self ajaxTimeElement.
>  e
>    add: element;
>    addBreak;
>    add: ((WebElement new addText: 'click here to update')
>             onClickUpdate: element);
>    addBreak.
>  ^e
>
>
>This demo demostrates a most common Ajax pattern, which updates a
>portion of a web page when some event occurs. In our case we update a
>timestamp printout when we click on text 'click here to update'.
>
>A timestamp printout is a duty of a first method #ajaxTimeElement. This
>method should be therefore called every time we click on 'click here to
>update' and result should be returned to a client to replace a printout
>there. As you can see from a bottom of second method, in Aida/Web you
do
>that simply by:
>
> anElementToClickOn onClickUpdate: anElementToUpdate.
>
>
>To demonstrate Ajax even more, here are some screenshots from
commercial

>Ajax enabled web apps:
>
> http://www.aidaweb.si/screenshots.html
>
>
>Best regards
>Janko
>
>
>Stewart MacLean wrote:
>> Hi,
>>
>> For the company I work for we have a Java client interfacing to
Servers
>> written in VisualAge Smalltalk using Ultra Light Client protocol (a
>> proprietary (ex) IBM protocol).
>>
>> In order to make our interface look more "sexy" and to keep up with
the
>> hyperbole, it has been decreed that we need to develop an Ajax front
end
>> to the servers (which are also earmarked for rewriting in a more
>> "mainstream" language down the road).
>>
>> I'm curious if anyone knows of a serious Smalltalk alternative to
using

>> JavaScript, bearing in mind that one of the main attractions to
>> JavaScript is the zero install.
>>
>> All comments appreciated.
>
>> Cheers,
>
>> Stewart
>>
>
>--
>Janko Mivšek
>Svetovalec za informatiko
>EraNova d.o.o.
>Ljubljana, Slovenija
>www.eranova.si
>tel:  01 514 22 55
>faks: 01 514 22 56
>gsm: 031 674 565



Reply | Threaded
Open this post in threaded view
|

RE: Smalltalk alternative to Ajax?

Stew MacLean
In reply to this post by stéphane ducasse-2
Hi Stef,

Yes, Seaside seems to be ahead of it's time. Sadly it's not an option
for us as we're using VisualAge.

Cheers,

Stewart

>-----Original Message-----
>From: stéphane ducasse [mailto:[hidden email]]
>Sent: 21 September 2006 10:24 p.m.
>To: Martin McClure
>Cc: Stewart MacLean; [hidden email]
>Subject: Re: Smalltalk alternative to Ajax?
>
>In fact Seaside had Ajax support before the term was coined :)
>But now you have a good support using the scriptaculous library.
>have a look at http://scriptaculous.seasidehosting.st/ to see it live
:)

>
>Stef
>
>
>On 21 sept. 06, at 00:01, Martin McClure wrote:
>
>> Stewart MacLean wrote:
>>> For the company I work for we have a Java client interfacing to
>>> Servers written in VisualAge Smalltalk using Ultra Light Client
>>> protocol (a proprietary (ex) IBM protocol).
>>> In order to make our interface look more “sexy” and to keep up
>>> with the hyperbole, it has been decreed that we need to develop an
>>> Ajax front end to the servers (which are also earmarked for
>>> rewriting in a more “mainstream” language down the road).
>>> I’m curious if anyone knows of a serious Smalltalk alternative to
>>> using JavaScript, bearing in mind that one of the main attractions
>>> to JavaScript is the zero install.
>>
>> Seaside has recently (this year) acquired the ability to use Ajax
>> or an Ajax-like JavaScript library. You don't have to program in
>> JavaScript to use it, you specify your stuff in Smalltalk.
>>
>> I don't know very much about it more than that -- what I've seen
>> looks cool, but I haven't used it myself.
>>
>> Unfortunately for your situation, Seaside does not run in VA, only
>> in VW and Squeak.
>>
>> -Martin
>>



Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk alternative to Ajax?

Janko Mivšek
In reply to this post by Stew MacLean
Hi Steward,

Stewart MacLean wrote:
> As we say down under... NICE!

Thanks!

> I'm wondering what the possibility of porting it to ViusalAge would be?

I'm sure Aida is portable to VA too, because I managed to port it
recently to Dolphin without much problems. Aida don't use (a lot) of
deep metaprograming tricks, which allows portability obviously to any
Smalltalk dialect.

> Would it be possible to use VisualAge's WebConnect instead of Swazoo as
> an interface to the web?

I think yes but if there is not a specific reason to use WebConnect I'd
propose to port Swazoo too. All what is needed is to port Bruce Badger's
SPort portability layer, after that Swazoo (and also Aida) is much
easier to port.

Best regards
Janko

>
> Cheers,
>
> Stewart
>
>
>> -----Original Message-----
>> From: Janko Mivšek [mailto:[hidden email]]
>> Sent: 21 September 2006 8:32 p.m.
>> To: Stewart MacLean; 'VWNC'
>> Subject: Re: Smalltalk alternative to Ajax?
>>
>> Hi Steward,
>>
>> In my experience Ajax is more than just a buzzword and it can really
>> help making web apps more user friendly and closer to GUI counterparts.
>> I even expect that in the future the web and GUI apps will merge into
>> one. MS Vista is an example of that direction, if you just look at its
>> quite web-alike GUI apps.
>>
>> Ajax can be quite easily "hidden", that is, seamlessly integrated into
> a
>> server-side Smalltalk code and maybe a small example can show that
>> better. This is a code for a first example in Ajax demo (see Demos at
>> http://aida.eranova.si/, a demo site for the Aida/Web web application
>> server, developed on VW):
>>
>>
>> WebDemoApp>>ajaxTimeElement
>>  | e |
>>  e := WebElement new.
>>  e style: '{background-color: #eee }'.
>>  e addTextBold: Timestamp now printString.
>>  ^e
>>
>> WebDemoApp>>ajaxUpdateTimeExample
>>  | e element |
>>  e := WebElement new.
>>  e addTextH4: 'Example 1: Update element from server (AJAX)'.
>>  element := self ajaxTimeElement.
>>  e
>>    add: element;
>>    addBreak;
>>    add: ((WebElement new addText: 'click here to update')
>>             onClickUpdate: element);
>>    addBreak.
>>  ^e
>>
>>
>> This demo demostrates a most common Ajax pattern, which updates a
>> portion of a web page when some event occurs. In our case we update a
>> timestamp printout when we click on text 'click here to update'.
>>
>> A timestamp printout is a duty of a first method #ajaxTimeElement. This
>> method should be therefore called every time we click on 'click here to
>> update' and result should be returned to a client to replace a printout
>> there. As you can see from a bottom of second method, in Aida/Web you
> do
>> that simply by:
>>
>> anElementToClickOn onClickUpdate: anElementToUpdate.
>>
>>
>> To demonstrate Ajax even more, here are some screenshots from
> commercial
>> Ajax enabled web apps:
>>
>> http://www.aidaweb.si/screenshots.html
>>
>>
>> Best regards
>> Janko
>>
>>
>> Stewart MacLean wrote:
>>> Hi,
>>>
>>> For the company I work for we have a Java client interfacing to
> Servers
>>> written in VisualAge Smalltalk using Ultra Light Client protocol (a
>>> proprietary (ex) IBM protocol).
>>>
>>> In order to make our interface look more "sexy" and to keep up with
> the
>>> hyperbole, it has been decreed that we need to develop an Ajax front
> end
>>> to the servers (which are also earmarked for rewriting in a more
>>> "mainstream" language down the road).
>>>
>>> I'm curious if anyone knows of a serious Smalltalk alternative to
> using
>>> JavaScript, bearing in mind that one of the main attractions to
>>> JavaScript is the zero install.
>>>
>>> All comments appreciated.
>>> Cheers,
>>> Stewart
>>>
>> --
>> Janko Mivšek
>> Svetovalec za informatiko
>> EraNova d.o.o.
>> Ljubljana, Slovenija
>> www.eranova.si
>> tel:  01 514 22 55
>> faks: 01 514 22 56
>> gsm: 031 674 565
>
>
>
>

--
Janko Mivšek
Svetovalec za informatiko
EraNova d.o.o.
Ljubljana, Slovenija
www.eranova.si
tel:  01 514 22 55
faks: 01 514 22 56
gsm: 031 674 565