Em primeiro lugar, a linguagem C++ é uma linguagem de propósito geral que pode ser utilizada para qualquer finalidade e em qualquer plataforma.
Em segundo lugar, a linguagem C++ é uma linguagem flexível, multiparadigma, seguindo nesse aspecto a tradição da linguagem C: o programador é quem escolhe a técnica de programação que deseja utilizar.
Além das técnicas que já eram suportadas pela linguagem C, C++ permite o uso de Orientação a Objetos e também de Programação Genérica, adaptando-se assim às diferentes necessidades requeridas pela criação de softwares.
Em situações críticas de escassez de memória e pequeno poder de processamento, o programador poderá adotar um estilo de mais baixo nível.
Em outros casos, poderá usar Orientação a Objetos, Programação Genérica ou uma combinação de ambas.
Em terceiro lugar a linguagem C++ é a linguagem de programação mais completa que já foi criada, sendo também uma linguagem altamente expressiva e lógica. E por isso muitas linguagens criadas posteriormente (Java e C#, por exemplo) são inspiradas em C++.
Quem aprende C++ terá assim grande facilidade de aprender novas linguagens, pois C++ criou novos paradigmas, sendo assim um modelo daquilo que esperamos de uma linguagem de programação de propósito geral.
Por isso mesmo é difícil, atualmente, conceber um curso de Ciências da Computação onde C++ estivesse ausente. Tanto pela linguagem em si, como também pela arquitetura de sua Biblioteca Padrão.
Ao contrário de algumas linguagens, C++ não cria restrições ao programador. É ele quem decide se quer correr riscos ou se quer maior segurança no seu código. Há poucas regras arbitrárias em C++ (como também na linguagem C). A maioria dos conceitos e regras de sintaxe são combináveis e aplicáveis por decorrência lógica.
Isto é positivo para o aprendizado de computação e é positivo também em situações em que é necessário extrair o máximo de uma determinada plataforma sem limites ou barreiras.
Evidentemente isso não significa que só se deva programar em C++.
Hoje um programador deve conhecer mais que uma linguagem, pois para determinadas aplicações, determinada linguagem pode ser melhor.
De um modo geral podemos dizer que um programador que dificilmente terá problemas de emprego é aquele que conhece C++, Java e C# (e, eventualmente, alguma ferramenta adicional para gerar interfaces gráficas, além de linguagens de script como python, php ou asp).
Conhecendo C++ o programador tem uma base sólida em programação e, ao mesmo tempo, pode ser empregado em qualquer área (e não apenas gestão/banco de dados) e também em áreas onde só se pode usar a linguagem C (e elas existem) - pois ao aprender C++ ele também saberá programar em C, quando necessário.
Além disso aprenderá facilmente linguagens como Java , C# e mesmo certas linguagens de script, que herdam muito de C e/ou C++.
Por isso eu não afirmo: aprenda somente C++. Não se trata disso.
O que afirmo é que um bom programador é aquele que conhece C++ e, além disso, ao menos mais alguma linguagem.
Base sólida e versatilidade: eis a receita - e que na verdade é a receita de sempre.
Pois isso não é novidade. No passado era comum que uma equipe de programação contasse com muitos programadores Cobol e, além disso, com alguns programadores que além de Cobol também conhecessem Assembler.
O Cobol era mais simples e seguro, mas não podia resolver todos os problemas. Nas emergências e situações críticas era o programador que conhecia Assembler que era acionado.
Naturalmente esse profissional, mais completo e mais versátil tinha melhor remuneração.
E é disso que estou falando. Por tudo isso e por experiência própria, recomendo fortemente o aprendizado de C++.
[1] Comentário enviado por Teixeira em 11/07/2009 - 13:04h
Em termos de aprendizado, é fundamental conhecer lógica de programação, e sou de opinião de que, embora não seja obrigatório, seria interessante conhecer bem uma linguagem de nível baixo/médio e umas duas ou três de alto nivel.
Uma dessas últimas, apenas para fins didáticos, poderia ser o Pascal - isso por causa de sua estrutura purista, que contraria o excesso de liberdade que se possa ter com outras linguagens.
Acho que é importante conhecer os recursos e também as restrições de cada linguagem.
Também acho que, para fins de aprendizado, um bom programador deve TENTAR fazer coisas consideradas absurdas dentro de cada linguagem. Do tipo joguinhos em Cobol ou Paradox, e coisas assim.
Evidentemente, essa prática serve apenas para reforçar a capacidade de raciocínio para resolução de problemas semelhantes.
Realmente nos tempos do Cobol eram muito valorizados os profissionais que TAMBÉM conheciam o Assembly, embora muitos tenham feito seus "pés de meia" programando em RPG-II, que no frigir dos ovos era apenas um gerador de relatórios.
Agora, amigo Basilio, você não gostaria de iniciar uma série didática a respeito do C++?
Acho que seria de uma grande valia para todos nós.