Vamos aprender Boo – Parte 1 – Fundamentos

Publicado em 23/04/2011

5


Olá pessoal, como estamos?

Hoje inicio mais uma série aqui no blog. Quero começar a compartilhar com a comunidade meus esforços para aprender mais uma linguagem de programação. Trata-se da Boo, linguagem desenvolvida pelo brasileiro Rodrigo B. de Oliveira.

Recomendo fortemente que você leia o manifesto, escrito pelo próprio criador da linguagem, para entender as motivações dessa linguagem.

Comecei a estudar essa linguagem por influência do Juan Lopes que, aliás, é referência no assunto.

O que é Boo

Boo é uma linguagem de programação, orientada a objetos e estaticamente tipada, para .NET com sintaxe próxima a do Python. Ela faz uso da CLI e suporta Unicode.

Boo é um software livre com licença MIT/BSD. Além disso, é compatível com Microsoft.NET e Mono.

Por que aprender Boo?

Os objetivos descritos no manifesto escrito pelo Rodrigo (aka Bamboo) servem como uma boa referência quando precisamos de boas justificas para começar a aprender Boo.

Dentre todas as coisas bacanas disponíveis nessa tecnologia, uma das mais interessantes é a possibilidade de extender o processo de compilação (Extensible Compilation Pipeline). Mais adiante, aqui nessa série, esse deverá ser um tema que receberá grande relevância.

Como obter o Boo?

Você pode obter a última versão do Boo em http://boo.codehaus.org/Download. Os binários correspondentes as últimas versões estáveis podem ser encontrados em http://dist.codehaus.org/boo/distributions/?C=M;O=D

Boo interativo

Boo possui um console (arquivo Booish.exe) que permite que executemos intruções Boo de forma interativa (REPL). Você encontra esse arquivo na subpasta bin (dentro da pasta do Boo). Execute esse arquivo para abrir o console.

image

 

Como todo bom REPL, suporta, entre outras coisas a interpretação de operações matemáticas simples. Observe:

image

Além disso, facilita muito a utilização do .NET Framework. Observe:

image

Boo interpretado

Seja programador de verdade :-) . Coloque o Boo no seu Path e vá para a linha de comando. Crie um arquivo chamado firstProgram.boo e digite o seguinte código:

import System
Console.WriteLine("Please, enter your name: ")
name = Console.ReadLine()
Console.WriteLine("Hello, ${name}")

Esse código é instrutivo e simples de entender. Repare que não há classes, nem public static void Main. Além disso, repare como é fácil “embutir” conteúdo de variáveis dentro de strings.

Digite booi firstProgram.boo. Essa instrução inicia o interpretador do Boo. Não é necessário gerar código executável (um arquivo .exe) para ver se o seu programa funciona. Mais adiante, veremos mais benefícios de usar Boo interpretado.

Boo compilado

Satisfeito com a execução de seu programa? Que tal gerar um executável! Utilizando o mesmo código da seção anterior, execute o comando boo firstProgram.boo. O resultado será um executável novinho Alegre

Importante: Boo não é Python

A sintaxe de Boo é fortemente inspirada na sintaxe de Python. Entretanto, é importante que as linguagens possuem diferenças marcantes.

Para saber as principais diferenças, consulte: http://boo.codehaus.org/Gotchas+for+Python+Users

Boo tem suporte para testes

Boo permite que desenvolvamos testes com a mesma facilidade (até mais) que fazemos em C#. O exemplo que segue foi extraído de http://boo.codehaus.org/Unit+Testing+and+You%2C+a+guide

import NUnit.Framework from "nunit.framework"

[TestFixture]
class SampleFixture:
	
	[Test]
	def PassTest():
		assert 1 == 1
		assert true == true
		assert "McDonalds sucks!" == "McDonalds sucks!"
	[Test]
	def FailTest():
		assert 0 == 1

Lindo!

Boo com Windows Forms

Boo tem suporte amplo a todo .NET. Obviamente, é muito fácil escrever código que faz interface com System.Windows.Forms. Observe:

import System.Windows.Forms

clickTimes = 0
form = Form(Text: "Hello world, from boo")
button = Button(Text: "Click me!", Dock: DockStyle.Fill)

button.Click += do(s, e): 
	clickTimes ++ 
	MessageBox.Show("Button was clicked ${clickTimes}x!") 


form.Controls.Add(button)

Application.Run(form) 

Eis esse código em execução, após o quarto click:

image

Bacana!

Por hoje, era isso.

Smiley piscando

Etiquetado:
Publicado em: Sem categoria