This is part 9 in a series of articles on obscure programming languages.
What is Io?
Io is a small, prototype-based programming language. The ideas in Io were inspired by Smalltalk (all values are objects, all messages are dynamic), Self (prototype-based, eliminating the distinction between instance and class), NewtonScript (differential inheritance), Act1 (actors and futures for concurrency), LISP (code is a runtime inspectable/modifiable tree) and Lua (small, embeddable).
Additional Io features include exception handling, Perl-like regular expressions, incremental garbage collection supporting weak links, DLL/shared library dynamic loading on most platforms, small virtual machine, and higher-order functions. Io is also highly portable and runs on the OSX/Unix, Windows, Symbian, Syllable platforms. There is also a .NET implementation. Io is available under the open source BSD license.
Io History
Io was created by Steve Dekorte in 2002 after trying to help a friend, Dru Nelson, with his programming language, Cel. Dekorte discovered that he really didn’t know much about how languages worked, so he set out to write a tiny language to better understand the problems.
“Hello, World” in Io
"Hello world!" print
References
Article published on April 30, 2009
If you like this article, please share it: |
April 30th, 2009 at 10:03 pm
[…] Go here to read the rest: Io: Obscure Programming Language of the Month […]
May 1st, 2009 at 7:39 am
[…] […]
May 4th, 2009 at 12:58 am
It’s too bad Io has an implicit non-overridable “asBoolean” method in the Object base class. That’s a mistake… the same one Ruby and Perl made. Only Smalltalk gets that right.
it’d be ok if I could at least override “asBoolean” for my classes as far as ifTrue: and ifFalse: are concerned, but no. Io has its own idea, and that’s that. And I can’t even get it to throw a “must be boolean” error instead. Sigh. So close, and yet so far away.