Long-term Goals

Round-trip engineering

As Eric S. Raymond said, every good work of software starts by scratching a developer's personal itch. It augurs well for Scalpel, as I'm still scratching mine.

The itch in question is the desire of having a UML software with C++ round-trip engineering capabilities in my developer's toolkit. The first brick in that huge wall is the source code analyzer. So was born the Scalpel project.

Once Scalpel has reached the goal of being able to analyze any C++ program, the next step will be the writting of a new library, based on Scalpel. This new library will provide the so-desired round-trip engineering functionality.

The functionality could be added directly into Scalpel, but I like to stick to the single responsibility principle. However, it will probably still be necessary to modify Scalpel to make possible the writting of such a library. It's important we make sure that these modifications make Scalpel even more generic (i.e. capable of fulfilling even more program needs).

Boost

Boost is a set of recognized high quality C++ libraries. Like Scalpel, these libraries are portable and open-source.

I hope Scalpel will one day reach the excellence required to be accepted into Boost. Of course, this would be a personal satisfaction, but I think it would be the best thing that could happen to Scalpel as well.

Why this would be so great

Indeed, each of these libraries are reviewed by a team of C++ experts. They also are widely used by good C++ developers.

A both large and skilled community such as Boost's is all a good project needs to become an excellent project.

What makes me think Scalpel could be accepted into Boost

Scalpel uses itself several Boost libraries: Spirit, Wave, shared_ptr (now in C++0x's STL), Optional, Test, etc.. Actually, it exclusively uses Boost libraries and the C++ standard library, which is required by Boost.

Besides, Boost already provides a Spirit-based C++ source code preprocessing library: Wave. Including a C++ source code analysis library seems to be a natural evolution.