¿Qué partes de C ++ (utilizadas en aplicaciones industriales, de rendimiento crítico, SO, etc.) lo convierten en el lenguaje más difícil de dominar?

El problema radica en la cantidad de dificultades asociadas con el poder bruto de C ++. Si bien la sintaxis es generalmente fácil de entender y comprender, son las sutilezas de la gramática del lenguaje lo que atrapa a los principiantes con la guardia baja.

La mayor dificultad con C ++ (que heredó de C) es el uso de punteros. Tan poderosos como son, hay tantos programadores que simplemente no entienden cómo usarlos adecuadamente y comienzas a terminar con punteros unificados y colgantes, los cuales tienen el efecto general de hacer que tu programa funcione inesperadamente.

Más allá de las trampas simples está la naturaleza OOP de C ++. Muchas veces, los principiantes usan mal y abusan de las clases y sus características más poderosas: herencia y polimorfismo. Combine esto con el abuso de punteros y tendrá una receta para el desastre.

Además de todo esto, la administración de memoria de bajo nivel, las operaciones bit a bit y la sobrecarga del operador pueden ser muy confusas. Sin embargo, gran parte de la gestión de la memoria se realiza fácilmente mediante el uso de la biblioteca de plantillas estándar (STL), pero su sintaxis puede ser bastante intimidante para los unificados.

En resumen, C ++ no es un lenguaje difícil de aprender. Es un lenguaje difícil de dominar debido a todas sus sutilezas.

Feliz codificación 🙂

Punteros y plantillas.

Industrial pro C ++ es como el béisbol profesional. Donde C #, Java, Python, etc. son como softball intramuros.

Es mucho menos probable que te lastimes jugando softball intramural y cualquiera puede hacerlo si pasas un tiempo aprendiendo lo básico. Esos mismos conceptos básicos se pueden usar para comprender lo que está sucediendo en el béisbol profesional, pero al 99.99% de nosotros no se nos pagará por jugar béisbol profesional.