Of Boost and Men

Boost is a great collection of libraries. The functionality is so diverse and the quality is so high and the design is so careful that it’s almost part of the standard C++ library (of course, many of Boost’s sub-libraries has already been accepted for inclusion into the next version of C++ standard library with little or no modification, and more are scheduled for discussion.)
People who develop Boost are fantastic software designers and all C++ gurus. I consider myself a seasoned C++ programmer and I can’t honestly say that I can follow their discussions without extensive reference look up and pondering (the times that I know what they are talking about, that is!) This has led to both Boost’s greatest strengths and weaknesses.
Obviously, when you have many great developers and well-defined, open and democratic processes, you’re gonna get good FOSS. It also leads to a perceived elitism and high entry barrier. From the “outside”, it looks like Boosters all want to keep the glory to themselves, and that they would shoot down any library submitted for inclusion by an “outsider.” I’ve not been around the Boost discussion lists long enough and I haven’t been paying a close enough attention to know this for sure, but it seems to me like most people there are volunteers, more interested in quality and advancement for their (and my) beloved language, rather than glory-seeking adventurers after fame and fortune.
Also at first glance, Boost might seem like a bag of cryptic and hard-to-learn libraries, shrouded in mystery and magic. It is not quite like that, but given the fact that C++ is a difficult language (yeah, your hunches in your freshman year were right, if not the reasons behind them) you should expect some complexity is some of its (arguably) most advanced libraries.

If nothing else, use Boost’s thread, filesystem, serialization and async I/O libraries. The thread library is pretty much already a part of standard C++ anyway, so you might as well learn to use it (not that it is hard to use.) Lack of portable file system access has always been a weakness on C and C++. The serialization library is so unintrusive and fantastic, that it will find its way and place in any non-trivial program that we’ll ever write. And asio has so much needed functionality, that I’m just itching to try it out.
And when you are already using one part of Boost, why stop there? Use anything and everything you can. Not blindly, of course, but prefer well-designed, well-developed and well-tested libraries to some small code snippet you find off the web. And when using Boost, delve into it and see how it is implemented. It’s educational and more often that not even enlightening for the likes of me.

VN:F [1.0.8_357]
Rating: 5.5/10 (2 votes cast)