Vinicius, bom dia... Como já foi falado aqui, orientação a objetos não é uma vantagem tão grande quando estamos falando de sistemas críticos e necessitamos de performance.
Ambas as linguagens tem suas vantagens e desvantagens. A maturidade da linguagem C, incluindo-se aqui suas especificações, além de maior quantidade de documentação e uma comunidade de desenvolvedores muito grande e bem ativa é sem dúvidas um ponto muito forte. Outro fator, que já foi colocado pelos colegas é o custo e risco de reescrever (portar) códigos já existentes em C para C++. Mesmo os exemplos que você utilizou para ilustrar o uso de C++ (Windows, Office) não tem todo o seu código em C++. Por fim, outro ponto preponderante é de fato a performance. Como o Pablo já colocou, toda abstração traz custos. De uma forma bem simplista e digamos "grosseira", um objeto nada mais é que um vetor/struct com ponteiros para variáveis (atributos) e funções (métodos) os quais tem mais uma abstração para outra "camada" de escopo, pois atributos e métodos não podem ser acessados de fora da classe diretamente (sem a necessidade de criação de um objeto), salvo quando os mesmos sejam definidos como estáticos. Dessa forma, tem-se necessidade de mais processamento para tratar tudo isso. Nesse cenário, imagine milhares de instruções sendo executadas e verá que performance é sim um ponto muito importante, principalmente em ambientes críticos. E não cito aqui os micro-dispositivos que possuem pouca capacidade de hardware. Bem, fora isso, tem também o fator "gosto pessoal". Pessoas que foram influenciadas de alguma forma por desenvolvedores ou projetos C, certamente vão preferir a linguagem em detrimento de C++. E o contrário também é verdadeiro. Se você começar com C++, vai ver com maior destaque as vantagens desta em detrimento da linguagem C. Bem, e a título de curiosidade, existe SO implementado em Java (bem, não totalmente implementado em Java, pois o mesmo possui um "nano kernel" escrito em Assembler... rsss) chamado JNode[1]. [1] http://www.jnode.org/ Espero ter contribuído. Att, -- Charly Frankl http://javadevilopers.blogspot.com/ charlyfra...@gmail.com Linux user #391083 "Se você tem uma maçã e eu tenho uma maçã e nós trocamos essas maçãs, então eu e você ainda teremos uma maçã cada. Mas se você tiver uma idéia e eu tiver uma idéia e nós trocamos idéias, então cada um de nós terá duas idéias." George Bernard Shaw (1856-1950) 2009/12/8 Vinicius Santos <vinicius.santos.li...@gmail.com> > Boa noite pessoal, > > Minha dúvida não tem muito a ver necessariamente com PostgreSQL. > > O que eu queria saber é porque a maioria dos "grandes" projetos são > feitos sempre em C ?. Kernel Linux, PostgreSQL, Gnome, Oracle(que eu > saiba). e assim vai... > > Não conheço muito C, porém estou estudando C++, e o autor(Deitel), > apresenta algumas vantagens em relação ao C, como orientação a objetos, > vector, etc. > > Seria mais questão de gosto escolher entre C, C++, ou até Java para > desenvolver um SO, ou um SGBD, ou teria alguma razão em específico ? > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral