This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Wednesday: Up to TeaTime
Feed Title: Travis Griggs - Blog
Feed URL: http://www.cincomsmalltalk.com/rssBlog/travis-rss.xml
Feed Description: This TAG Line is Extra
I'm sitting here in David Reed's "TeaTime" presentation. For me, this is the real "meat" of Croquet project. David just made the comment: "One of the key tests is whether you can write a system in itself. And how hard it is." TeaTime basically adds the notion that an object has an incoming stream of messages. Different from normal OOP where we think of the invokation as somewhat atomic. In this case you might have a whole queue of methods to invoke over time. The objects "output" is basically a response function to this mulitcast async input. Objects are cloned amongst machines, not singularly but as groups (a TeaParty). Messages can be invoked "in the future". There's a central TeaTime time coordinator. Each machine is a "TeaParticipant". An "Object" does not refer to a single object on one machine, but rather to the aggregate of "clones" amonst all the participants of the party. One of the notions that took a bit to sink in... this is not about some sort of remote method invocation. It's about replication. Though you might do something local to manipulate your local copy of object x, that future method invocation is replicated to the other TeaParticipants. And betwixt your local copy, might decide its time to invoke a computation that was cloned from another participant.
One of the things that strikes me as kind of "mundane" is the "future" method invocation:
It would be kind of cool to change it up to something like:
object @+ 30 foo: a bar: b
Whether to use the @+ or some other binary selector is arbitrary, the notion is to make it a terse adendum to something that looks like simple Smalltalk. But it's a deferred method invocation! That's OK, what the special constructor does is invoke something like a HOM wrapper to build the message for future invocation. Maybe. I'll have to think it through some more so don't throw to many darts.
One of the interesting notions in the server is that that it does dynamic "timeout" computation. It keeps track of how long the messages have been taking. My original thought was that there was lots of these "future" values being used. Which I mistakenly folded with "worst case timeouts". But they're not. The timeout stuff is managed dynamically at run time. Way cool.
One of the funny quotes I heard Brian say in his presentation last night: "XSLT is kind of like lisp... but with horns." He also referred to XML as Diet Cobol. His slide title for VMs was "Callypygian Compilation". Go look it up. At one point in Gilad Bracha's talk, he referred to itXML as "Excremental Markup Language". Really there were even more, but they get remembered in random order.
Today, I've been just "hanging out" again. Doing some coding. I have strong encouragement that a much improved OSX VM might be seen in the wild sometime soon. I pass on no promises and maintain "plausible deniablity." So cross your fingers with me.
At one point, I attended the Agile Panel. It was OK, had its funny points. But no great revelations, sorry. It could be that I got distracted by reading specs for Apple's new hardware. I also did my best to buy the most non-OOP book here: "Assembly Programming in Linux".
P.S. So apparently the Clayberg-VA thing is old news. Sorry. :) Nevertheless, I've met others here who I shared that info with who responded with something like "oh yeah, I heard something like that might happen."