Another Revolution?

Richard Gaskin ambassador at fourthworld.com
Fri Jan 18 20:05:23 EST 2008


Mark Wieder wrote:
> Sheesh.
> It's java.
> 
> I spent enough time with the developers over the last few days to get that 
> right.
> It's java running on their backend servers, not in your web client.
> That's why you won't be able to see it from the client side.

I must be using the wrong nomenclature, as this distinction is 
frequently lost in discussions of porting stacks to the web:

Whether they use Java, Ruby, Perl, C, or an army of methamphetamine 
addicts outsourced from Bakersfield typing really fast, what's being 
done on the server is distinct from what goes on in the browser.

I mean, of course they're related in that the server generates the page 
and delivers it over the wire to the browser.  But my point here is that 
what's used on the server could be nearly any language in the world, but 
what happens in the browser can only be HTML, and must rely on 
JavaScript, Java, or a plugin for any interactivity.

This distinction is useful here because most of us xTalkers are 
accustomed to a world where UI and code are bound together to one degree 
or another, in contrast to the web where the UI (what happens the 
browser) is separated from whatever may be delivering data to it from a 
server.

So when we think of a "stack" and then we see a page like the example at 
TileStack.com, we ponder how it's done.  Whether it was served up as a 
simple ASCII file containing the JavaScript, or the JavaScript was 
served from a database, or the JavaScript was generated in real time by 
an application written in any language that can write text, or the 
JavaScript was typed by the aforementioned meth addicts directly to the 
port, what we're interacting with is JavaScript.

Given the strengths and weaknesses of each of the common three (JS, 
Java, or Flash), which of those three is used will define much of our 
expectations for the technology.

Personally, now that CSS is universally supported, I prefer JavaScript, 
since it's more broadly deployable than Flash or Java.  Sure, JS has its 
warts, but so does everything else.  So I'm really glad the folks at 
TileStack have chosen it to deliver their UIs.


> There's been a lot of discussion on this list over the years along the lines 
> of <whine>I wrote this great game. why can't I just publish my stack on the 
> web</whine>. And after quite a bit of research it turns out that since the 
> rev engine is single-threaded and stacks aren't really designed to be 
> multi-user and reentrant within a thread, you run into several issues trying 
> to use rev as a cgi-engine. For instance, http has no concept of a session: 
> each request is a new transaction. This doesn't bode well for a cgi engine 
> trying to keep track of user variables. If you run fast-cgi then you keep 
> your persistence but each new session has its own memory space.

If I read this correctly, it sounds like these are issues that only 
affect collaboration, but not issues at all for single-user applications.

For example, if I run a copy of Malte's Drops game on my machine here, 
and you run yours there, it doesn't matter that our computers don't 
share any data.  We each enjoy the game anyway.

So if Malte rewrote Drops in JavaScript or Flash, it's still the same 
game and still works just as well as it did before, your copy in your 
browser and mine in my browser.

But if instead of Drops we were playing Chess, then we'd need a 
connection between us.  As Rev stacks we could use ports, but as 
JavaScript in a browser we'd have to go through a server.

In this Chess game, do we really need, or even want, to be using stack 
files on the server?  What for? Why not do what the rest of the world 
does and just use a database or some other inherently multi-user mechanism?


> ...stacks simply won't be publishable on the web as written using
> the rev cgi engine. *Unless they're specifically written to be web
> stacks, avoiding the problem areas*. And yes, it's certainly doable,
> and fairly easily. But the point is that you have to think of
> designing a stack for the desktop or designing it for web use. The 
> two are rarely going to coincide.

Isn't that what TileStack is all about, making web apps exclusively for 
the browser?

Or do they actually translate Transcript?  That would be cool, but seems 
like a lot of work for a relatively small audience.

Or do they translate HyperCard stacks?  Again, way cool, but after more 
than a decade since Apple dropped HC it would also seem a small audience.

I guess that's the missing link in all the excitement here, getting an 
understanding of the authoring process.

Did you get a look at how to make a TileStack app?
Is there also a way to deploy desktop standalones?
What distinguishes TileStack from other visual web development tools?

Or maybe an ever better question:  Could there be an opportunity here 
for the folks at TileStack to collaborate with RunRev for porting 
applications between the web and the desktop?

-- 
  Richard Gaskin
  Managing Editor, revJournal
  _______________________________________________________
  Rev tips, tutorials and more: http://www.revJournal.com




More information about the use-livecode mailing list