Boo: diferenças entre revisões
m Bot: Adicionando: ja:Boo (プログラミング言語) |
|||
Linha 146: | Linha 146: | ||
[[fr:Boo (langage)]] |
[[fr:Boo (langage)]] |
||
[[gl:Boo (programación)]] |
[[gl:Boo (programación)]] |
||
[[ja:Boo (プログラミング言語)]] |
|||
[[pl:Boo]] |
[[pl:Boo]] |
||
[[ru:Boo]] |
[[ru:Boo]] |
Revisão das 04h08min de 5 de setembro de 2010
Boo | |
---|---|
Paradigma | Multiparadigma |
Surgido em | 2003 |
Última versão | 0.9.3 (28 de dezembro de 2009) |
Criado por | Rodrigo Barreto de Oliveira |
Estilo de tipagem | Estática |
Principais implementações | booc |
Influenciada por | C#, Python |
Influenciou | Fantom, Cobra |
Licença: | MIT / BSD |
Página oficial | boo.codehaus.org |
Boo é uma linguagem de programação multiparadigma que suporta orientação a objetos, programação imperativa e programação funcional, de tipagem estática com sintaxe inspirada em Python. Foi criada pelo desenvolvedor brasileiro Rodrigo Barreto de Oliveira. Boo é código aberto, e seu licenciamento segue o modelo da Licença MIT e da Licença BSD. Pode ser usada em conjunto com Microsoft .NET e Mono.
História
A linguagem Boo foi criada em 2003 pelo brasileiro Rodrigo Barreto de Oliveira, conhecido pelo pseudônimo Bamboo, origem do nome da linguagem.
Naquela ocasião, Rodrigo estava frustrado com as linguagens de programação existentes. Embora tivesse experiência no uso de Python e tenha utilizado esta linguagem como base para a criação de Boo, sentia falta de algumas características inerentes às linguagens estaticamente tipadas e da falta do acesso às facilidades da arquitetura .Net. Passou a trabalhar com C#, para poder utilizar o framework .Net, mas ficou mais insatisfeito ainda pela baixa produtividade e pela falta de prazer no uso desta linguagem. Ele desejava uma linguagem produtiva, que suportasse suas próprias idealizações, que suportasse um compilador extensível e pudesse ser modificada por programadores de acordo com as suas necessidades específicas.
Características
Boo se diferencia das outras linguagens de programação pela facilidade para criar extensões. Ele tem um pipeline de compilação extensível, ou seja, você pode adicionar as suas características no compilador do Boo. Algumas das principais características:
- Inferência de tipos: o compilador identifica o tipo das variáveis e funções e faz a declaração automática.
- Funções como objetos
- Duck Typing: Se algo caminha como um pato e faz quack como um pato então deve ser um pato.
- Closures
- Interpretador interativo: semelhante ao Python.
- Slicing: fatiamento de listas; se lista = ['a', 'b', 'c', 'd', 'e'], lista[1:3] retorna ['b', 'c'].
- Macros: Lembra as macros do C + +. É utilizado para simplificação de código.
- String interpolation: Manipulação de Strings semelhante ao velocity.
- Generators: formas diferentes de escrever laços.
Exemplos de Códigos
Programa Olá Mundo
print("Olá, Mundo!")
import System.Windows.Forms
f = Form(Text: "Hello, boo!")
f.Controls.Add(Button(Text: "Clique-me!", Dock: DockStyle.Fill))
Application.Run(f)
import Gtk
Application.Init()
window = Window("Olá, Mundo!", DefaultWidth: 200, DefaultHeight: 150)
# O programa deverá encerrar-se depois que a janela se fechar
window.DeleteEvent += def():
Application.Quit()
window.Add(Button("Clique-me!"))
window.ShowAll()
Application.Run()
Fibonacci
def fib():
a as long, b as long = 0, 1
while true:
yield b
a, b = b, a + b
Exemplo básico de janela
import System.Windows.Forms
import System.Drawing
class MyForm(Form):
def constructor():
b = Button(Text: "Clique-me!")
b.Location = Point(100, 50)
b.Click += do():
MessageBox.Show("Você clicou no botão!")
self.Controls.Add(b)
f = MyForm()
Application.Run(f)
Asynchronous design pattern
import System
def run():
print("executando")
print "iniciado"
result = run.BeginInvoke({ print("chamado de volta") })
System.Threading.Thread.Sleep(50ms)
run.EndInvoke(result)
print "feito"
Imprime os 5 primeiros números da série
for index as int, element in zip(range(5), fib()):
print("${index+1}: ${element}")
Referências
- Boo Manifesto
- Sharp Develop - IDE Open Source
- Rahien, Ayende.Domain-Specific Languages in Boo.Ed. Manning Publications,2009
Ver também
Ligações externas
- Sítio oficial (em inglês)
- «Boo Google group» (em inglês)