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

Responder a