Boost C++ Libraries
Rich: Hi, this is Rich Bowen.
SourceForge is delighted to announce that the February Project Of The Month is Boost. Boost provides free, portable, peer-reviewed C++ libraries. In order to tell us what that means, and what the goal of the Boost project is, and where it’s going in the future, I called Dave Abrahams, who’s been involved with the project almost since the beginning.
Let’s start by defining what this project is. What is Boost? What does it do? What problems does it try to solve?
Dave: Boost is a free collection of C++ libraries. Our original intention was to build libraries suitable for incorporation into the C++ language standard and we’ve actually been quite successful with that. Most of the libraries in the new C++ 11 standard came through Boost. The idea was to get the libraries into the hands of as many users as possible, so that we could make sure that what got standardized was actually well tested in the field. Boost has now grown well beyond our original idea for it. There are over 112 libraries in Boost 1.48. They cover all kinds of domains from ensure general utilities to frameworks for high performance computing. All kinds of stuff. Many of these things, we don’t ever expect to standardize. They’re maybe too specialized. But many C++ programmers consider Boost an indispensable tool. It’s become sort of a de-facto standard.
Rich: For those of us from a different sector of the programming community, would you say that this is kind of like CPAN or PEAR?
Dave: That’s really interesting. It’s different from CPAN and PEAR in one important way, which is that Boost has a peer-review process for adding new libraries to the collection. We don’t have the kind of incredible variety and sprawl of projects that you see in CPAN, but then again, we also have probably a higher standard of quality control. There’s certain requirements that everything needs to have to get into Boost. And we have an automated test that runs regressions for all of the libraries in the collection. It’s a little more organized than CPAN. And I think that made a huge difference in getting adoption, because people have really grown to rely on the stability and quality of the code in Boost.
Rich: Do you feel that’s what contributed to people adopting the non-standard libraries.
Dave: Yes, there’s that. The fact that it’s free, with non-viral licensing was a huge point. And the incredible community of programmers that grew up around this project – it’s made a huge difference in people wanting to use it and wanting to participate.
Rich: Were you involved all the way at the beginning?
Dave: The very beginning was started with Beman Dawes, who was the chairman of the C++ committee’s library working group at the time. He got a bunch of us together right after the first standard came out, and started to talk to us about where are we going to get the libraries for the next standard? Where are they going to come from, and where are we going to get libraries that actually have a lot of usage experience behind them? Because we wanted to be sure that those kinds of things were proven.
The very first participants in Boost were all people who were associated with the C++ committee. Since then it’s sprawled out into a community so big I can’t really keep track of it.
Rich: Looking at the list of libraries there are a huge number of them, and I’m downloading them … it’s 95 meg of source code.
Rich: Does the documentation tend to keep pace with this? Do people know which libraries they’re going to want?
Dave: That’s always hard. I do training in Boost. And when I do that, I tell people to take the libraries a few at a time. There’s a base set of very broadly useful libraries, that just about everybody will want. So if you start with those, it gets a lot more approachable.
Another thing that you can do that will help if you’re feeling it’s a bit of a hump to get over, we have a conference every year – BoostCon – which we’ve actually extended this year into “C++ Now” in honor of the new standard.
Rich: What kind of an audience is the conference geared toward?
Dave: It’s been geared toward the audience of interested and interesting people that show up around Boost. It’s kind of hard to define them. We’ve had people who are less experienced, but I would say that as a rule most of people that show up are extremely bright, and that makes for a really interesting conference. We do this every year in Aspen, Colorado, by the way, in the Spring, and it’s one of the best conferences that everybody says that they go to every year. We get the same people coming back over and over again. It’s geared toward anyone who’s a Boost user or a Boost developer. That’s where we get the face-to-face collaboration that so many of us miss when we’re doing the the online, remote collaboration thing.
Rich: With the new version of the C++ standard out last year, what are the plans of the Boost project with regards to that?
Dave: I think we’re going to keep on doing what we had been doing. We’re going to keep reviewing and accepting new libraries.
We’re going through a phase where the project has expanded so much that the original ways we had of thinking about things may not apply anymore. One of the things we’re trying to do is modularize it. You were talking about how there was 90 MB of downloads to get the source for Boost. One of the things that were working on right now is modularizing it, because most people don’t want to use every library all the time. People want to be able to pick and choose.
We also think that it will help decouple the development process for all of our developers a bit more. Make it a little more freeing to work in, because it’s a really big code base now.
Rich: Are there other projects that are in the same space? I’m kind of aware of the Apache standard C++ project but I don’t know much about it. Are they doing a similar thing, or is that different?
Dave: My recollection is that the Apache project was actually just trying to implement the existing standard, whereas Boost’s mission has always been about exploring what can be done with C++ libraries, and providing new things that aren’t in the standard.
So, let’s see, other libraries in this space? Well, actually, one thing that you might consider similar would be the Adobe Source Libraries. This is a set of Open Source libraries which are actually built on top of Boost. They cover the same sort of broad spectrum of different applications.
Rich: You’re part of a company called BoostPro, is that right?
Dave: That’s right.
Rich: You do training. What else do you?
Dave: We do both Open- and closed-source software development. We a lot of training – that’s one of our main things. We’re focusing a lot on training in C++ 11 because there’s new language standard out which changes everything. And we’re doing a lot of compiler development these days too, because one of our partners has a lot of experience with that, and a lot of connections in that world.
Rich: Thanks so much for speaking with me.
Dave: Thanks a lot, it was my pleasure.
More projects of the month