Yesterday in wrapping up I dismissed the language in a very terse manner; I thought I should expand on this.
Io intends to be a number of things:
- an embedded language
- a concurrent language with actor model
- a prototype based language
The problem is that each of these is well covered by more popular alternatives. Lua is designed as an embedded language and widely used as such. Erlang is the typical actor based concurrent language, and once again, widely used as such (interestingly, on the Io FAQ page, there is a reference to a benchmark highlighting the performance of coroutine based servers. But the coroutine based server is actually about an Erlang server, Yaws). And new languages, such as Scala, also implements the actor model.
Does that mean there is no place for Io? I wouldn’t say so; but the main problem I have with the language is that I just can’t figure where such a language would shine.
A thread on Lambda the Ultimate introduces interesting arguments both for and against the language. The pro links in particular are intriguing. Various new behaviours can be implemented on the language. But then the question becomes: would such behaviours be in any way useful for solving real problems, rather than as an intellectual exercise?