sexta-feira, 17 de outubro de 2014

Início

Resolvi aprender um pouco mais sobre REBOL e decidi deixar registrado pois poderá servir como referência para o futuro. Para mim ou qualquer outro que desejar.

- Mas é de comer? É parente do COBOL? SNOBOL?

Não! É uma linguagem de programação (REBOL = Relative Expression Based Object Language) multiplataforma, multiparadigma desenvolvida por Carl Sassenrath.É interpretada, concisa, de fácil aprendizado e muito boa para a criação de DSLs.

- Mas eu não conheço. Ninguém deve utilizar.

Tem muita coisa que pessoas utilizam e eu também não conheço. Mas vamos contar um pouco da história para facilitar. Inicialmente, era uma linguagem comercial, isto é, para usar seria necessário pagar. Pelo menos uma parte dela que era mais indicada para o desenvolvimento de aplicativos comerciais. Surgiram algumas variantes de código aberto como Boron, Topaz e Red. Como aspectos interessantes de Red, temos o fato de que ela poderá ser compilada ou interpretada em diversas plataformas. E está sendo desenvolvida utilizando REBOL, isto é, o REBOL compila um código em REBOL para diversas plataformas. No mínimo, interessante.

Com o desenvolvimento de REBOL 3 (terceira versão), o Carl resolveu abrir o código da linguagem. Mas as coisas andam muito lentamente por lá e o acesso é meio restrito. Com isto, algumas empresas que já utilizavam REBOL, resolveram trabalhar na nova versão (R3) e já lançaram suas versões baseadas no código aberto com diversas atualizações. Uma das empresas é a Shaphirion e a outra a Atronix. No vídeo abaixo é possível ver melhor o trabalho da Atronix e a utilização de REBOL.



No decorrer dos artigos, pretendo colocar alguns exemplos em Python, Ruby, etc. ao lado de REBOL. Não é para dizer: "VIram como REBOL é melhor!". Apenas para uma comparação mais visual. onde o leitor poderá ter uma noção de como se faz algo em uma ou outra linguagem. Todas as linguagens possuem seus pontos fortes e fracos. Como pontos fortes do REBOL posso citar:
  • facilidade de aprendizado;
  • não é necessário ser administrador/root para instalar e usar;
  • com aproximadamente 0,7M você tem uma linguagem muito poderosa;
  • você poderá executar seus programas no Windows, Linux, Mac, Android e onde mais a linguagem estiver disponivel;
  • vem com pilhas e carregador incluídos. ;-)

Ok, mas não podemos encerrar sem deixar um pequeno exemplo. Não aquele "hello world" sem graça.



print "Bem vindo!"
sorteado: to-string random 100
until [
    chute: ask "Chute: "
    case [
        chute > sorteado [print "Alto" false]
        chute < sorteado [print "Baixo" false]
        true [print "Você venceu!"]]]
print ["Fim de jogo!"]

O que o programa faz é selecionar um número qualquer entre 1 e 100 e esperar que o usuário digite o número correto. Se o número informado for maior que o sorteado, o programa informa Alto. Se o número for menor será informado Baixo. O programa é semelhante em muitas linguagens mas, como características do REBOL, temos a ausência de delimitadores. O espaço é o delimitador. O único delimitador são os colchetes [ e ] que são utilizados para delimitar um bloco (pode ser dados ou código). Uma lista teria o seguinte formato:

lista: [1 2 3 4 5]

Como observação final, eu fechei os três colchetes em uma única linha. É o modo como se fecha em lisp (não em REBOL geralmente). Mas eu gosto mais por ficar com uma aparência de Python (que eu não programo).


E assim termina o primeiro dia.

Nenhum comentário:

Postar um comentário