Boo ist eine objektorientierte, statisch typisierte Programmiersprache für die .NET-Plattform (Common Language Infrastructure). Der Brasilianer Rodrigo Barreto de Oliveira entwickelte Boo ab 2003 aus Frustration über bestehende Sprachsysteme und veröffentlichte die erste Version 2004. Die Besonderheit: Python-artige Syntax mit Einrückung, kombiniert mit der Leistungsfähigkeit des .NET-Frameworks.

Compiler und erste Schritte

Der Boo-Compiler heißt booc und erzeugt .NET-Assemblys (CIL-Code). Ein einfaches Programm:

print("Hallo, Boo!")
# Ausgabe: Hallo, Boo!

Wie in Python ist die Einrückung bedeutungssemantisch — Blöcke werden über Einrückung statt geschweifte Klammern gebildet.

Kernkonzepte

  • Duck Typing: Boo ist statisch typisiert wie C# oder Java, erlaubt aber bei Bedarf dynamisches Verhalten. Variablen, die als duck deklariert sind, werden zur Laufzeit aufgelöst.
  • Closures und Lambda-Ausdrücke: Funktionen sind Bürger erster Klasse, anonyme Funktionen werden mit def oder do definiert.
  • Comprehensions: Listen- und Generator-Ausdrücke wie in Python, z.B. evens = [x for x in range(10) if x % 2 == 0].
  • Slices: Sequenzen lassen sich mit liste[1:3] schneiden.
  • Compiler-Erweiterbarkeit: Die Compiler-Pipeline und der AST sind öffentlich, sodass Boo um eigene Sprachfeatures erweitert werden kann.

Praxis-Tipps

  • Boo lief lange als Skriptsprache in der Spiel-Engine Unity (frühe Versionen), bevor C# die alleinige Skriptsprache wurde.
  • Interop mit .NET-Assemblys funktioniert direkt — Boo kann vorhandene C#-Bibliotheken nutzen.
  • Das Projekt ist weitgehend inaktiv; für neue .NET-Projekte ist C# oder F# die übliche Wahl.

Verwandte Grundlagen: Python-Befehle, C#-Befehle, Compiler sowie die .NET-Alternativsprachen Nemerle-Befehle und Cobra-Befehle.