“Hello Io!” println

Dezembro 10, 2007

Bem, pra quem nao conhece, Io eh uma linguagem de programacao dinamica, Orientada a Objetos, e baseada em Prototipos.

No Io, com o mesmo programa que voce executa os arquivos fonte .io, voce pode, por exemplo, executar um interpretador interativo, similar ao nosso amado irb no Ruby.

Instalacao

A instalacao no windows eh bem simples!
Na pagina de downloads do site oficial voce poderah encontrar o link da versao para Windows. Eh um arquivo zip! Baixe-o, descompacte-o no C:\, e edite a variavel de ambiente Path, incluindo o diretorio “C:\usr\local\bin”. Pelo que parece, ha uma limitacao nessa distribuicao que fixa esses diretorios, por causa dos add-ons, que ficam localizados no “\usr\local\lib\io\addons”.
Limitacao tosca essa, mas por enquanto nao vou me preocupar com isso!

Mao na massa!

Entao vamos lah! Vamos ao nosso “Hello Io!”. Digite “io” no terminal, e comece a brincar:

Io> "Hello Io!" println
Hello Io!
==> Hello Io!

(Veja mais alguns exemplos de codigo no breve tutorial do site oficial, ou no guia oficial da linguagem.)

Caracteristicas da Linguagem

Primeiramente, nao tente encontrar classes no Io! Para criar novos objetos voce deve clonar objetos jah existentes:

Io> MeuObjeto := Object clone
==> MeuObjeto_0x485a18:
type = "MeuObjeto"

Io traz consigo o conceito de slots, que compoem um dado objeto. Slots podem ser interpretadas como as mensagens as quais um objeto sabe responder. Podemos considerar um slot como um relacionamento ‘nome => valor’.

Os atributos e metodos de um objeto sao considerados slots, independente de seu valor ser codigo executavel ou outro tipo de objeto.
Voce pode remove-los ou adicionar novos atributos/metodos quando quiser:

Io> MeuObjeto meuMetodo := method( "Meu novo metodo!" println)
==> method(
"Meu novo metodo!" println
)
Io> MeuObjeto meuMetodo
Meu novo metodo!
==> Meu novo metodo!

Tudo em Io eh um objeto! Veja o seguinte codigo, por exemplo:

Io> 1 asString
==> 1
Io> 100 asCharacter
==> d

A comunicacao dos objetos Io com o resto do mundo eh feita por meio do envio/recebimento de mensagens. Considere por exemplo, o seguinte codigo:

System version

No exemplo acima, a mensagem “version” eh enviada para o objeto “System”, para que esse possa responde-la.

Se eu tentar executar esse codigo acima no “io” terei o seguinte resultado:

Io> System version
==> 20070410

Bem, eh isso! A ideia deste post era soh falar alguma coisa sobre Io. Posteriormente vou escrever sobre algumas features e aspectos um pouco mais interessantes da linguagem. Espero que possa ser util pra alguem! :-)

Ateh a proxima!