No puede rediseñar C ++, porque lo que haga entonces no es compatible con el código de C ++ heredado. Puedes entender C ++, entender la idea detrás de C ++ y entender qué legado está perturbando esa idea. A veces se llamaba a Java como C ++ sin el legado. Eso está mal, Java es otra idea escrita en una sintaxis que es similar a C ++. C # es una evolución de esta idea que se acerca a C ++. Lo que se describe como legado en Java es necesario. Así que C # lo puso de nuevo. Pero C # es todavía otra idea. Java y C # tienen un entorno completamente diferente en comparación con C ++.
Si miras a tu alrededor, verás muchos lenguajes basados en la sintaxis de C y C ++. Y con diferentes ideas.
Comprender la idea de C ++ le permite volver a implementar la idea de C ++ en otra sintaxis, que podría ser más fácil y más robusta. Por lo tanto, es posible que tenga un bloqueo en Rust que está realizando buenos pasos en la dirección correcta.
Una cosa muy importante además de eso: C ++ es fácil de entender. En realidad diría que es más fácil que Java. Porque puedes pensar y expresar (la mayoría de) tus pensamientos en C ++. También tienes que entender la corrección constante en Java. Pero en Java no puedes expresar esto. No puede decir “No le permito que cambie un valor en mi registro de datos cuando se lo entrego a usted como parámetro”. Solo puede aprender este concepto cuando lo depura y comprende que preferiría expresarlo al compilador. Tienes que aprender ese concepto de la manera más difícil.
- ¿Es difícil aprender el aprendizaje automático? Conozco Python básico y matemáticas básicas.
- Cómo mantenerte motivado mientras aprendes algo que no te gusta
- Cómo empezar a aprender sobre redes neuronales.
- Cómo llegar a ser socialmente seguro y un aprendiz rápido
- ¿Dónde debo empezar a aprender lenguajes de computadora?
Aprender a escribir software confiable es una manera larga y difícil. Lleva años. Y describiría C ++ como una abreviatura. Eso hace que C ++ no sea más fácil. Pero ocultar las trampas tampoco facilita las cosas. La diferencia es que con Java o C # caes en estas trampas cuando el software se hace grande. Cuando se entera de que los diámetros no son posibles en C # y tiene un trabajo difícil para depurar un diamante real en C #. Primero, no tienes experiencia con los diamantes y has aprendido que no son posibles en C #. Son posibles o han sido posibles al menos. Y entender este concepto en C # es mucho peor que entender este concepto en C ++, donde el compilador le informa sobre las ambivalencias y le da la oportunidad de expresar “No quiero eso como un diamante”. O la oportunidad de usar ese diamante como característica. Por supuesto, es más difícil entender una estructura de diamante que simplemente ignorarla. Ignorar las cosas no las hace más fáciles. Si no aprendes cosas no es más fácil aprender. Simplemente no aprendes algo. No aprender no es la forma en que el aprendizaje funciona o se vuelve más fácil.
No tienes una recolección de basura. No tienes que aprender cuándo funciona la recolección de basura y cuándo no. O si esto puede resultar en problemas de tiempo de ejecución para aplicaciones en tiempo real. Simplemente no tienes estos problemas en C ++. Lo que no significa que tenga que renunciar a la desasignación automática de memoria. Su basura puede ser eliminada automáticamente. En C ++ simplemente no lo recogemos.
Si quieres aprender recomiendo C ++, porque allí puedes expresar estos pensamientos. Encontrará literatura y tutoriales sobre estos temas porque hay programadores profesionales que pueden hablar sobre estos temas en un idioma donde pueden mostrarle el significado de estos temas y expresar la solución predeterminada y las diferentes soluciones especializadas para sus requisitos individuales.
No puedes aprender programación genérica en Java o C #. Puedes aprender a crear contenedores genéricos con Java o C #. Y tan pronto como desee escribir software genérico, debe cambiar a C ++.
Entonces, ¿por qué tomar un desvío con Java o C # si quieres aprender?
Si desea aprender, acepte el hecho de que tiene que aprender y lo que sea nuevo para usted parece ser complicado al principio. C ++ no le permite una comprensión virtual. No hay ninguna máquina virtual a continuación. Su metal desnudo debajo. Si fallas te estrellas en el suelo. No hay excuseMe para atrapar. Allí aprendes a hacer cosas que funcionan de manera confiable sin excepción. Aprende a pensar en ello en lugar de lanzar una excepción IllegalArgumentException si ahora no sabes qué hacer.