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.
Deitel não é a editora? > > 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 ? Não diria que é bem uma questão de gosto. Apesar de C ser muito mais difícil do que outra linguagem como Java, não seria possível desenvolver o postgres com a atual performance usando-se Java. Poderia ser usado C++, porem, por problemas de padronização que citarei abaixo, é melhor ser o C mesmo. O C é mais usado por causa das padronizações que são mais estáveis. Os padrões basicamente definem o comportamento esperado pela linguagem e as bibliotecas básicas que deve conter. Assim, qualquer um poderá criar um compilador para qualquer arquitetura seguindo os padrões. Por exemplo, para compilar o postgres você precisa de um compilador que implementa as especificações do ANSI C89. [1] O 89 quer dizer o ano da publicação, sendo assim, o padrão já possui 20 anos. Se não me engano, a primeira especificação do C++ é de 98 e as seguintes são muito mais recentes e assim menos em uso ou com implementações imaturas. [2] C++ é o C com suporte ao paradigma da programação orientada a objetos. Todas as características encontradas no C são encontradas no C++. O problema dos padrões do C++ faz pesar a escolha para o C. Pode parecer besteira, mas quando você precisar desenvolver algo grande (como o Postgres) deverá pensar nisso. C é leve porque é minimalista. Encontramos implementados apenas as instruções básicas. Como instruções condicionais (if, switch) e loops (for, do, while), etc... Até para coisas básicas precisamos importar as bibliotecas necessárias que contem as funções que precisamos. Por exemplo: Se você quiser pegar um texto digitado no teclado precisará incluir a biblioteca stdio.h que possui as funções para esta tarefa. C e C++ são compilados de verdade, com instruções entendidas diretamente pelo processador alvo, não apenas mastigado para uma VM como no java. Essas são minhas observações, tenho certeza que você conseguirá encontrar mais referências para este assunto. [1] http://en.wikipedia.org/wiki/ANSI_C [2] http://en.wikipedia.org/wiki/C%2B%2B0x -- Tarcisio F. Sassara _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral