C++: El documental

Recepción del documental

  • Muchos comentaristas encontraron la película atractiva, bien ritmada y agradable, con elogios para la lista de contribuyentes.
  • Algunos señalaron que se siente más como una celebración que como un examen crítico; las críticas a C++ aparecen solo brevemente cerca del final.
  • A los espectadores les gustan documentales similares sobre lenguajes (Python, Clojure, Erlang) y ven esto como parte de una tendencia más amplia de la serie.

Reclamos sobre la popularidad y el crecimiento de C++

  • El citado “+90% de usuarios en 3,5 años” de una encuesta despertó escepticismo sobre la metodología y las encuestas de proveedores en general.
  • Se propusieron explicaciones: cargas de trabajo de IA/ML (C++ bajo la capa de Python), necesidades de rendimiento por vatio y la enorme base de código existente de C++ y los datos de entrenamiento para LLMs.
  • Algunos siguen sin estar convencidos de que la IA explique específicamente el crecimiento.

Complejidad, estándares y uso cotidiano

  • Varios describen C++ como agotador de mantener: muchos estándares (98, 11, 14, 20, 23), funciones superpuestas e idioms radicalmente distintos entre bases de código.
  • Otros sostienen que solo necesitas un subconjunto; los equipos definen sus propios “dialectos”, y con práctica C++ se vuelve natural.
  • Existe la preocupación de que el lenguaje siga acumulando funciones sin retirar las antiguas, aumentando la carga cognitiva.

Biblioteca estándar y ecosistema

  • Hay un fuerte desacuerdo sobre la STL/biblioteca estándar:
    • Un bando la ve como bien diseñada, robusta y más segura que reimplementaciones ad hoc.
    • Otro critica el rendimiento (por ejemplo, regex, unordered_map), las restricciones de ABI, la falta de deprecación y el aumento del tiempo de compilación; los desarrolladores de juegos y audio a menudo la evitan o usan contenedores personalizados.
  • La gestión de paquetes y las herramientas se ven como fragmentadas; algunos consideran esto un inconveniente, otros una característica que desincentiva la proliferación de dependencias.

Comparaciones con otros lenguajes

  • Rust se cita con frecuencia como un lenguaje que captura “lo que funcionaba” de C++ con un mejor “pozo de éxito”, aunque algunos señalan que Rust puede forzar diseños menos intuitivos para estructuras de bajo nivel.
  • C se prefiere en contextos embebidos certificados por seguridad debido a un razonamiento más simple; otros argumentan que los lenguajes modernos con seguridad de memoria serían mejores a largo plazo, pero aún no están certificados.
  • Algunos encuentran C++ elegante y potente para quienes disfrutan de modelos mentales precisos de bajo nivel; otros lo ven como una acumulación incoherente de décadas de ideas.

Seguridad y perspectiva futura

  • Una minoría argumenta que C++ “debe desaparecer” para proyectos nuevos dada la falta de seguridad de memoria por defecto y las herramientas de explotación cada vez más capaces.
  • Otros responden que C++ sigue siendo insuperable para ciertos nichos de rendimiento y sistemas, incluso si otros lenguajes más nuevos son preferibles cuando es posible.