Apr 30

This is part 9 in a series of articles on obscure programming languages.

What is Io?

IoIo 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

Share and Enjoy:
  • Twitter
  • Facebook
  • Reddit
  • LinkedIn
  • Digg
  • DotNetKicks
  • StumbleUpon
  • Slashdot
  • Technorati
  • Google Bookmarks
  • Print
  • email

Article published on April 30, 2009




3 Responses to “Io: Obscure Programming Language of the Month”

  1. Io: Obscure Programming Language of the Month Says:

    […] Go here to read the rest: Io: Obscure Programming Language of the Month […]

  2. Posts about Programming from google blogs as of May 1, 2009 « tryfly.com Says:

    […] […]

  3. Randal L. Schwartz Says:

    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.

Leave a Reply