Boo (programming language)

From Encoresoup - The Ultimate Guide to Free/Open Source Software

Jump to: navigation, search
This article contains content from the Wikipedia article:
Boo (programming language)
history contributors
Boo
Image:BooLogo.png
Paradigm Object oriented
Appeared in 2003
Designed by Rodrigo B. De Oliveira
Developer Rodrigo B. De Oliveira
Latest release</th><td valign="bottom">0.8.2/ 2008-05-20
Typing discipline static, strong, duck
Major implementations auyu6
Influenced by Python
OS .NET Framework, Mono Runtime
License MIT/BSD style license
Website 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.

Contents

[edit] Code samples

[edit] Hello world program

print "Hi, world!"

[edit] 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}")

[edit] Basic Windows Form example demonstrating classes, closures, and events

import System.Windows.Forms from System.Windows.Forms
import 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)

[edit] 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"

[edit] See 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

[edit] External links

Template:DotNET

Personal tools

Free As In Freedom [Amazon] Media Tank - HD and DVD Enclosure + card reader [ThinkGeek] Sneaky Uses For Everyday Things [ThinkGeek]