paulo1205
(usa Ubuntu)
Enviado em 20/10/2016 - 09:31h
listeiro_037 escreveu:
Uma vez um professor falou que C# era mais padronizado que Java.
Não sei se procede.
Existe um padrão internacional para o C# homologado por um órgão “independente”, que é a ECMA. O padrão para o C# parece ser o ECMA-334.
Já o Java não tem nenhum padrão reconhecido pela indústria. A Oracle é a única detentora das decisões finais sobre a linguagem. A comunidade pode opinar, mas é sempre a Oracle sozinha que bate o martelo.
C# é bom para trabalhar com M$.
Não sabia que OO de C# era tapeação.
Não é tapeação. De quem veio essa crítica?
Você se expressa em OO quando fala com o compilador. Mas nenhuma máquina de baixo nível que eu conheça, seja um processador real, seja um processador de uma máquina virtual como a JVM ou a do .NET, fala nativamente OO. No fim das contas, o que você vai ter por trás de qualquer linguagem de alto nível mais ser um processador que vai fazer operações lógicas e aritméticas, desvios e leitura e escrita em memória.
C# e Java rodam em máquinas virtuais.
Grosseiramente é como se fossem interpretadas.
Esse é o uso típico que delas se faz, mas isso não é uma obrigatoriedade. O gcj, por exemplo, gera código nativo a partir de um programa por padrão
C e C++ rodam direto no hardware.
Também não é necessariamente verdade. Existem interpretadores para C e C++.
C++ tem quase todos os recursos de C.
Até chamam C++ de superconjunto de C.
Isso já foi mais verdadeiro do que hoje. Na medida em que as duas linguagens vão evoluindo, a quantidade de discrepâncias vai aumentando. Por outro lado, depois de anos de “cada um por si” (principalmente no lado do C; bem menos na ala do C++), recentemente os comitês de padronização de cada linguagem se tocaram de que é bom manter contato com o outro lado a fim de evitar incompatibilidades absolutamente gratuitas.
Kernel Linux foi escrito em C.
Costuma-se escrever ferramentas de sistema em C.
Talvez seja por questão de velocidade.
É um mito que C produza código necessariamente mais rápido do que o C++.
O kernel do Linux é em C porque ele foi originalmente escrito em C, e mudar de linguagem no meio do projeto é algo que não faz muito sentido. Mesmo que fizesse, o Linux Torvalds, que não é conhecido por ser compreensivo nem tolerante, tem um ódio pessoal e mortal de C++.
Também os componentes do sistema são majoritariamente escritos em C principalmente porque foram originalmente escritos em C. Também nesse caso existe um bocado de sectarismo: muita gente na comunidade C toma tudo o que não é C como coisa anátema. Felizmente não é assim com todo mundo, e de fato existem hoje componentes do sistema que usam C++ de modo significativo, quer em partes da aplicação, como faz o GCC (e não apenas para gerar código em C++, mas de forma geral), quer na aplicação inteira, como faz o groff.