(Please note that this web page is a work-in-progress. Some documentation, commentaries, statistics, source code, etc. will change over the course of time. If anything is updated on the Booch Components, you'll see it here first, so be sure to check from time to time.)
In late 1994, I asked Grady Booch about the future of his popular Booch Components. At that time, versions existed for Ada 83, C++, and Eiffel, and a Smalltalk version was about to be released. Grady indicated he had no intention of releasing a version for Ada 95, not because he felt it was an inappropriate language, but because he wanted to focus on his OO methods. The result was an e-mail comment Grady made to myself and a few others on the Team Ada mailing list: "I'd be delighted to have a freeware set of the [Ada 95] booch components....anyone care to take this on and throw it into the public domain?"
In what will historically be considered a moment of insanity, I volunteered.
The result is a useful collection of utilities and structures that emphasize efficiency as well as style, similar to the attempt with the Standard Template Library for C++.
Interestingly, Ed Schonberg did some early work in testing the viability of migrating the Booch Components into Ada 95 back in 1992 [paper published at Tri-Ada '92]. His work was of significant value to me in my early stages. His knowledge of Ada 95, and the practical application thereof, is quite significant (as is his piano playing :-), and I'm thankful for his help.
The Ada 95 Booch Components present a couple of significant firsts for the Ada community:
NOTE:A beta release was previously available, but has since been removed due to significant design changes. If you downloaded that beta release (version 0.4q), PLEASE DELETE ALL TRACES OF IT! I can guarantee it will not work with current and future releases
The version currently released has the following components available:
I was hoping to get AVL, Binary, and Multiway trees working, but there's a few bugs in the multiway tree set. Those components will be released shortly as an update.
Soon, the full set of structures and utilities will be released (see Component Documentation for the full text).