The Boo Programming Language

  • It is amazing to me how many language landing pages are largely devoted to install guides rather than explaining the language's raison d'etre.

  • > no unnecessary keywords, brackets or semi-colons makes for highly readable code.

    i always find it funny that people think removing symbols magically makes code more readable its almost as if theyve never read english ocaml is definitely harder to read because of the lack of symbols it just turns in to a word soup definitely not for me

  • `Boo` was always an interesting language to me, but a bit hard to play with (as some others here have already commented) and now mostly abandonware. If you like its ideas, many of them have been taken further in Nim ( https://nim-lang.org/ ) which is still actively maintained & extended. (They are not phylogenetically related, to my knowledge (except possibly for Python as a common ancestor), and are also distinct in many ways). Nim is also less Windows-centric while also being cross-platform (Windows, OSX, Linux, *BSDs).

  • Two things about Boo that have left a lasting mark:

    First, it was the first time I'd seen quasi-quotes, where you can write code that them so converted to AST. Very very lovely dynamic programming. It was so awesome having a static runtime but being able to do multi-phase programming in it, was so much nicer than anything I'd seen in java. Excellent easy to understand macro writing.

    Second, the boo test cases rocked. Test cases start with a string which is the expected output. Then the rest of the testcase is a short bit of code that outputs. It was so easy to debug & see what was happening, such an elegant frameworkless way to run tests.

    I used it a couple times commercially at small webdev shops, but had a bunch of personal projects using Boo. Lead author Bamboo got hired by Unity and their (I believe now deprecated?) UnityScript was related/similar I understand, but Boo kept going for a whole. Great docs for the time too. But yeah tapered off.

    The two techniques I describe, quasi-quotes & tests-as-executable are both visible in this macro testcase, https://github.com/boo-lang/boo/blob/master/tests/testcases/...

    Thanks Bamboo et al!

  • A long time ago Boo was one of the languages that Unity 3D supported. I think it hasn’t been supported for more than 10 years.

  • They say programming languages never die, but Boo’s definitely in palliative care.

    I liked it, but the better C# got, the less reason you’d have to use something with worse tooling.

  • Reading the first few paragraphs, I note

        - heavy dependence on large (Mono) and/or unusual tools (nmake ... in 2024 ... really?)
    
        - worse than that, dependence on specific (older) versions of exotic, non-standard things
    
        - not much in the way of "this is what the language looks like" or "this is what this language is good at"
    
        - the windows world smell surrounding the project is pungent, to say the least
    
    Not too appealing to have to install that much crap on one's system just to play with a new language.

    I hope for the sake of the project this is a temporary state of affairs.

    [EDIT]: a maybe slightly better intro to the language than the github page:

    https://boo-language.github.io/