Para proyectos pequeños, C ++ 11 se introdujo gradualmente poco después de que el soporte del compilador confiable estuviera disponible para al menos nuevas funciones básicas (alrededor de 2012). Como puede imaginar, la infraestructura de compilación / linting de toda la empresa y las guías de estilo de codificación tuvieron que actualizarse, pero lleva tiempo evaluar el impacto de algunas características en bases de código grandes y su compatibilidad con prácticas y pautas anteriores. Por ejemplo, muchas compañías compensaron la falta de tablas hash en C ++ 03 introduciendo tablas hash estándar para toda la compañía. Ahora que C ++ 11 tiene unordered_set y unordered_map, estas nuevas plantillas pueden introducir inconsistencias con las tablas hash antiguas. Sin embargo, para nuevos proyectos, son geniales.
Las listas de inicializadores, la palabra clave automática , los bucles de rango, constexpr y las mejoras menores de sintaxis (como el análisis correcto del vector <vector >) parecen victorias tan claras en C ++ 11, que su adopción ha sido rápida. Las características más complicadas como lambdas, valores y soporte para programación paralela requieren un esfuerzo mucho mayor para comprender y usar correctamente. Tampoco ayudó que el soporte para programación paralela tuviera algunos inconvenientes en g ++ (no estoy seguro acerca de otros compiladores). Y la biblioteca de expresiones regulares no fue realmente compatible con g ++ / stdlibc ++ por un tiempo. Además de la calidad del soporte del compilador, desea verificar qué tan bien se optimiza el código nuevo, aunque la optimización generalmente mejora con el tiempo.
En Michigan, enseñé algoritmos y estructuras de datos con C ++ 11 en AY 2012-13, y me sorprendió lo entusiasmados que estaban los estudiantes con respecto a C ++ 11 (hasta el punto en que tuve que disuadirlos de utilizar unororde_mapa donde no era necesario). ) Supongo que la lógica es que C ++ 11 simplifica la programación y brinda una ventaja competitiva en el mercado laboral.
- ¿Puedo usar cualquier lenguaje de programación para codificar mis propias cosas sin cargo?
- ¿Se puede usar una tarjeta de memoria como RAM? Si es así, como lo haces?
- Si he escrito una tarea pequeña y repetida (ligeramente diferente), ¿debería hacer que sea una función si requeriría 8 parámetros o repetir el código?
- Actualmente estoy trabajando como desarrollador de software, ¿cómo puedo convertirme en gerente de producto?
- Como programador, ¿está bien comenzar mi propia empresa de desarrollo web / software sin inversión?