Ioke @ Amsterdam.rb

Tonight I visited Amsterdam.rb. Mainly because I wanted to see Ola Bini talk about his pet project Ioke. Although Ioke is far from finished, or even usable in real life it was really nice to see someone try out new language concepts.

Ioke is a strongly typed, extremely dynamic, prototype based object oriented language. It’s homoiconic and got built in support for several kinds of macros. The languages that most closely influence Ioke is Io, Smalltalk, Self, Ruby and Lisp (Specifically Common Lisp).

Ioke seems to be mainly focussed at writing nice-to-talk-to code, it gives developers much more freedom to shape the language into DSL-like syntax.

In contrast to what you would expect from a ‘pet language’ Ola demonstrated nice generated documentation and some cool debugger features. And even a RSpec-like testing framework: ISpec. Really nice. Here is an example of a parser definition (from paser_comb.ik example) written in Ioke:

[code]
IParse Parser(
digit = 0..9
letter = ("a".."z") | ("A".."Z")
id = letter (letter | digit)*
id2 = letter* (letter | digit)
number = 1..9 digit*
primary = "(" expr ")" | number | id
term = primary ("*" | "/") term | primary
expr = term ("+" | "-") expr | term
and = expr "and" expr | expr
)
[/code]

Looks kinda neat, doesn’t it? I don’t see Ioke as the next big thing, but I think it is a really nice testbed for new languages and language concepts.

This entry was posted in java and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>