C++ proposal dismisses backward compatibility
3 April 2020 | 0
A working group of the C++ language standards committee has floated a proposal to evolve the language with an emphasis on safety and simplicity, rather than backward and binary compatibility, raising the question of whether the language could possibly fork.
A recently published paper puts forward goals and priorities for C++ – such as code being simple to write and read as well as fast and scalable development – that the authors believe C++ requires as a high-performance systems language. Their list of non-goals includes backward and forward compatibility and a stable application binary interface (ABI) for the language and library.
The top priority for the authors is run time performance. As far as backward or forward compatibility go, the authors advocate for the ability to migrate from one version of C++ to another rather than compatibility between them. This preference is rooted in their experience with evolving software over time more generally and a live-at-head model. Another non-goal was support for existing compilation and linking models, which the authors would be willing to change to achieve their goals.
The authors also favour better, dedicated mechanisms to decompose software subsystems over providing a stable ABI across the language and libraries. “Our experience is that providing broad ABI-level stability for high-level constructs is a significant and permanent burden on their design. It becomes an impediment to evolution, which is one of our stated goals,” they wrote.
Longtime C++ programmer Robert O’Callahan, in a recent blog post, described the proposal as interesting but added he would not be completely surprised “if it ends with a fork of the language.”
The authors stipulate that the paper is geared toward their own use cases, which may not align with every user. The 17 authors, from organisations such as Google and Nvidia, also said they were not pushing to build consensus on the proposal’s points. The paper was published at open-standard.org, which hosts webpages for groups such as ISO and the Standard C++ Foundation, which oversees the development of C++.
IDG News Service