The Rise of Orthodox C++
Orthodox C++, a minimal subset of C++, is gaining traction as a reaction against the complexities of Modern C++. This shift mirrors the backlash against Java’s verbosity in the early 2000s, which led to the adoption of more lightweight languages like Python and Ruby. By avoiding unnecessary features, Orthodox C++ aims to improve code simplicity, readability, and maintainability.
The movement is driven by experienced developers who have learned from past mistakes. They recall the overuse of features like RTTI, exceptions, and streams, which led to code complexity and performance issues. This trend is not new; even Bjarne Stroustrup, the creator of C++, has stated, “Within C++, there is a much smaller and cleaner language struggling to get out.”
Orthodox C++’s focus on simplicity and compatibility makes it an attractive choice for projects that require portability and ease of maintenance. By avoiding features like exception handling, which requires significant runtime support, Orthodox C++ can achieve better performance and compatibility with older compilers.
Why Orthodox C++ is Gaining Traction
One key factor is the lag in adoption of C++ standards by compilers and OS distributions. This delay makes it difficult for developers to use new features immediately, leading to a “Resume Driven Development” approach, where developers prioritize using the latest features over practical considerations. Orthodox C++ offers a more pragmatic approach, focusing on simplicity and compatibility.
Another factor is the influence of embedded systems and game development, where resources are limited, and simplicity is crucial. The Embedded C++ standard, for example, provides a subset of C++ features tailored for resource-constrained environments. Orthodox C++ draws inspiration from these efforts, applying similar principles to general-purpose programming.
The Orthodox C++ committee’s recent approval of selective use of C++20 features demonstrates the movement’s willingness to evolve while maintaining its core principles. This approach ensures that Orthodox C++ remains relevant and effective in modern programming contexts.
Winners and Losers in the Orthodox C++ Ecosystem
Developers who prioritize simplicity, readability, and maintainability will benefit from Orthodox C++. This includes teams working on large-scale projects, where complexity can quickly become overwhelming. Additionally, embedded systems and game developers will appreciate the focus on resource efficiency and performance.
On the other hand, developers who rely heavily on Modern C++ features may need to adapt to the more restrictive subset of Orthodox C++. This could lead to a learning curve, especially for those accustomed to using features like exceptions and streams. However, the benefits of simplicity and compatibility may outweigh the costs of adaptation.
Companies that adopt Orthodox C++ may also experience a reduction in maintenance costs and improved code quality. This, in turn, can lead to increased customer satisfaction and loyalty, as well as a competitive advantage in the market.
The Skeptical Case
Some critics may argue that Orthodox C++ is too restrictive, limiting the expressiveness and flexibility of C++. They may point to the success of Modern C++ in solving complex problems and argue that the added complexity is justified by the benefits. However, this perspective overlooks the long-term costs of complexity and the value of simplicity in maintaining large-scale projects.
A historical analogue to this debate is the rise of Java in the late 1990s, which was initially criticized for its verbosity and lack of performance. However, Java’s focus on simplicity and platform independence ultimately led to its widespread adoption and success. Similarly, Orthodox C++ may prove to be a more sustainable and maintainable choice in the long run.
What to Watch Next
The next significant event to watch is the adoption of Orthodox C++ by major companies and projects. As more organizations commit to using Orthodox C++, the movement will gain momentum, and the benefits of simplicity and compatibility will become more apparent. Keep an eye on industry leaders and open-source projects, as they will likely be the first to adopt and promote Orthodox C++.
Another key indicator is the development of tools and compilers that support Orthodox C++. As these tools become more widespread, it will become easier for developers to adopt and use Orthodox C++ in their projects.
What’s your take on this? Drop your perspective in the comments below.
By Alex Mercer, Senior Tech Analyst at TrendFlashy
Ready to launch your own asset?
Check out our guide on Building a Profitable Online Business.