Siempre creo que estas preguntas están mal planteadas.
¿Es C++ un buen lenguaje?
Si, es moderno, en constante evolución, es posible usarlo libre sin pagar licencias, se puede hacer literalmente cualquier cosa y algo muy importante: requiere para dominarlo el entender dos paradigmas de programación: La programación imperativa y la programación orientada al objeto.
La segunda es posiblemente mas liosa, difícil de entender y "puñetera", pero le da una enorme potencia a ese lenguaje.
Pero ojo, el que valga "para todo" no quiere decir que sea siempre la mejor herramienta. Si algo no tiene sentido es inventar la rueda a cada paso, cuando la rueda ya está inventada. Hay lenguajes que se adaptan mas fácilmente a algunas cosas que otros. C ++ permite programas compactos, rápidos y potentes con un control de la memoria utilizada muy estricto.
Pero, si lo comparamos con Java por ejemplo, aparentemente son el día y la noche. Uno se interpreta en una maquina virtual, el otro se compila para cada plataforma. Uno es orientado a objetos, el otro usa dos paradigmas. Luego nos encontramos con la curiosidad de que la sintaxis es muy parecida
Pero no es lo mismo si quieres hacer un programa que corra en varias plataformas o en una sola (ahí Java gana de cabeza) que un programa que pruebe combinaciones de pliegue de moléculas (calculo intensivo, C++ gana por goleada), que un programa que funcione en un servidor de internet (Java te da facilidades para eso) o un programa que controle una impresora 3D.
Muchas veces lo interesante es saber programar, y saber programar lo mejor posible, conociendo diferentes paradigmas de programación.
Una vez que eso lo domines, en realidad el usar un lenguaje u otro en muchos casos será simplemente cuestión de manual y dominar la sintaxis.
Solo le veo una pega al C++ a la hora de aprender, y es que si la cagas... la cagas. La depuración es algo mas complicada que con otros lenguajes, pero eso es en buena medida inherente a su condición de lenguaje compilado.
Supongamos que necesitas un programa que corra en un servidor FTP y que controle los tipos de ficheros que llegan al mismo, que te avise al alcanzar ciertos límites, que comprima automáticamente a determinadas horas solo un tipo de ficheros, etc, y que se ejecute literalmente varias veces por minuto.
C++ te conviene mas.
Supongamos que quieres hacer un juego para movil... posiblemente Java te resulte mas sencillo y tendrás la ventaja de que hacerlo multiplataforma es increiblemente sencillo.
Cada trabajo tiene su herramienta. No clavas clavos en una pared con el destornillador, y tampoco metes un tornillo con unas alicates.
¿Es C++ un buen lenguaje?
Si, es moderno, en constante evolución, es posible usarlo libre sin pagar licencias, se puede hacer literalmente cualquier cosa y algo muy importante: requiere para dominarlo el entender dos paradigmas de programación: La programación imperativa y la programación orientada al objeto.
La segunda es posiblemente mas liosa, difícil de entender y "puñetera", pero le da una enorme potencia a ese lenguaje.
Pero ojo, el que valga "para todo" no quiere decir que sea siempre la mejor herramienta. Si algo no tiene sentido es inventar la rueda a cada paso, cuando la rueda ya está inventada. Hay lenguajes que se adaptan mas fácilmente a algunas cosas que otros. C ++ permite programas compactos, rápidos y potentes con un control de la memoria utilizada muy estricto.
Pero, si lo comparamos con Java por ejemplo, aparentemente son el día y la noche. Uno se interpreta en una maquina virtual, el otro se compila para cada plataforma. Uno es orientado a objetos, el otro usa dos paradigmas. Luego nos encontramos con la curiosidad de que la sintaxis es muy parecida
Pero no es lo mismo si quieres hacer un programa que corra en varias plataformas o en una sola (ahí Java gana de cabeza) que un programa que pruebe combinaciones de pliegue de moléculas (calculo intensivo, C++ gana por goleada), que un programa que funcione en un servidor de internet (Java te da facilidades para eso) o un programa que controle una impresora 3D.
Muchas veces lo interesante es saber programar, y saber programar lo mejor posible, conociendo diferentes paradigmas de programación.
Una vez que eso lo domines, en realidad el usar un lenguaje u otro en muchos casos será simplemente cuestión de manual y dominar la sintaxis.
Solo le veo una pega al C++ a la hora de aprender, y es que si la cagas... la cagas. La depuración es algo mas complicada que con otros lenguajes, pero eso es en buena medida inherente a su condición de lenguaje compilado.
Supongamos que necesitas un programa que corra en un servidor FTP y que controle los tipos de ficheros que llegan al mismo, que te avise al alcanzar ciertos límites, que comprima automáticamente a determinadas horas solo un tipo de ficheros, etc, y que se ejecute literalmente varias veces por minuto.
C++ te conviene mas.
Supongamos que quieres hacer un juego para movil... posiblemente Java te resulte mas sencillo y tendrás la ventaja de que hacerlo multiplataforma es increiblemente sencillo.
Cada trabajo tiene su herramienta. No clavas clavos en una pared con el destornillador, y tampoco metes un tornillo con unas alicates.