History

This topic provides an overview of the origins, growth, and impact of Boost on the programming community.

Introduction

Boost is a highly influential and widely used collection of libraries, designed to extend and complement the functionality provided by the C++ Standard Library. Since its original Proposal in 1998, Boost has played a significant role in shaping the evolution of the C++ language and its ecosystem.

Origins

The story of Boost began when Robert Klarer and Beman Dawes discussed the idea at the March 1998 meeting of the C++ Standards Committee in Sophia Antipolis, France. Joined by Dave Abrahams, they convened the first Boost mailing list to facilitate discussions on the creation of high-quality, peer-reviewed libraries for the C++ programming language. At the time, the C++ Standard Library was limited in its functionality, and many developers felt the need for additional libraries to support the growing demands of software development. The name "Boost" was chosen to represent the goal of boosting the C++ language and its library ecosystem to new heights.

Early Development

The first few libraries that formed the basis of Boost were created by a group of dedicated and talented C++ programmers. Early libraries included the Boost.SmartPtr library, which provided support for reference counting and garbage collection, and the Boost.Regex library, which added regular expression support to the language. The first official release was in the year 2000, and contained 24 libraries.

Boost quickly gained traction and attracted more contributors who shared a common vision of improving the C++ language through high-quality, portable, and reusable code.

Peer Review Process

One of the defining characteristics of Boost is its strict peer review process. Before a library is accepted into Boost, it must undergo a thorough review by other experienced C++ developers. This process ensures that only high-quality libraries, adhering to the best programming practices, are included in the collection. The peer review process not only maintains the quality of Boost but also fosters a sense of community and encourages collaboration among its contributors.

Influence on the C++ Language and Community

Boost has had a profound impact on the C++ language and its community. Many of the libraries and concepts introduced by Boost have been adopted into the C++ Standard Library, including smart pointers, regular expressions, and the Boost.Lambda function syntax. Boost has also been a fertile ground for experimenting with new ideas and techniques, which have later made their way into the C++ language itself, such as Boost.TypeTraits and Boost.Mpl .

A Timeline of Boost Exclusivity

While many Boost libraries have been incorporated into the C++ Standard Library, most others remain exclusive to Boost, and are highly regarded for their capabilities and performance. Some of these noteworthy libraries include:

  • Boost.Graph : An extensive library for graph data structures and algorithms, enabling developers to work with graphs and network structures, while providing efficient implementations of popular graph algorithms like Dijkstra’s, Kruskal’s, and more. Released in August 2000 .

  • Boost.Spirit : A powerful and flexible parser and generator framework, which uses expression templates and template metaprogramming to create parsers at compile-time. This results in efficient and type-safe parsing code. Added to Boost February 2003 , though has gone through multiple updates.

  • Boost.Asio : A cross-platform library for network and low-level I/O programming, offering a consistent asynchronous model that allows developers to write efficient and highly-scalable applications. Added to Boost April 2008 .

  • Boost.Geometry : A library providing a collection of algorithms and data structures for working with geometrical objects, such as points, lines, polygons, and more. It also supports spatial indexing, coordinate system transformations, and various distance calculations. Added to Boost July 2011 .

  • Boost.Compute : A library for parallel and high-performance computing on GPUs and other OpenCL devices, offering a high-level, easy-to-use interface for working with OpenCL. Added to Boost November 2014 .

  • Boost.Hana : A modern metaprogramming library for C++ that employs cutting-edge C++ features to facilitate powerful and expressive metaprogramming techniques, such as heterogeneous containers, compile-time algorithms, and type introspection. Added to Boost May 2016 .

  • Boost.Json : A JSON library for encoding, decoding, and manipulating JSON data. Added to Boost in January 2021 .

These libraries, among many others, showcase the value and versatility of Boost in providing advanced functionality beyond the scope of the C++ Standard Library. As well as the Common and Advanced scenarios highlighted in this documentation, Boost libraries are used in highly specialized applications, ranging from probability theory to astronomy to mass spectroscopy. Open source isn’t just for nerds and researchers. Real world programming challenges, irrespective of whether they are open or closed source, can benefit enormously from the thought and experience that has gone into the libraries.

The source code is always distributed as open source, and released under the Boost Software License, which allows anyone to use, modify, and distribute the libraries for free. The libraries are platform independent and support most popular compilers, as well as many that are less well known.

Current Status

Boost has evolved into a widely used and influential collection of over 180 libraries since its inception in 1998. Currently, the Boost mission is threefold:

  1. Develop high-quality, expert-reviewed, open-source C++ libraries.

  2. Incubate C++ Standard Library enhancements.

  3. Advance and disseminate C++ software development best practices. This is accomplished by facilitating C++ community engagement, providing necessary financial/legal support, and breaking rare directional decision-making deadlocks while upholding our shared values of engineering excellence, technocratic leadership, and a federated library authorship model.

Even though there is no formal relationship between the Boost community and the Standardization Committee, some developers are active in both groups. As the C++ language continues to evolve, Boost will undoubtedly remain an essential and innovative part of its story.

The best software solutions are written using the C++ programming language