All Rights ReservedView Non-AMP Version
Preprod IT Forum
  • Homepage
  • CIO
Notícias

Por que a linguagem de programação C ainda está em alta?

Nenhuma tecnologia se mantém viva por 50 anos, a não ser que ela faça o seu trabalho muito bem. A linguagem de programação C está na ativa desde 1972, e ainda reina como um dos elementos fundamentais do mundo do software. Em alguns casos, determinada tecnologia sobrevive porque as pessoas simplesmente não conseguem substituí-la. Nas últimas décadas, dezenas de outras linguagens surgiram – algumas projetadas explicitamente para desafiar o C, outras se destacando como um subproduto de sua popularidade.

Não é difícil dizer que o C precisa ser substituído. As práticas de pesquisa de linguagem de programação e desenvolvimento de software sugerem que existem maneiras muito melhores de trabalhar. No entanto, o C persiste da mesma forma, com décadas de pesquisa e desenvolvimento por trás disso. No final das contas, poucas linguagens conseguem superar o seu desempenho. Ainda assim, vale a pena ver como o C se compara à concorrência.

As melhores notícias de tecnologia B2B
Acompanhe todas as novidades diretamente na sua caixa de entrada

C vs. C++

Naturalmente, o C é comparado com o C++, a linguagem que – como o próprio nome indica – foi criada como uma extensão do C. As diferenças entre C++ e C podem ser caracterizadas como extensas ou excessivas, dependendo de quem for falar sobre o assunto.

Embora ainda seja semelhante ao C em sua sintaxe e abordagem, o C++ fornece muitos recursos genuinamente úteis que não estão disponíveis nativamente no C: espaços para nome, modelos, exceções, gerenciamento automático de memória e assim por diante. Projetos que exigem desempenho de alto nível – bancos de dados, sistemas de aprendizado de máquina – são frequentemente escritos em C++ usando esses recursos para extrair ao máximo o desempenho do sistema.

Além disso, o C++ continua a se expandir muito mais intensamente que o C. O próximo C++ 20 traz ainda mais recursos, incluindo módulos, biblioteca de sincronização e conceitos que facilitam o seu uso. A revisão mais recente do padrão C adicionou poucas novidades e se concentrou apenas em manter a compatibilidade com versões anteriores.

O problema é que todas as vantagens do C++ também podem funcionar como desvantagens. Quanto mais recursos C++ você usa, mais complexidade você apresenta e mais difícil fica domar os resultados. Os desenvolvedores que se limitam a um subconjunto de C++ podem evitar muitas de suas piores armadilhas e excessos. A equipe de desenvolvimento do kernel Linux, por exemplo, evita o C++.

Escolher C em vez de C++ é uma maneira de você evitar ter que lidar com excessos do C++, adotando um minimalismo imposto. Obviamente, o C++ possui um rico conjunto de recursos de alto nível por um bom motivo. Mas se o minimalismo é mais adequado para projetos atuais e futuros, então o C faz mais sentido.

C vs. Java

Após décadas, o Java continua a ser um dos destaques no desenvolvimento de software corporativo. Muitos dos projetos mais importantes foram escritos em Java – incluindo a grande maioria dos projetos da Apache Software Foundation.

A sintaxe Java empresta muito do C e C++. Ao contrário do C, porém, o Java não compila por padrão o código nativo. Em vez disso, o Java Runtime Environment, o JVM, JIT (just-in-time) compila o código Java para execução no ambiente de destino. Sob as circunstâncias certas, o código Java JITted pode se aproximar ou até exceder o desempenho de C.

A filosofia “escreva uma vez, execute em qualquer lugar” por trás do Java também permite que os programas trabalhem com pouco ajustes. Por outro lado, embora o C tenha sido desenvolvido para muitas arquiteturas, qualquer programa em C ainda pode precisar de personalização para ser executado corretamente.

Essa combinação de portabilidade e forte desempenho, juntamente com um enorme ecossistema de bibliotecas e estruturas de software, tornam o Java uma linguagem ideal para a criação de aplicativos corporativos.

Entretanto, o Java fica aquém do C em uma área em que nunca teve a intenção de competir: trabalhando diretamente com hardware. O Java é compilado no bytecode, que é um código intermediário que o interpretador da JVM converte em código. Além disso, embora o gerenciamento automático de memória do Java seja uma bênção na maioria das circunstâncias, o C é mais adequado para programas que devem fazer o uso ideal de recursos limitados de memória.

Há também algumas áreas em que o Java pode se aproximar do C em termos de velocidade. O mecanismo JIT da JVM otimiza o tempo de execução com base no comportamento do programa, permitindo muitas classes de melhorias que não são possíveis com o C.

C vs. Python

Hoje em dia, sempre que a conversa é sobre desenvolvimento de software, o Python sempre parece entrar na conversa. Afinal, o Python é “a segunda melhor linguagem para tudo” e, inquestionavelmente, uma das mais versáteis, com milhares de bibliotecas de terceiros disponíveis.

O que o Python enfatiza, e onde mais difere do C, é no favorecimento da velocidade de desenvolvimento em detrimento da velocidade de execução. Um programa que pode levar uma hora para ser montado em outra linguagem – como C – pode ser criado em Python em minutos. Por outro lado, esse programa pode levar alguns segundos para ser executado em C, mas um minuto para ser executado em Python. Mas, para muitos trabalhos em hardware moderno, o Python é rápido o suficiente, e isso foi fundamental para sua aceitação.

Outra grande diferença é o gerenciamento de memória. Os programas Python são totalmente gerenciados no tempo de execução para que os desenvolvedores não precisem se preocupar com os detalhes da alocação e liberação de memória. Mas aqui novamente, a facilidade do desenvolvedor custa o desempenho do tempo de execução. Escrever programas em C requer atenção ao gerenciamento de memória, mas os programas resultantes costumam ser o padrão ouro para a velocidade da máquina.

Por trás das aparências, porém, Python e C compartilham uma conexão profunda: o tempo de execução do Python de referência é escrito em C. Isso permite que os programas Python agrupem bibliotecas escritas em C e C++. Pedaços significativos do ecossistema Python de bibliotecas de terceiros, como para aprendizado de máquina, têm o código C em seu núcleo.

Se a velocidade do desenvolvimento importa mais do que a velocidade da execução, e se a maioria das partes com desempenho do programa pode ser isolada em componentes independentes, o Python puro ou uma mistura de bibliotecas Python e C podem ser uma escolha melhor do que usar o C sozinho. Caso contrário, o C ainda prevalece.

Next Apple, Google e Amazon são as marcas mais valiosas do mundo »
Previous « Educação das gerações Alfa e Z exige vivência em Edge Computing e 5G
Leave a Comment
Share
Published by
Redação
Tags: linguagens programaçãoProgramaçãoPython
7 anos ago

    Related Post

  • Novos executivos da semana: Uncover, Tech for Humans, Diebold Nixdorf, Unico e mais
  • Se o Brasil não organizar seus dados culturais, outro fará isso por nós, alerta Jorge Brivilati
  • CBYK nomeia Maurício Matsuda como novo CEO

Recent Posts

  • Notícias

83% dos CIOs já adiaram projetos estratégicos por restrições de orçamento

A pressão por controle de custos vem alterando a dinâmica das áreas de tecnologia nas…

6 dias ago
  • Estudos

Fintechs brasileiras captam US$ 2,77 bi em 2025 e entram em nova fase de maturidade

O mercado brasileiro de fintechs passou por uma transformação no perfil dos investimentos em 2025.…

7 dias ago
  • Notícias

Sioux aposta em IA e dados para nova fase de experiências digitais e expande atuação para a Europa

O avanço da inteligência artificial e o uso estratégico de dados vêm transformando a forma…

7 dias ago
  • Artigos

Qual é o risco do desenvolvimento de software com IA?

Por Ramon Ribeiro Quase metade do código produzido por assistentes de inteligência artificial contém vulnerabilidades…

7 dias ago
  • Notícias

Se o Brasil não organizar seus dados culturais, outro fará isso por nós, alerta Jorge Brivilati

Peça a um modelo de inteligência artificial que gere a imagem de uma cidade, sem…

7 dias ago
  • Notícias

Novos executivos da semana: Uncover, Tech for Humans, Diebold Nixdorf, Unico e mais

O IT Forum apresenta, semanalmente, os novos executivos e os principais anúncios de contratações, promoções e mudanças…

7 dias ago
All Rights ReservedView Non-AMP Version
  • L