Io

Oct 24, 2008 07:48

The Io programming language looks extremely interesting.
It's an ultra-minimal ultra-late-bound prototype-based object-oriented language. The minimalisim seems to scale: the example code written using the comically minimal core looks much the same as the real code found inside the tarball (e.g. OpenGL bindings). Io looks like an interesting candidate for hosting on the Cola system.
Here're a few things I find interesting about Io based on a very quick glance:
  • Objects are just collections of named slots and everything else is a message. To execute a method a call object (activation record) is created that can produce the argument values on-demand, so the method can choose its own evaluation strategy. That means if can evaluate its arguments specially whereas most code can simply evaluate left-to-right and store the values in named slots of the call object for use during execution.
  • Names are unified. Every name is resolved to a slot by depth-first search up the object-tree (parent pointers). The top-level object Lobby includes slots with names like if, Object, etc so the name search will always find these. So you don't need to distinguish the names of local variables, slots, classes, keywords, etc - these are all the same.
Perhaps knowledgeable readers could point out other features of interest?

steps, io

Previous post Next post
Up