paulo1205
(usa Ubuntu)
Enviado em 30/07/2017 - 07:09h
TL;DR: A linguagem que você deve usar depende de o que você quer fazer. Nunca se prenda a uma linguagem só, e aprenda a usar bem as que você aprender, para saber quando usá-las e, principalmente, quando não as usar.
Resposta longa:
Acho que a questão está colocada com alguns problemas.
Para começar, o título fala de uma coisa (C++), e o corpo da pergunta fala de uma outra que, na verdade, não existe como entidade única (C/C++), mas sim como duas entidades separadas (C,de um lado, e C++, de outro), embora relacionadas historicamente. Fala de “C/C++”, mas com verbo no plural, e também só de C. Esse uso confuso dos termos dificulta um pouco a resposta.
A separação entre C e C++ é especialmente relevante no que diz respeito aos caminhos evolutivos de cada uma. Até por conta disso, é temerário dizer que “
C/C++ estão “paradas no tempo””. Sob que ponto de vista?
Eu até concordo que C evolui pouco e lentamente. E o último padrão, de 2011, em parte desfez algumas coisas meio ousadas (e descabidas) impostas pelo padrão 1999. Mas, sinceramente, dado o propósito de C, não tem muito o que se fazer em termos de evolução da linguagem em si. A linguagem é simples e tem o propósito de executar próxima do nível de máquina, quase que como um Assembly de um pouco mais alto nível. Eu só vislumbro evoluções para C, no nível da linguagem, que façam com que ela faça de um jeito mais genérico ou mais apurado aquilo que ela já se propõe a fazer. No nível de sua biblioteca pode haver mais espaço para evolução, mas talvez não muito mais, já que também a biblioteca já foi pensada para um computador genérico. Se você acrescentar recursos novos a C, ela vai virar outra coisa (já aconteceu no passado, e produziu resultados como C++, Objective-C, D etc.), e acrescentar recursos novos à biblioteca traz o risco de reduzir sua generalidade ou aumentar muito sua complexidade.
C++ é um pouco diferente porque, embora se preocupe com eficiência e generalidade, como sua irmã C, a linguagem sempre teve o objetivo de ser capaz de expressar bem conceitos que facilitem a vida do criador de sistemas Isso fez, no passado, com que ela adotasse elementos de OO, exceções, programação genérica, segregação em
namespaces etc., e abre espaço para a incorporação de novos conceitos. Só em termos de padrões publicados recentemente (menos de 10 anos), C++ teve versões publicadas em 2011 e 2014 e deve ter um saindo ainda este ano (o rascunho da forma final foi proposto em março). Fora da padronização, existe uma quantidade gigantesca de bibliotecas disponíveis, para uso em diversas áreas, e em constante evolução.
(Continuo a resposta mais tarde. Preciso sair agora.)