Soy programador en C y C ++, aunque no sigo ninguno de los dos idiomas y escribo una mezcla de los dos. A veces, tener código en las clases, posiblemente con sobrecarga del operador o plantillas, y el STL tan genial es obviamente una mejor manera. A veces, el uso de un puntero de función C simple es mucho más legible y claro. Entonces encuentro belleza y practicidad en ambos idiomas. No quiero entrar en la discusión de "Si los mezcla y compila con un compilador de C ++, ya no es una mezcla, es todo C ++" Creo que todos entendemos lo que quiero decir al mezclarlos. Además, no quiero hablar de C vs C ++, esta pregunta se trata de C ++ 11.
C ++ 11 introduce lo que creo que son cambios significativos en el funcionamiento de C ++, pero ha introducido muchos casos especiales, excepciones e irregularidades que cambian el comportamiento de las diferentes características en diferentes circunstancias, imponiendo restricciones a la herencia múltiple, identificadores que actúan como palabras clave, extensiones de literales de cadena, captura de variables de función lambda, etc.
Sé que en algún momento en el futuro, cuando diga C ++, todos asumirían C ++ 11. Al igual que cuando dices C hoy en día, lo más probable es que te refieras a C99. Eso me hace considerar aprender C ++ 11. Después de todo, si deseo continuar escribiendo código en C ++, es posible que en algún momento necesite comenzar a usar esas funciones simplemente porque mis colegas lo han hecho.
Tome C por ejemplo. Después de tantos años, todavía hay muchas personas aprendiendo y escribiendo código en C. ¿Por qué? Porque el lenguaje es bueno. Lo que significa es que sigue muchas de las reglas para crear un buen lenguaje de programación. Entonces, además de ser potente (fácil o difícil, casi todos los lenguajes de programación lo son), C es regular y tiene pocas excepciones, si es que tiene alguna. C ++ 11 sin embargo, no lo creo. No estoy seguro de que los cambios introducidos en C ++ 11 estén mejorando el lenguaje.
Entonces la pregunta es: ¿Por qué aprendería C ++ 11?