Por que a maioria dos programas do Linux são escritos em C?

28

Por que a maioria dos programas do Linux são escritos em C? Por que eles não são escritos com C ++, o que é mais novo?

    
por hpn 30.10.2011 / 19:19

2 respostas

33

Houve muitas discussões sobre isso. Principalmente, a razão é filosófica. C foi inventado como uma linguagem simples para o desenvolvimento de sistemas (não muito desenvolvimento de aplicativos). Existem muitos argumentos para usar o C ++, mas existem aproximadamente não usando C ++ e permanecendo no C.

No final, é um problema histórico. A maioria das coisas do aplicativo é escrita em C, porque a maioria das coisas do Kernel é escrita em C. E desde então a maioria das coisas foi escrita em C, as pessoas tendem a usar as linguagens originais.

Neste ponto, alguém pode perguntar "OK, então por que é o kernel escrito em C e não portado para o C ++?" . Isso foi discutido no kerneltrap há algum tempo. Uma boa explicação que pode ser citada deste tópico é uma resposta por yoshi314 (citando diretamente):

that's because nearly every c++ app needs a separate c++ standard library to operate. so they would have to port it to kernel, and expect an extra overhead everywhere.

c++ is more complex language and that means that compiler creates more complex code from it. because of that, finding that a problem stems from compiler bug,rather than code error is easier in c.

also c language is more barebone, and it's easier to follow its assembly representation, which is often easy to predict.

c++ is more versatile, but c is more suited for lowlevel or embedded stuff.

Por outro lado, "a maioria dos programas Linux" é bastante enganadora. Dê uma olhada nas aplicações gráficas. O Python está ganhando cada vez mais espaço, especialmente em ambientes GUI no Linux. Sobre a mesma coisa que está acontecendo com o Windows e o .NET.

    
por 30.10.2011 / 19:46
6

Depois de ler o seguinte email de Linus Torvalds, o criador do linux. Não posso deixar de pensar que a resposta acima está incorreta. Ele parece pensar que os programadores de C ++ não são bons programadores de sistemas . E que os recursos extras em C ++ geralmente causam mais problemas a longo prazo em comparação com os benefícios que eles trazem a curto prazo. Enquanto alguém pode discordar dele, é difícil subestimar a influência que ele teve no sistema operacional Linux.

link

    
por 21.06.2016 / 18:48

Tags