Logo Fratech

Hello Ioke!

Publicado por: Felipe Rodrigues
em: 29 Jan 2009 às 12:20

Ioke LogoNo dia 23 de Dezembro de 2008 Ola Bini (desenvolvedor do JRuby e vários outros projetos) liberou a primeira versão de uma nova linguagem chamada Ioke.

Ioke já nasceu com certa popularidade devido aos vários posts sobre suas idéias em relação ao ioke. Apesar disso a comunidade de desenvolvedores tem por volta de 7 desenvolvedores ativos e as listas de email estão começando a caminhar. A versão "S" da linguagem acabou de ser liberada.

Ioke é desenvolvida em Java e é uma linguagem concebida para ser executada na JVM, por motivos óbvios de adoção e estabilidade. Qualquer um com bons conhecimentos de Java pode ajudar em seu desenvolvimento. É também baseada em linguagens como Io, Smalltalk, Ruby e Lisp.

Neste post quero apresentar superficialmente alguns dos conceitos básico da linguagem, que tem por objetivo principal, ser mais expressiva.

Ioke é uma linguagem dinâmica porém fortemente tipada. É baseada em protótipos, o que significa que não possui o conceito de classes. Todo e qualquer instância é criada a partir de protótipos (outros objetos) num processo de clonagem, ou imitação (mimic, como é chamado no Ioke) do comportamento e conhecimento de um objeto já existente.

Isso significa que em Ioke, tudo (tudo mesmo) é um objeto. Existem alguns objetos já embutidos na linguagem, que nos possibilitam imitá-los para criar nossos próprios objetos. Por exemplo:

myObj = Origin mimic

O código acima cria um objeto chamado myObj que faz mimic (imita) o objeto Origin que é um dos objetos básicos oferecidos por Ioke.

Instalação

Para instalar Ioke, você deve ter o JDK1.5 ou superior instalado em sua máquina e baixar o pacote binário do Ioke neste link. Depois, basta descompactar o arquivo em algum diretório de sua escolha e incluir a variável de ambiente IOKE_HOME apontando para o diretório de instalação do Ioke. Também acrescente IOKE_HOME/bin à variável de ambiente PATH.

Hello World

Como todo com artigo de programação vamos escrever o hello world em Ioke, passando por algumas características da linguagem. A seguinte linha imprime a famosa mensagem "Hello World!" na tela:

"Hello World from Ioke!" println

No código acima, podemos perceber a primeira grande diferença em relação a outras linguagens. Criamos um objeto que imita Text e ativamos a cell println. Atributos e métodos são chamados de cell em Ioke. Cells podem ser adicionadas ou removidas dinamicamente, permitindo criar objetos únicos em seu sistema. A cell println é definida no objeto Origin e está disponível em nosso Text, simplesmente porque Text imita Origin (Text = Origin mimic).

Outra grande diferença é que as mensagens para acionar uma cell não possuem pontos. Isso quer dizer que para chamar métodos ou acessar atributos não há um '.' entre o objeto e a cell (método ou atributo). Reparem que println é uma cell do objeto "Hello world from Ioke", e para acessá-lo utilizamos apenas um espaço entre o objeto e a cell. Isso tem por meta, tornar a linguagem mais expressiva.

Vamos experimentar um pouco da dinamicidade do Ioke e entender melhor seu conceito de protótipos. Observe o seguinte código:

 

aObject = Origin mimic
aObject aCell = "Hello world in a cell"
aObject aCell println

 

Na linha 1 criamos um objeto chamado aObject e dizemos que este objeto deve ser baseado no objeto Origin do Ioke. Origin é um objeto embutido no Ioke, com o objetivo de prover um ponto de início para a maioria dos objetos. "Foi especialmente criado para ser a origem dos objetos" como dito no Ioke Guide. Origin por sua vez, imita Ground (outro objeto) que por sua vez imita Base e DefaultBehavior. Juntos esses objetos definem o comportamento de um objeto comum em Ioke. mimic é uma cell do objeto Base, que retorna uma intância que contém todas as cells do objeto no qual foi chamado (neste caso, Origin) incluindo as cells dos objetos que Origin imita (Ground, Base e DefaultBehavior).

Na segunda linha, adicionamos uma cell chamada aCell no objeto aObject. Na verdade, Ioke procura por uma cell com este nome e caso não encontre, esta cell é criada e adicionada dinamicamente no objeto. Esta cell recebe o valor literal "Hello World in a cell". Acabamos de criar um atributo para nosso objeto. É assim que definimos objetos específicos no Ioke.

A terceira e última linha, obtém o valor da cell aCell do objeto aObject e chama o método println do valor resultante da chamada aObject aCell. O valor contido em aCell apesar de ser literal, também é um objeto que imita Text que por sua vez imita Origin. Isso faz com que a chamada da última linha seja interpretada como "Hello world in a cell" println.

Como podemos observar, Ioke é uma linguagem não muito típica, porém com grandes promessas em termos de expressividade. Mesmo tendo sido mencionada pela primeira vez em Novembro de 2008 já possui duas versões muito capazes que incluem, execução de macros, aspectos, iSpecs (no estilo RSpec do Ruby). Há ainda muitas outras características interessantes no Ioke, porém isso é assunto para um outro post.

Tags: | JVM | Linguagens Dinâmicas | Ioke |
0 comentários

Deixe sua opinião:

Você deve ser cadastrado para enviar comentários. Caso não seja cadastrado clique aqui


Ruby Rails Linguagens Dinâmicas Agile Groovy Scrum DDD Arquitetura Java TI FDD XP OO Ubiquitous Language JVM Ioke Merb Web Frameworks Requisitos FBS Backlog Design TDD Design Evolutivo Planejamento ti2.0 business agile









 
fratech@fratech.net
Fone / Fax:
+55 19 3454-5873
Rua Pedro Furlan, 232 - Miguel Grego
Sta Bárbara D'Oeste - SP
Cep: 13450-150
Copyright © 2009 - Fratech Tecnologia da Informação