Showing posts with label smalltalk. Show all posts
Showing posts with label smalltalk. Show all posts

December 1, 2008

But the market won't let me

That's always a problem with taking pictures of buildings - damn automobiles make even the most luscious modern block look crap and banal.


Owen Hatherly takes readers of his blog through another delightful adventure through Britain's bleakly fascinating landscape of today.

[Spoiler alert: readers of his previous photo-excursions will be relieved to find that Britain still consists entirely of railway stations, consumerist (anti) spaces, and the occasional abandoned factory.]



Meanwhile, there is a new Smalltalk being developed for Flash, which is notable for using some newfangled technologies like OMeta (which I have neglected to study for too long now) for implementation (spotted via Patrick Logan).

February 16, 2007

Croquet system overview

Since distributed and parallel systems and concurrency are on my mind a lot, I thought I would start sharing what I consider to be the "things worth reading" about those topics through this blog (as much as for your benefit, my numerous readers, as it is to help me form my thoughts by committing them (pun fully intended) to blog posts).

To start off is some light reading about the design of Croquet: http://www.croquetconsortium.org/index.php/System_Overview

I think the key things to note about Croquet is how Reed's multi-version timestamping (I plan to make David P. Reed's PhD dissertation a future topic) is applied to messages and extended with the notion of pseudo-real time, how replication of computation is not only seen as not bad but essential to the system, and how actions are performed through a sort of delayed message passing (where the programmer uses the above-mentioned pseudo-real time scheme to specify the delay), which is called "temporal tail recursion." Notice that none of the above features are really orthogonal - none of them would work very well (or at all) by themselves. This is probably the most coherent and well-thought out model for handling time in an interactive distributed system that's out there right now.

Another lesson from Croquet is that security in an open distributed system with mobile code can be handled elegantly at the language instead of the virtual machine level. A powerful example is the fact that temporal tail recursion guarantees that malicious objects cannot go into infinite loops that suck up all computational resources. In Smalltalk all iteration is expressed explicitly as message passing, so there is nothing lost by restricting iteration to temporal tail recursion. This is a demonstration of both the benefits of powerful, uniform paradigms in programming languages, and that of the actor/functional programming paradigm specifically.