I nosed around in Io’s “addons” folder, which you also can pull from the Git repository, see the Io homepage.
Update: of course, this was reported when it was fresh, with nice examples, too: pinupgeek’s blog is full of Io goodness. (Thanks, trevor!)
While nosing, I met the Python module, which lets you run Python functions in Io. It was written last year, the copyright statement shows:
docCopyright("Aslak Gronflaten", 2006)
IoPython lacks tests, real documentation, and such, and it does not do memory management:
* Convert an Io object to PyObject.
* At the moment, we can't pass in any objects, just those that can be translated,
* until I build a python wrapper around an io object, reverse of what I did here.
* TODO: Memory management!!!
Does not seem impossible.
But I get a nice vibe from these lines:
# Import a module
sys := Python import("sys")
"Which version of python are we running?" println
sys version println
"System path is returned as a list" println
sys path foreach(p, p println)
"Load the string module" println
string := Python import("string")
"Split a string" println
str := "Brave brave Sir Robin"
str println
string split(str) println
"Load a C module (.so)" println
t := Python import("time")
writeln("Current time is: ", t time)
"Another way to invoke a method" println
str = "UPPERlower"
write(str, " --> ")
string invoke("swapcase", str) println
Io could improve its library situation, if IoPython were less raw. Things will improve with time. In the meantime, I’m gonna learn more Io.