news.volyx.in

The two factions of C++ (herecomesthemoon.net)

554 points by cyclopeanutopia · 620 days ago · 653 comments on HN

Article summary

The C++ programming language is facing a divide between two factions: those who prioritize modern, safe, and efficient code, and those who prioritize backwards compatibility and stability. The C++ standard committee has adopted a set of design principles that prioritize backwards compatibility, which may hinder the language's ability to evolve. This divide is reflected in the differing approaches to package management, with some arguing that it should be handled by the language and others arguing that it should be handled by the operating system. The article suggests that this divide may lead to a split in the C++ community.

Main themes

  • C++ language evolution
  • Backwards compatibility
  • Package management
  • Language design principles
  • Community divide

What commenters say

  • Package management should be handled by the operating system, not the language, to avoid duplication of effort and ensure consistency across languages.
  • Language-specific package managers are necessary to ensure that dependencies are handled correctly and efficiently, regardless of the operating system.
  • The C++ standard committee's prioritization of backwards compatibility is necessary to ensure that existing codebases remain functional, but it may hinder the language's ability to evolve and improve.
  • A language-agnostic package manager is needed to simplify the process of managing dependencies across multiple languages and projects.
  • The use of containerization tools like Docker can help to solve package management problems, but may not be suitable for all use cases.
  • The complexity of package management is a result of the Unix directory structure, which dumps all binaries and libraries into a few top-level directories, requiring a separate program to manage them.
  • Language-specific package managers like npm and Maven have caused problems for some users, and a more universal solution is needed.
  • The C++ community is divided between those who prioritize modern, safe, and efficient code, and those who prioritize backwards compatibility and stability, and this divide may lead to a split in the community.