Mais lidas
1

Carreira

Fusão entre Alura e FIAP quer faturar R$ 420 milhões em 2022

2

Negócios

Petrobras investirá R$ 6 milhões em soluções de IA e simulação

3

Inovação

99 quer 10 mil carros elétricos rodando no Brasil até 2025

Inscreva-se na nossa Newsletter

Fique ligado!

Obtenha os mais recentes artigos e atualizações de tecnologia que você precisa saber, você ainda receberá recomendações especiais semanais.

News

E-mail Cadastrado com sucesso! 😄

IT Forum
Fóruns
Notícias
Colunas
Estudos
Vídeos
Podcasts
HIT - Materiais Gratuitos
Newsletter IT Mídia
IT Mídia

3 momentos
no ano

Visite o site
post

IT Forum Ibirapuera

Redescoberta Criativa no maior parque do Brasil.
post

IT Forum Trancoso

Saiba tudo sobre liderança no mercado de TI
post

IT Forum Itaqui

Saiba tudo sobre liderança no mercado de TI

Edições anteriores

Veja todas as edições
(Em breve)

TODAS

Mais recentes

As últimas no IT Fórum

CATEGORIAS
Especiais

Especiais

Artigos exclusivos
produzidos pelo IT Fórum

Liderança

Liderança

Saiba tudo sobre liderança
no mercado de TI

Carreira

Carreira

Notícias para impulsionar
sua carreira

Negócios

Negócios

Grandes empresas,
startups, franquias e mais

Tendências

Tendências

Descubra o que está em
alta em TI

DA REDE

ComputerWorld

O porta-voz do mercado de
tecnologia.

CIO

Gestão, estratégias e
negócios em TI.

Estudos

Estudos destinados a TI e ao mercado

Executivo de TI

CIOs e executivos da indústria de TI que tiveram iniciativas
de destaque.

Antes da TI

Pesquisa com objetivo de
ajudar na tomada de decisões em TI.

As 100+ Inovadoras

Inovação nas maiores empresas do país.

Página de estudos

Veja todos os estudos

IT Forum
  • Home
  • Fóruns
  • 3 momentos
    no ano

    Visite o site
    post

    IT Forum Ibirapuera

    post

    IT Forum Trancoso

    post

    IT Forum Itaqui

  • Notícias
    • Especiais Especiais
    • Liderança Liderança
    • Carreira Carreira
    • Negócios Negócios
    • Tendências Tendências
    • Ver todas as Mais recentes
    • Brandchannels
    • Brandspaces
  • Colunas
  • Estudos
  • Estudos destinados a TI e ao mercado
    • Executivo de TI
    • Antes da TI
    • As 100+ Inovadoras
  • Vídeos
  • Podcasts
  • HiT - Materiais Gratuitos
  • Anuncie
    Envie Seu Release
    Fale Conosco
    Revistas
    Newsletter
    IT Forum IT Forum IT Forum IT Forum
X
CONTEÚDO ORIGINAL
Agora os conteúdos da CIO estão no IT Forum! Para saber mais clique aqui
  • Home >  
  • Notícias >
  •  CIO

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

Ativa desde os anos 1970, linguagem ainda persiste e poucas conseguem superar seu desempenho. Mas como ela se compara diante à concorrência?

Serdar Yegulalp, Infoworld (EUA)
15:10 pm - 22 de outubro de 2019
Shutterstock

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.

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.

Tags:
linguagens programação
Programação
Python
Brand Post por EXBIZ

Pesquisa: digitalização muda perfil de consumo de serviços financeiros

Estudo divulgado pela Akamai mostra um novo perfil de cliente, que busca experiências digitais mais completas

Em alta

Carreira

Fusão entre Alura e FIAP quer faturar R$ 420 milhões em 2022
Em alta

Negócios

Petrobras investirá R$ 6 milhões em soluções de IA e simulação
Em alta

Inovação

99 quer 10 mil carros elétricos rodando no Brasil até 2025
Load more
IT Forum

FÓRUNS

Todos os FórunsIT Forum IbirapueraIT Forum TrancosoIT Forum Itaqui

NOTÍCIAS

Mais recentesLiderançaCarreiraNegóciosTendências

COLUNAS

ESTUDOS

Executivo de TIAntes da TIAs 100+ Inovadoras

VÍDEOS

PODCASTS

HIT

Anuncie
Envie Seu Release
Fale Conosco
Revistas
Newsletter
IT Forum
Política de PrivacidadeTermos de Uso

© Copyright IT MÍDIA - Todos os direitos reservados

Política de PrivacidadeTermos de Uso

© Copyright IT MÍDIA - Todos os direitos reservados

Utilizamos cookies e tecnologias semelhantes de acordo com nossa Politica de Privacidade e, ao continuar você concorda com estas condições.OkPolitica de Privacidade