Ola Bini

SE Radio 154: Ola Bini on Ioke

Recording Venue: Skype
Guest(s): Ola Bini
Host(s): Markus
This is a conversation with Ola Bini on his experimental language Ioke. We cover the idea behind the Ioke experiment as well as important language concepts and the thinking behind them.

Show Notes


Join the discussion
  • Interesting ideas on language simplicity.
    By the way, the simplest in terms of the definiton you used(and came to lambda calculus) would be Iota and Jot with the universal combinator, which is one lambda calculus combinator, which can emulate SKI calculus and therefore whole lambda calculus and finally it is Turing complete.
    Simple as it gets, unusable however, maybe we are looking for the golden middle path between “small” and “big” languages.

  • In the beginning, Ola alludes to literal overloading in Ioke, when he explains that ‘foo x = 42′ is actually 4 messages (foo, x, = and 42) and he says that he might come back to literals later in the show. Well, he didn’t, so I thought I’d mention what I consider a very cool feature of Ioke: literal overloading.

    As Ola said, literals are just messages like all others in Ioke, which means that you can override them just like any other message. So, ’42’ is actually translated into the message ‘internal:createNumber(fortytwo)’ which is sent to the current ground where ‘fortytwo’ is a platform string (i.e. a ‘java.lang.String’ on ikj and a ‘System.String’ on ikc) containing the string ’42’.

    So, you just define your own ‘internal:createNumber’, ‘internal:createDecimal’, ‘internal:createText’ and ‘internal:createRegexp’ and you’re good to go.

    A beautiful example of the value of literal overloading is Ola’s parser combinator library.

More from this show