Canol Gökel

Icon

Sloganı olmayan blog

Steve Dekorte’s Io Programming Language

I met Io programming language a few weeks ago. It is very simplistic, minimalist and has a consistent syntax. It is a fully object oriented language inspired by Smalltalk. A significant difference from Smalltalk is that it is prototype based, so there are no classes.

To name a few advantages and disadvantages:

Advantages:

  • Very consistent syntax
  • Very minimalistic rules
  • Has a lot of useful methods that makes your life easier
  • Very polished source code
  • Very informative and polished errors
  • Chic documentation

Disadvantages:

  • I like the writing style:

    "Hello" at: 1 put: "a"

    instead of

    "Hello" atPut(1, "a")

    Because it is more human like.

  • Indexing begins from 0 not from 1.
  • I don’t like when a language does not want you to declare your variables before usage. I think declaring obligatory provides some kind of documentation to the user of a program.
  • Some methods does not behave what you would like it to. For example, when you write

    "Hello" at(1)

    You get the byte representation and not the letter itself.

  • Resulting elseif structures look a bit ugly.
  • No GUI library bindings yet

Of course these are all subjective.

I think the worst disadvantage is that it does not have GUI binding yet. But once it has, then it will be a killer programming language.

Advertisements

Filed under: Programming, ,

One Response

  1. 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

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: