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.
Como todo bom REPL, suporta, entre outras coisas a interpretação de operações matemáticas simples. Observe:
Além disso, facilita muito a utilização do .NET Framework. Observe:
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 ![]()
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:
Bacana!
Por hoje, era isso.
![]()






Rodrigo
23/04/2011
Bonito o jeitão do Boo
Deve ser legal ter o REPL aberto pra experimentar/testar código que a gente esteja escrevendo na hora, mesmo em C#.
elemarjr
25/04/2011
Boo é show. Nos próximos posts, vou tratar de aspectos de meta-programação e alteração do processo de compilação.