História
O C++ foi
inicialmente desenvolvido por Bjarne Stroustrup dos Bell Labs durante a década
de 1980 com o objectivo de melhorar a linguagem de programação C ainda que
mantendo máxima compatibilidade. Stroustrup percebeu que a linguagem Simula
possuía características bastante úteis para o desenvolvimento de software, mas
era muito lenta para uso prático. Por outro lado, a linguagem BCPL era rápida,
mas possuía demasiado baixo nível, dificultando sua utilização em
desenvolvimento de aplicações. Durante seu período na Bell Labs, ele enfrentou
o problema de analisar o kernel UNIX com respeito à computação distribuída. A
partir de sua experiência de doutorado, começou a acrescentar elementos do
Simula no C. O C foi escolhido como base de desenvolvimento da nova linguagem
pois possuía uma proposta de uso genérico, era rápido e também portável para
diversas plataformas. Algumas outras linguagens que também serviram de
inspiração para o cientista da computação foram ALGOL 68, Ada, CLU e ML.
Ainda em 1983 o nome da linguagem foi
alterado de C with Classes para C++. Novas características foram adicionadas,
como funções virtuais, sobrecarga de operadores e funções, referências,
constantes, gerenciamento manual de memória, melhorias na verificação de tipo
de dado e estilo de comentário de código de uma linha (//). Em 1985 foi lançada
a primeira edição do livro The C++ Programming Language, contendo referências
para a utilização da linguagem, já que ainda não era uma norma oficial. A
primeira versão comercial foi lançada em outubro do mesmo ano. Em 1989 a
segunda versão foi lançada, contendo novas características como herança
múltipla, classes abstratas, métodos estáticos, métodos constantes e membros
protegidos, incrementando o suporte a orientação a objeto. Em 1990 foi lançado
o livro The Annotated C++ Reference Manual, que tornou-se base para o futuro
padrão. Outras adições na linguagem incluem templates, tratamento de exceções,
espaço de nomes, conversão segura de tipo de dado e o tipo booleano.
Assim como a linguagem, sua
biblioteca padrão também sofreu melhorias ao longo do tempo. Sua primeira
adição foi a biblioteca de E/S, e posteriormente a Standard Template Library
(STL); ambas tornaram-se algumas das principais funcionalidades que
distanciaram a linguagem em relação a C. Criada primordialmente na HP por
Alexander Stepanov no início da década de 1990 para explorar os potenciais da
programação genérica, a STL foi apresentada a um comitê unificado ANSI e ISO em
1993 à convite de Andrew Koenig. Após uma proposta formal na reunião do ano
seguinte, a biblioteca recebe o aval do comitê.
Depois de anos de trabalho, o mesmo comitê ANSI/ISO padronizou o C++ em 1998 (ISO/IEC 14882:1998). Após alguns anos foram reportados defeitos e imprecisões no documento, e uma correção foi lançada em 2003.
Depois de anos de trabalho, o mesmo comitê ANSI/ISO padronizou o C++ em 1998 (ISO/IEC 14882:1998). Após alguns anos foram reportados defeitos e imprecisões no documento, e uma correção foi lançada em 2003.
Por muito tempo, o C++ foi encarado
como um superconjunto do C (uma discussão sobre o tema encontra-se abaixo na
seção de incompatibilidades). Entretanto, em 1999 o novo padrão ISO para a
linguagem C tornou as duas linguagens ainda mais diferentes entre si. Devido a
essas incompatibilidades, muitas empresas que desenvolvem compiladores não
oferecem suporte à versão mais recente da linguagem C.
Pode-se dizer que C++ foi a única linguagem entre tantas outras que obteve sucesso como uma sucessora à linguagem C, inclusive servindo de inspiração para outras linguagens como Java, a IDL de CORBA e C#.
Pode-se dizer que C++ foi a única linguagem entre tantas outras que obteve sucesso como uma sucessora à linguagem C, inclusive servindo de inspiração para outras linguagens como Java, a IDL de CORBA e C#.
O nome C++
Durante sua fase inicial de
desenvolvimento, a linguagem era chamada "novo C" ou ainda "C
com classes". O termo "C++" é creditado a Rick Mascitti[6], e
foi utilizado pela primeira vez em dezembro de 1983. Ele é uma referência ao
operador de incremento ++, significando um acréscimo (uma evolução) à linguagem
C. Em tom humorado, desenvolvedores software e especialistas em informática no
início da década de 1990 costumavam relacionar o ++ do nome à grande
insistência dos programadores em utilizar o C++ da mesma forma que a linguagem
C, não usufruindo das novas facilidades que a linguagem poderia fornecer. Assim
como o ++ estava sendo aplicado de maneira pós-fixa à letra C, a linguagem C++
era uma evolução do C pós-fixada, que só tornar-se-ia realidade em algum futuro
remoto, não naquele momento.
Vantagens e
Desvantagens
Vantagens
- Produção
de código o quanto mais eficiente possível.
- Possibilidade
em programação de alto e baixo nível.
- Alta
flexibilidade, portabilidade e consistência.
- Adequado
para grandes projetos.
- Ampla
disponibilidade e suporte, devido principalmente à grande base de
desenvolvedores.
- Não
está sob o domínio de uma empresa (em contraste do Java — Sun ou Visual
Basic — Microsoft).
- Padronização
pela ISO.
- Grandes
possibilidades para a meta programação e programação genérica.
- Compatibilidade
com C, resultando em vasta base de códigos.
Desvantagens
- Compatibilidade
com o C herdou os problemas de entendimento de sintaxe do mesmo.
- Os
compiladores atuais nem sempre produzem o código mais otimizado, tanto em
velocidade quando tamanho do código.
- Grande
período para o aprendizado.
- A
biblioteca padrão não cobre áreas importantes da programação, como
threads, conexões TCP/IP, interface gráfica e manipulação de sistemas de
arquivos, o que implica na necessidade de criação de bibliotecas próprias
para tal, que pecam em portabilidade.
- Devido
à grande flexibilidade no desenvolvimento, é recomendado o uso de padrões
de programação mais amplamente que em outras linguagens.
Pessoas Notáveis
O desenvolvimento da linguagem C++ é
fruto do trabalho de milhares de pessoas associadas à academia e à indústria de
software, e pode consistir na utilização da linguagem, em seu ensino, na
construção de bibliotecas de rotinas ou na participação no comitê de
padronização, entre outras atividades. Algumas pessoas tiveram participação
fundamental durante a história para o desenvolvimento[26]. Primeiramente, o
próprio Bjarne Stroustrup, criador da linguagem e de seu primeiro compilador. O
cientista ainda participa na padronização e divulga o C++ no meio acadêmico.
Andrew Koenig é outro pesquisador notável, bastante atuante na padronização e
creditado pela técnica Koenig lookup, demonstrada acima. Já Scott Meyers é um
doutor em ciência da computação, e escritor de diversos livros sobre o
desenvolvimento de software utilizando a linguagem. Assim como Meyers, Herb
Sutter é escritor de diversos livros sobre C++ e centenas de colunas e artigos,
e um notável pesquisador sobre programação concorrente e multitarefa. Andrei
Alexandrescu é considerado um dos maiores especialistas em programação C++
avançada. Na área de programação genérica destaca-se o programador russo
Alexander Stepanov, a figura chave na criação da Standard Template Library.
Retirado de: http://www.tiexpert.net/programacao/c/introducao-cpp.php
0 comentários: