Boo bei der SIEDA GmbH

    Diese Seite dient als Archiv-Seite für die Arbeit von Dr. Harald Meyer auf'm Hofe an der Programmiersprache Boo für den Einsatz bei der SIEDA GmbH.


    "Boo is a stablished object oriented statically typed programming language for .NET and Mono (and some JVM support) with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features."

    At SIEDA GmbH we particularly use booish.exe, the interactive shell of Boo, to verify the behaviour of our own or third-party .NET libraries.

    Free Download

    • Boo as ZIP. The content of this file may be used royalty free according to this license. This package is also available as nuget package Boo.Lang.
    • This distribution has been signed with a private key of the distributor. This key differs from the SNK file in the source repositories and of other distributions of Boo.
    • This distribution also contains a modified version of the NDoc system for producing documentation from annotated source files. This program is available under the GNU Public License.


    • The sources of this distribution are available through GitHub.
    • The original sources of the program are maintained here, also at GitHub.


    • The binary distribution also comprises the "Boo Primer" by Cameron Kenneth Knight. This is a good and comprehensive source of information to get started with Boo.
    • Consult the home page of BOO to learn more about the language.

    Installation on Windows

    Simply extract the ZIP file to your harddisk.

    NAnt and MSBuild support

    Boo integrates with NAnt and MSBuild. You will have to define the environment variable BooBinPath in order to get this to work. Assign the pathname of the folder containing the binaries of Boo to this variable. Example for Windows (running cmd.exe, supposing that you extracted the ZIP file to C:/):

    set BooBinPath=c:\boo-\bin

    SharpDevelop 4.4

    Users of SharpDevelop 4.4 might ponder to replace the standard Boo binding by the content of file This file contains a recompilation of the Boo binding that has been linked with SharpDevelop This binding resides in folder [SharpDevelop]/AddIns/BackendBindings/BooBinding. Backup the standard content of this folder (in case that something goes wrong) and extract into [SharpDevelop]/AddIns/BackendBindings.

    Installation on Linux / Unix

    On Linux / Unix systems, you will have to install the Mono runtime environment for .NET. To install the binaries, extract the ZIP file to your harddisk first. Then, change directory to the boo-\bin folder and run

    mono install.exe

    This simple program will ask you, whether to install into /usr/local/ or your home ~. Additionally, the script will create the sh scripts booc, booi, and booish into /usr/local/bin/ or ~/bin/, that implement a convenient startup of the corresponding BOO programs. Refer to the source file to investigate the effects of install.exe in detail before using it.

    Differences from the original distribution

    This distribution has not been compiled from the original code base hosted here. Several original contributions have been added to a fork of this repository. This section tries to sketch a picture of these original contributions. In the meantime, however, these extensions might have been merged into Boo's master repo.

    • Fix of issue BOO-1078 "Cannot use enumerations as attribute parameters."
    • Version information on assemblies is now pasted into the native resources. Thus, Windows Explorer can read and display it.
    • booish: describe() now looks for XML documentation of referenced assemblies.
    • booish: Autocompletion offers suggestions in a scrollable list with one offer per row (better overview).
    • booish: Solved some problems with managing input into the shell. Added mode to allow users to paste content into the shell.
    • booish: booish.rsp now offers additional options to configure the startup behaviour of the shell.
    • booish: Added means to add commands to the shell. Added booish.mod.os to demonstrate this. This module provides commands like "cd" and "dir".
    • boo: range(-1) now is an empty enumeration (instead of raising an exception).
    • boo: Operator "isa" now also works with structs. This is important to avoid exceptions on casts.
    • boo: Constructors and destructors now do not require a "def" (but you still can write this). Keyword "def" is redundant here (not very wrist friendly).
    • boo: Macro "property" now also works for static classes.
    • boo: Added macro "getproperty" that keeps the setter private.
    • boo: array(int, null) now returns null (without an exception). This spares some if-then when using array for casting.
    • boo: Resolved issues #57 and #58.

    If you want to paste preformatted lines of code into the console, you will have to turn off autoindention using the shell command "indent".

    	>>> indent
    	Auto indention has been turned off.
    	Use [SHIFT][RETURN] to leave the editor and execute the command.

    The prompt will show you whether autoindention is done or not.

    Please note, that complex input operations on the System.Console are error prone. There are certainly several things to do here that probably will never be done. You may experience problems when you enter lines of code that span over more than two lines of the console's line buffer.

    Zur Teilnahme an unseren Webinaren haben wir die Buchungsplattform cituro eingebunden. Wir benötigen Ihre Einwilligung zum Laden externer Komponenten, um Ihnen diese Funktion anbieten zu können.


    Diese Seite nutzt Cookies, Tracking-Technologien von Dritten und externe Komponenten, um ihre Dienste anzubieten, stetig zu verbessern und Werbung entsprechend der Interessen der Nutzer anzuzeigen. Durch das Laden externer Komponenten können Daten über Ihr Verhalten von den entsprechenden Anbietern gesammelt werden. Ich bin damit einverstanden und kann meine Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen oder ändern. mehr unter DATENSCHUTZ