Revolution and the Web, feedback wanted, Part 3 of 3

Richard Gaskin ambassador at
Tue Nov 28 00:40:18 EST 2006

 From Andre, cont.:

Web applications usually have a server side component that that deals 
with core business logic that is not possible to be dealt by using 
javascript on the client side. We can map that to stack script and make 
the stack script a cgi/fastgi whatever. If we write a nice RPC system we 
can make the stack script hold the server logic and export it as methods 
to be used by the client side which is CSS+HTML+Javascript+A Human.

To illustrate my ideas, imagine a simple money conversion. In the web it 
would be two fields and two popups and one button. the two fields would 
hold the amounts, the two popups the currency types and the button would 
convert from one to the other. The client side would use AJAX techniques 
to make the life of the user easier, so simply clicking the button would 
do a roundtrip to the server, convert the amount and then using 
javascript + DOM manipulation it would insert the answer in the text 
field. How would that map to Rev. The fields and the popups and the 
button all have an equivalent on the Rev standard tool pallete, we would 
need a new web-savvy inspector to accomodate the needs of positioning 
and ids/class stuff for xhtml. The server component might just be the 
convert function on the stack script. Okay we have our maps. How the 
magic conversion occurs then? We need a new "web distribution builder" 
tool that would scan and process a stack converting it all to HTML + CSS 
+ Javascript + CGI. This tool would pick the stack script and pack it as 
a CGI and expose it's functions thru some RPC mechanism, it would 
convert the card layout to a web page format using the web-savvy 
properties created by our own web-savvy inspector to guide it when 
needed. It would convert the control scripts to javascript and relay 
each call to a method that is inside the stack script to a RPC call to 
the server component, for this to be feasible the script on the controls 
should be as small and direct as possible, maybe just variable bindings 
and the call to the stack, nothing more would be allowed, let me 
illustrate such control script conversion.

Transcript button example:

on mouseup
   put field "amount" into tAmount
   put field "currency type" into tCurrencyType
   put convertCurrency(tAmount, tCurrencyType) into field "result"
end mouseup

web-thing conversion

The button would be something like this

<input type="button" onmouseup="javascript:buttonMouseup()" />
meaning the html button has a javascript methond connected to it's 
mouseup event. then we have a almost line by line conversion.

buttonMouseUp() {
var tAmount  = document.getElementById("amount");
var tCurrencyType  = document.getElementById("currency type");
document.getElementById("amount").innerHTML = RPCCall("convertCurrency", 
tAmount, tCurrencyType);

See, if the conversion is just variable binding and method calls, it's 
pretty straigth forward, just need to create some RPC mechanism, it 
might be XML-RPC, SOAP, REST or something new. Let me make a resumé.

We need a new tools pallete that is able to drag and drop web-mapable 

We need a new inspector that is able to deal with the features we expect 
from a web object such as relative position.

We need a new distribution builder that is able to pick that stack and 
convert it to HTML & Friends + CGI.

You will ask, but I still need to upload everything to test and that 
spoils my pure xTalk development experience and I will answer: no you 
need not. We have RevHTTP transcript based web server that can run 
inside the IDE, a simple IDE plugin running the server will allow you 
the standard xTalk experience, develop live on the IDE, switch to the 
browser, load the page from inside RevHTTP that's live on the IDE, full 
xTalk experience, no compilation needed.

Everything I said can be built now, it doesn't even need to be built by 
the RunRev team, it all can be built in pure transcript just by adding 
plugins to the IDE. It can be done now, all it needs is leadership and a 
team of developers. Thats what I think that needs to be done. That's how 
I envision developing for the web using Runtime Revolution, I don't know 
if I was clear and I really want to talk about this thing to make 
everyone understand what I am trying to talk about.

It's now 2:53 AM... I think this email to too big for the mailserver to 
allow me thru. I'll try anyway.

Technology shall set ya free!

More information about the Use-livecode mailing list