From Encoresoup - The Ultimate Guide to Free/Open Source Software
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.
[edit] Code samples
[edit] Hello world program
[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