Io programming language
Brian Rice
water at tunes.org
Mon Mar 28 20:49:21 PST 2005
On Mar 28, 2005, at 8:38 PM, Bill Sun wrote:
> Has anyone looked at Io (http://www.iolanguage.com/)?
I met the author in 2002. We had a discussion with David Ungar about
language design.
> I found out about the language a few weeks ago. It's a relatively
> young language having started at 2002. I haven't tried it yet, but read
> a few articles and tutorials here and there. It's also prototyped
> based, also inspired by a similar set of language that inspired the
> creation of Slate.
Io's grammar is ambiguous, and it's hard to reason about programs in
Io. Io does /not/ use the same notion of prototype / inheritance that
Slate or Self do. Io does not have the library potential (or the
libraries) that Slate does or can have.
> But I think what stands out about the language is its concurrency
> implementation. It implements an "actor-based concurrency using
> coroutines/light weight threads", which can be read here:
>
> http://www.iolanguage.com/Source/release/Io/_docs/
> IoProgrammingGuide.html#Concurrency
Multi-method dispatch and actor-based programming don't go together,
because we don't designate a special receiver. I am more inclined to
use the E model (http://erights.org/elib/concurrency/), which is safer
even though it still uses the special-receiver idea (which is the major
source of headaches in trying to integrate it into Slate) - E's idea
just makes macro-level actors called Vats which totally isolate groups
of objects, and run single-threaded turn-based within (although you can
do things like continuations and coroutines inside them). And E's
asynchronous message results are promises which perform
message-pipelining, much simpler to work with than the core actor
model. Io's coroutines / yields also do not scale well.
--
Brian T. Rice
LOGOS Research and Development
http://tunes.org/~water/
More information about the Slate
mailing list