top of page

Get auto trading tips and tricks from our experts. Join our newsletter now

Thanks for submitting!

Not a 'Failed Java,' Says Creator Bjarne Stroustrup C++ Book Author

Writer's picture: Bryan DowningBryan Downing


In the ever-evolving landscape of programming languages, comparisons and rivalries are inevitable. One such comparison that has persisted for years is between C++ and Java.1 While both languages have their strengths and weaknesses, and cater to different needs, some have labeled C++ as a "failed Java." This notion, however, is vehemently refuted by Bjarne Stroustrup C++ Book Author. He also created the language.



c++ vs java


Stroustrup, a distinguished professor of computer science at Columbia University and a member of the National Academy of Engineering, has dedicated his career to the development and evolution of C++.2 In numerous interviews and publications, he has consistently emphasized that C++ is not a "failed Java," but rather a distinct language with its own unique purpose and philosophy.





Different Goals, Different Designs


At the heart of Stroustrup's argument lies the fundamental difference in the design goals of C++ and Java. C++, he explains, was designed with a focus on performance, efficiency, and control. It empowers developers to write code that interacts directly with hardware, making it ideal for system programming, game development, and other performance-critical applications.3


Java, on the other hand, was conceived with simplicity and portability as primary objectives.4 Its design emphasizes ease of use and cross-platform compatibility, making it well-suited for enterprise applications and web development.





"C++ was not designed to be a simplified language," Stroustrup states. "It was designed to be a powerful language that could be used to build complex systems." This difference in design philosophy is reflected in the features and capabilities of the two languages. C++ offers features like manual memory management and direct access to hardware, which provide developers with fine-grained control but also introduce the risk of errors.6 Java, with its automatic garbage collection and virtual machine, prioritizes safety and portability over raw performance.7


Evolution, Not Failure


Stroustrup also points out that C++ has a long and rich history, evolving over decades to meet the changing demands of the software industry.8 From its early days as "C with Classes" to the modern C++20 standard, the language has consistently adapted and incorporated new features while retaining its core principles.9



"C++ has been evolving for over 40 years," Stroustrup notes. "It's a mature language with a large and active community." This continuous evolution is a testament to the language's resilience and adaptability, hardly indicative of a "failed" language.


A Matter of Choice


Ultimately, Stroustrup argues that the choice between C++ and Java is a matter of selecting the right tool for the job. Just as a carpenter wouldn't use a hammer to drive a screw, a developer should choose the language that best suits the specific requirements of their project.

"C++ and Java are different languages with different strengths," Stroustrup emphasizes. "There is no single 'best' language. It depends on what you're trying to do."


Beyond the Comparison


While the comparison between C++ and Java may continue, Stroustrup's perspective provides valuable insights into the distinct nature and purpose of C++. It highlights the language's focus on performance and control, its long history of evolution, and its suitability for specific types of applications.10 By understanding these distinctions, developers can make informed decisions about which language to use for their projects, moving beyond simplistic labels like "failed Java" and appreciating C++ for its unique contributions to the world of programming.


In conclusion, Bjarne Stroustrup's assertion that C++ is not a "failed Java" is well-supported by the language's design principles, its history of evolution, and its continued relevance in various domains. C++ remains a powerful and versatile language, empowering developers to build high-performance, complex systems.11 While comparisons with other languages may be inevitable, it's crucial to recognize the unique strengths and contributions of C++ in the ever-evolving world of programming.

Comments


bottom of page