Io is a programming language focused on expressiveness through simplicity.
inspirations
Self, Lua, Smalltalk, NewtonScript, Act1, LISP
pure
minimal syntax
all values are objects
prototype-based object model
everything is a message, even assignment
no keywords, no globals
dynamic
all messages are dynamic
code is a runtime modifiable tree of messages
arguments passed by expression, receiver controls eval
differential inheritance
become, transparent proxies, weak links
concurrent
coroutine based actors
transparent futures
automatic lock detection
implementation
small
open source
embeddable
multi-state
incremental collector
status
binaries maintained by Jake Jeck
build system maintained by Ales Tsurko
patches welcome
history
created in 2002
actively developed until 2008
future
WASM implementation?
abstracted slots, hooks, notifications
separation from C stack, continuations
full set of value type primitives
capabilities, persistence, snapshots
transactions, durability
mobile transparent actors
default to utf8 strings/symbols
cleanup true/false