bobbee.org

Bobbee is the name of a new text and markup language processing programming language that is currently in development. This is intended to become its web site. At present it just has a few notes about the language.

Where the Language is Now

Currently the language supports:

The language design and its user manual has been completed for a few years now, and the implementation is largely completed. However, final debugging has taken a really long time and looks like it'll take quite a while yet. Partially because it's a necessarily slow process, and partially due to the fact that I'm really too old to be doing this kind of thing. Nonetheless, I really want it to be complete and well debugged before I release it, so that I'm not stuck with a lot of debugging at an even older age. The other thing that still needs a lot of work is documenting the implemention, so others can take over its maintenence at some point.

I really expected the language to be completed by now, but there's been something of a hiatus in the progress of the Bobbee language implementation. I initially indended the implementation to work on as wide a range of Java version, but when I looked into upgrading to using the Java 13 platform I found that that didn't work because with current Java releases, the Java library isn't available to non-Java languages: they are hidden away somewhere, and I can't find where. As a result, I went back to Java 8. Sticking with Java 8 seems to what the Scala language implemention has done. That is an unfortunate approach, and is contrary to Bobbee's original goal of working on a wide range of JVM versions. But the fact that the Scala folk went this way, and the fact that they seem to know what they are doing, means that I should do the same thing. (An interesting description of how long a new programming language takes is Building a Language Takes Time. Given my age, and given that this language is richer than any other language in the markup/text-processing language field, it's not surprising that it's taking a long time.)

Just by way of a side-note, when I first started this project, I was seriously considering the Mono Project as the basis for the implementation rather than the Java platform, but went with Java because it works on more platforms, and because Mono is a public distribution of an IBM product, which sadly displeases many people, its advantages not-with-standing. Given what's happening with Java these days I'm thinking I made a mistake going that way, but oh well!

The Balisage Conference

I attended the Balisage 2019 conference in Rockvile MD, and presented a paper about the Bobbee language. These are the presentation materials:

For interest, here's the files that I used to create the paper: translating it from text to XML, and then from XML to HTML:

In addition, I wrote a six-page overview of a minimal markup language that was used to test Bobbee's markup language processing features called BML (Basic Markup Language), which I intended to display at the Balisage 2019 conference, but didn't, because there wasn't any wall space available for posters. So here it is. (I've actually produced a more useful minimal markup language recently, that I hope is more acceptable to the folk who don't think BML is a markup language, and I'll be using that as an example of how to implement markup markup languages. I'll post it here once the current phase of debugging is complete.)

Together with a whole bunch of other folk, I attended Balisage 2020, Balisage 2021, Balisage 2022 and Balisage 2023 Conferences virtually, and will be attending future Balisage Conferences virtually or in person. I'm hoping to present the finished language at Balisage in the not-too far future — depending on how well the language debugging and the implementation documentation goes.

A Bit of History

For those interested in the history of programming languages, I've designed and lead the development of a number of programming languages in the past, most of which have addressed text and markup processing, and two of which have had significant use, HUGO and OmniMark:

Comparing Markup Languages

One interesting consequence of implementing a variety of markup languages using the same tools is that one can compare how complex it is to implement them. The size of the source code for each one is a good rough measure of complexity. Here's the sizes of the implementions in bytes:

4129  mml.bjA very simple markup language suitable as an example.
12166  vsml.bjA previous attempt at a minimal/simple markup language.
13329  bml.bjAn attempt to find how small a markup language could be.
21234  microxml.bj
27170  html.bj*Just the HTML parsing code, without its tables.
27794  json.bj
55233  ixml.bjIt's incomplete right now, so it will grow.
99299  xml.bj
179122  sgml.bj
209170  html.bjThe HTML parser, including all the tables that describe HTML elements.

Contacting Me

If you've got a reason to contact me about this bobbee.org website or about the new language, please email me at info@bobbee.org.

Latest update: January 20, 2024.