From: Julian Fitzell Date: 2002-11-10T19:12:39+09:00 Subject: Iowa/Borges answers (was Re: Random idea: Procedural CGI??) Jim Menard wrote: > "Hal E. Fulton" writes: > > > >I'd like to know more about these. > > > >I know Borges the author, but not > >Borges the library. :) > > > >Is Borges in Ruby? Or was Avi mimicking > >its behavior in Ruby? > > > >And yes, how does the Squeak version of > >Iowa relate to this (and to the Ruby > >Iowa)? > > > >Time to do some surfing... > > > See Seaside (http://beta4.com/seaside2/). That's Avi's Squeak project. > > Jim Hehe... just got back from OOPSLA to find this thread. Just to clear all this up... Avi wrote Iowa in Ruby (as well as other experiments in Java and Scheme) a couple of years ago. After that he and I ported it to Squeak and it became known as Seaside (part of our Squeak Enterprise Aubergines -get the pun anyone? :) We were pretty happy with that but have been working on a new, completely rewritten version that we released several weeks ago. The rewritten version has a much more layered architecture and the core layer of Seaside 2 was code-named Borges (see the quote on the seaside 2 home page and hopefully you'll understand why). A small amount of Borges has been back-ported to Ruby at the moment and I think that's what Avi used in his demo at RubyConf. There's plenty more to be ported and a few people have expressed interest in working on that but as for time frame, I have no idea. Seaside/Borges absolutely need continuations and we do use them in Squeak (though we had to implement call/cc semantics). It should also be portable to VisualWorks (in progress) and Dolphin. VisualAge and SmalltalkX are problematic at the moment because of the way their VMs are implemented. Seaside is designed to provide exactly what Hal was asking for. You write your code completely linearly. You can even use call/return semantics to display a "dialog" that requests info from the user for example. And yes, the back button does work... if you go back and then go forward on a different path it will continue working just fine (thus the quote again). You also implement "components" and "views" which are self contained, reusable, widgets that can be displayed and embedded in other pages. If you want more info, check out the webpage at http://www.beta4.com/seaside2 or email either myself or Avi. The webpage also has a link to the seaside mailing list which is an excellent place to ask questions. If you want to play with the old version of IOWA you can grab it at http://www.beta4.com/iowa. Julian -- julian@beta4.com Beta4 Productions (http://www.beta4.com)