Boo (programming language)


Boo (programming language)

Infobox programming language
name = Boo

paradigm = Object oriented
year = 2003
designer = Rodrigo B. De Oliveira
developer = Rodrigo B. De Oliveira
latest_release_version = 0.8.2
latest_release_date = 2008-05-20
typing = static, strong, duck
implementations = auyu6
dialects =
influenced_by = Python
influenced =
operating_system = .NET Framework, Mono Runtime
license = MIT/BSD style license
website = [http://boo.codehaus.org/ boo.codehaus.org]

Boo is an object oriented, statically typed programming language developed starting in 2003, which seeks to make use of the Common Language Infrastructure support for Unicode, internationalization and web style applications, while using a Python-inspired syntax and a special focus on language and compiler extensibility. Some features of note include type inference, generators, multimethods, optional duck typing, macros, true closures, currying, and First-class functions.

Boo is open source–licensed under an MIT/BSD style license.

Boo can be used with Microsoft .NET or Mono.

Code samples

Hello world program

print "Hello, world!"

Fibonacci series generator function

def fib(): a, b = 0L, 1L #The 'L's make the numbers 64-bit while true: yield b a, b = b, a + b

# Print the first 5 numbers in the series:for index as int, element in zip(range(5), fib()): print("${index+1}: ${element}")

Basic Windows Form example demonstrating classes, closures, and events

import System.Windows.Forms from System.Windows.Formsimport System.Drawing

class MyForm(Form): def constructor(message as string): b = Button(Text: "Click Me") b.Location = Point(100, 50) b.Click += do(): MessageBox.Show(message) self.Controls.Add(b) f = MyForm("you clicked the button!")Application.Run(f)


=Asynchronous design pattern with a closure=

import System

def run(): print("executing")

print "started" result = run.BeginInvoke({ print("called back") })System.Threading.Thread.Sleep(50ms)run.EndInvoke(result)

print "done"

ee also

* IronPython - an implementation of Python for the .NET platform, similar to Jython.
* Nemerle - a high-level statically-typed programming language for the .NET platform. It offers functional, object-oriented and imperative features as well as macros.
* Groovy - a language with similar objectives but targeting the Java Platform
* REBOL - a more mature language sharing common goals.
*IronRuby

External links

* [http://boo.codehaus.org/ Official website]


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Python (programming language) — infobox programming language name = Python paradigm = multi paradigm: object oriented, imperative, functional year = 1991 designer = Guido van Rossum developer = Python Software Foundation latest release version = 2.6 latest release date =… …   Wikipedia

  • Oxygene (programming language) — Oxygene Developer RemObjects Software Stable release 3.0.21 (August 29, 2009; 2 years ago (2009 08 29)) Influenced by Object Pas …   Wikipedia

  • Mirah (programming language) — Mirah Paradigm(s) object oriented, imperative Appeared in 2008 Typing discipline static, with dynamic features, strong, inferred Influenced by Ruby, Java, Boo …   Wikipedia

  • Python (programming language) — Python (langage) Pour les articles homonymes, voir Python. Python …   Wikipédia en Français

  • C Sharp (programming language) — The correct title of this article is C# (programming language). The substitution or omission of the # sign is because of technical restrictions. C# Paradigm(s) multi paradigm: structured, imperative …   Wikipedia

  • F Sharp (programming language) — The correct title of this article is F#. The substitution or omission of the # sign is because of technical restrictions. F# Paradigm(s) multi paradigm: functional, imperative, object oriented Appeared in 2002 (2002) …   Wikipedia

  • Object-oriented programming language — An object oriented programming language (also called an OO language ) is one that allows or encourages, to some degree, object oriented programming techniques such as encapsulation, inheritance, modularity, and polymorphism. Simula (1967) is… …   Wikipedia

  • Boo (disambiguation) — Boo is an expression of dislike for a performance. Boo may also refer to:*Boô, a Saxon cattle shedIn entertainment: * Boo! (1932 film) * * Boo! ( Frasier episode) * Boo! (TV series) *Boo ( Dragon Ball ) or Majin Buu, a character in Dragon Ball… …   Wikipedia

  • Language Integrated Query — LINQ redirects here. For the card game, see Linq (card game). Language Integrated Query Influenced by SQL, Haskell Language Integrated Query (LINQ, pronounced link ) is a Microsoft .NET Framework component that adds native data querying… …   Wikipedia

  • Comparison of programming languages — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia