Boo: diferenças entre revisões

631 bytes removidos ,  25 de junho de 2010
sem resumo de edição
|nome = Boo
|logotipo = [[Ficheiro:BooLogo.png]]
|paradigma = [[Multiparadigma: orientadaOrientação a objeto, imperativa, funcional]]
|ano = [[2003]]
|ultima_versao = 0.9.3
|criador = Rodrigo Barreto de Oliveira
|tipagem = Estática
|compiladores = booc, booi (interpretador) e booish (interpretador com shell)
|dialetos =
|influenciada_por = [[Python]], [[C Sharp|C#]], [[Python]]
|influenciou = [[Fantom]]
|licença = [[Licença MIT|MIT]] / [[Licença BSD|BSD]]
 
== História ==
A linguagem Boo nasceu em 2003 devido à frustração do criador em desenvolver sistemas em Python e C# pois eram linguagens de códigos extensos. Ele desejava uma linguagem que suportasse suas próprias idealizações, que suportasse um compilador extensível e pudesse ser modificada por programadores de acordo com as suas
Anecessidades linguagem Boo foi criadaespecíficas. emFoi 2003desenvolvida pelo brasileiro Rodrigo Barreto de Oliveira, conhecido sob o 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 e gostasse de Python e tenha utilizado esta linguagem como base para a criação de Boo, sentia falta de algumas facilidades inerentes às linguagens estaticamente tipadas e da falta do acesso às facilidades da arquitetura .Net. Passou a utilizar 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çãoscript pelapor facilidadeuma única característica: 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 interativoInterativo: semelhanteSemelhante ao Python.
* Slicing: fatiamentoDado deque listas;L seé uma lista =com ['a',40 'b'elementos, 'c',você 'd',pode 'e'], lista[1fazer:3] retornaL ['b', 'c'10:30].
* Macros: Lembra as macros do C + +. É utilizado para simplificação de código.
* String interpolationInterpolation: Manipulação de Strings semelhante ao velocity.
* Generators: formas diferentes de escrever laços.
 
== Exemplos de Códigos ==