2. 2
About Us
Germán S. Arduino
Founder of Arduino Software http://www.arduinosoftware.com
Producer of PasswordsPro http://www.passwordspro.com
Blog at: http://germanarduino.blogspot.com
Alejandro M. Aguirre
Founder of tech-Art Engineering
Personal page at: http://wiki.squeak.org/squeak/6112
Diego Gómez Deck
Partner at IGO Software http://www.igosoftware.es
Creator of SWT and friends
Squeak Guru
3. 3
What is SWT ?
A web development framework based on Model-View-
Controller
Model centered (as any good software)
Divides the software in two parts:
Server Part (Model): Running on the server (Smalltalk)
Client Part (UI): Running on Internet Browser (Javascript)
Includes a translator from Smalltalk to Javascript (ST2JS) to
avoid the need of write Javascript code
4. 4
What is SWT (Cont) ?
Uses Comet to break the HTTP protocol asymmetry
With Comet we can deliver content to the client when an
event has occurred in the model or in the server and avoid
the pooling task to the server.
This technique allows us to develop a MVC framework. The
model is on the server and the view-controller on the client.
The model can travel (translated to Javascript) to the client.
The events are fired from the server to the client, and the
framework has optimizations to control the network traffic.
5. 5
Smalltalk to Javascript Translator (ST2JS)
Asteroid is a small, but still functional, implementation of the
technology named Comet.
See more about comet at:
http://en.wikipedia.org/wiki/Comet_(programming)
http://cometdaily.com
In web development, Comet is a neologism to describe a
web application model in which a long-held HTTP request
allows a web server to push data to a browser, without the
browser explicitly requesting it.
6. 6
Smalltalk to Javascript Translator (ST2JS)
The "dom" widgets are written in Squeak (The basic widgets
developed in Smalltalk and translated to JS by ST2JS. Not
need to know Javascript!)
It takes advantage of modern browsers running javascript
The result is a squeak image running in the browser!
7. 7
Features
The client server communication with traditional Ajax
The server client communication with Comet
#clientSide and #serverSide engines
Examples:
Ping Pong
Realtime Collaborative Whiteboard
Changes on real time
9. 9
More features
Distributed MVC – Designed to run with Comet.
Remote Model-View-Controller attempts to optimize the
network traffic. Model on the server and vc on the client.
Example of Distributed MVC running
When you are development in this framework you don't feel
the sensation that you are developing a web application.
Here we don't use anything outside Smalltalk.
10. 10
Using SWT to “compile” Javascript
Another useful possibility of SWT is use it to “compile”
Javascript and then run it from a static html page without
Squeak on the server.
Live Example: http://www.caceres3d.es/gigapixel/
Of course, being an static html, also works on mobile
devices as the iPhone!
Download the source code to generate the html from
http://www.squeaksource.com/VHRP.html
13. 13
References
SWT is open source MIT licensed and is available on
Squeaksource: http://www.squeaksource.com/SWT.html
Mailing List: web20-smalltalk@googlegroups.com
Next Steps:
Port to latest versions of Squeak
Port to Dolphin / Dolphin New Generation
Invite all Smalltalkers to check it and, may be, help with the
development.