Rich Ruby Agenda
posted by Paul Hammant
I have been promoting an idea for quite a few years. In a nutshell its a better web technology than HTML+JavaScript.
It started when I first saw Groovy's Builders in 2004. Particularly the Swing Builder. I realized that it could be a alternate page technology to HTML and JavaScript. Thus Thicky was born in march of 2004. It was a useful prototype that got some blog space attention (Obie Fernandez and Dion Alamer).
To me I liked the idea because:
- a declarative style is a pleasant way of marking up a UI, and is particularly easy to learn like the HTML was in 1991.
- you do not have ugly hooks to mix in procedural code, you can choose to inline it (strictly speaking this breaks the declarative style)
- it is a script language that flies to the client like HTML (and not a large binary blob that comes down like Flash)
- it is functionally far superior to HTML/DOM/JS - movies playing behind data-entry forms anyone?
- it honors the ideals of the web as we know it; the GET/POST/PUT/DELETE verbs, REST, incramental load.
Ultimately though Thicky was flawed, as the Groovy team dropped their interpreted mode as they moved from alpha to beta, and silently generate Java bytecode on first script invocation. The problem for client side Java is that a delay before page display will be unacceptable. This was clear as later versions of Thicky were slower than the original one.
Thus, when I learned about Swiby from colleagues, I decided to help the author Jean Lazarou. Its the same DSL idea but leveraging JRuby.
Shoes too looks interesting (but does not yet have a web equivalent mode). Its challenges are to recreate a sandbox, that Java/Swing and Swiby are going to find easy.
Lastly, I'm trying to persuade Martin Fowler to write a bliki article called Closure Normal as he is really good at explaining things to the masses. It is when you use a language like Ruby or Groovy and leverage builders so that the UI part of a map looks to be almost entirely made of closures. There are loads of keywords in the mix like DSL, Builders. Even Closures has a regular understanding that's classically one level deep. All this confuses the elegant simplicity of a app encoded in a set of indented closures. Closure Normal does not just apply to UIs of course.
Blog entries towards this agenda :
Shoes and Swiby - walking through the example RIA apps (April 13, 2009)
Google App Engine for Java with Rich Ruby clients (April 7, 2009)
Sweb 3.0 (October 13, 2007)Ruby vs JavaScript for Web3.0 (May 8, 2006)
Thicky: like the web, but with a Groovy thick-client experience (March 31, 2004)
Groovy - a convergence language (February 16, 2004)









