8 puntos por xguru 2022-09-27 | 6 comentarios | Compartir por WhatsApp
  • El equipo de Google Chrome enumera unos 40 problemas que aparecen al adoptar C++20 y organiza sus soluciones
  • El estándar de C++ sale cada 3 años, y en Chrome su primera aplicación llega recién 3 años después del lanzamiento
  • C++20 trae muchos cambios
    • funciones descontinuadas, reordenamiento de operadores de comparación, cambios en las reglas de agregación...
  • Problemas
    • La guía de estilo de Google está basada en C++17
    • El soporte de C++20 en Clang está incompleto y requiere un libc++ más nuevo
    • Los binarios de Windows aumentan de tamaño
    • Se descontinúa el soporte de std::iterator (desde C++17)
    • Se agregan nuevas palabras clave como concept y requires, lo que genera conflictos si ya existen como nombres de variables
    • Y muchos más

6 comentarios

 
galadbran 2022-09-27

Eh… ¿no se supone que un lenguaje del nivel de C++ no debería generar tantos cambios incompatibles?… ¿O solo es una idea fija mía?…

 
qwery 2022-09-28

Por eso C++ es un lenguaje raro... El lenguaje sigue actualizándose y le agregan módulos, corrutinas y un montón de cosas más, como si quisiera hacerlo todo, y cuando sale una función, los compiladores la incorporan 4 o 5 años después, y hay diferencias entre lo que puede hacer cada compilador, además de pequeñas diferencias de sintaxis, y con cada actualización van desapareciendo poco a poco cosas que uno usaba bien, y la STL se hace más grande y, con las nuevas versiones, ya no corre en computadoras de la vieja escuela... Si van a usar algo, la verdad les diría que usen Go o Python.

 
heal9179 2022-09-28

Los elementos en los que no se mantuvo la compatibilidad hacia atrás al subir de versión
son, en su mayoría, casos en los que se mejoraron comportamientos indefinidos o funciones con defectos.
Funciones como módulos, conceptos y corrutinas muestran que el lenguaje sigue evolucionando, igual que otros lenguajes.
En particular, en el caso de los módulos, era un requisito que ya se venía pidiendo desde antes.

 
functor 2022-09-29

No estoy seguro de si la descontinuación del soporte para std::iterator entra en lo que usted mencionó de “mejorar funciones con comportamiento indefinido o defectos”.

 
heal9179 2022-09-28

Sin embargo, los puntos en los que C++ se queda atrás frente a otros lenguajes son, en gran medida, los siguientes.

  1. Gestor de paquetes
  2. Fragmentación de compiladores
  3. Forma de compilación compleja (requiere aprender adicionalmente Make y CMake)
  4. Desinterés de la comunidad

De estos, creo que el gran problema es que, debido al desinterés de la comunidad, hay muy pocos artículos de buena calidad y, por la poca cantidad de usuarios, los otros tres problemas no se resuelven.

 
deokim 2022-09-28
  • rust