You should read Boo's manifesto to start to grasp what this nice language is about and the philosophy behind it.
Boo is a new object oriented statically typed programming language ... with a python inspired syntax and a special focus on language and compiler extensibility.
Boo's syntax is readable and expressive, mixing imperative, object oriented and functional idioms. One of the motos of the language is that if the compiler can figure out what you want it should, avoiding the need for verbose and repeatitive syntax.
One nice feature of Boo is that it's statically typed but allows the developer to opt-out of it and use dynamic typing when needed (or viceversa). This means that it's possible to build a large statically typed code base with it but still offer a dynamic feeling to it, integrating nicely with external libraries. Moreover it supports type inference so most of the time you end up writing type checked code without even noticing it.
The compiler works on Windows, Mac and Linux using the .Net or Mono runtimes.
- .Net 4.0 or Mono 3.x
$ msbuild src/boojs.sln (xbuild in Mono)
For advanced build options run
$ boojs <file>.boo
- Imperative idioms - 95%
- Functional idioms - 90%
- Closures (annonymous functions) - 75%
- Classes - 10%
- Namespaces and packaging - 75%
- Method overloading - 40%
- Operator overloading - 95%
- Events (Delegation / Observer pattern) - 10%
- Source Maps - 100%
- Meta-programming (Macros, Syntactic attributes) - 70%
- Preprocessor - 10%
- Reduce the size of the runtime by making the compiler more intelligent
- Generators - 90%
- Support for optional and named params