All Rights ReservedView Non-AMP Version
IT Forum
  • Homepage
  • Tendências
Notícias

Por que o domínio de C é tão importante para a equipe de TI?

É consenso que diferentes linguagens de programação são adequadas para o desenvolvimento de diferentes aplicações. Na verdade, hoje, existe um leque de linguagens adequadas para o desenvolvimento de cada tipo de aplicação, seja ela uma aplicação científica, uma aplicação web, uma aplicação para gerenciamento de dados etc. Não existe uma única linguagem de programação adequada para desenvolvimento de qualquer aplicação. Pelo contrário, é comum o desenvolvimento de uma mesma aplicação fazer uso de diferentes linguagens.

Não é consenso, no entanto, quais linguagens de programação um profissional deve aprender. Basta aprender uma ou outra linguagem de programação adequada para o desenvolvimento de aplicações na área em que atua? É importante aprender todas as alternativas ou mesmo uma linguagem não adequada para ou não comumente utilizada na sua área de atuação? Da mesma forma, não é consenso qual a linguagem deve ser usada em um primeiro curso sobre programação. Diferentes (e boas) universidades optam por diferentes linguagens: Python, Java, JavaScript, C, Haskell, Scheme etc.

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

Quando escrevemos o livro “Introdução a Estruturas de Dados”¹, optamos por utilizar a linguagem de programação C para apresentar e discutir as implementações e os usos de diferentes estruturas de dados. Eu até sou favorável ao uso da linguagem C nos cursos introdutórios de programação para profissionais das áreas técnico científicas, mas reconheço outros benefícios no uso de linguagens de programação mais abstratas. Diferentes opções têm diferentes benefícios.

Independente da ordem, eu acho que o aprendizado de C é muito importante, senão fundamental, para uma sólida formação em programação. Naturalmente, existem bons programadores que não conhecem a linguagem C, mas eu acredito que eles serão programadores ainda melhores se aprenderem a programar em C com desenvoltura.

A linguagem C opera muito próxima ao hardware. Se, por um lado, isto gera uma dificuldade extra para seu aprendizado, por outro, programando em C, temos um bom conhecimento de como o computador funciona, e este conhecimento é fundamental para programar bem em qualquer linguagem. Em C, somos obrigados a gerenciar explicitamente a memória que alocamos, podemos manipular diretamente endereços de memória, precisamos entender o conceito de passagem de parâmetro por valor e por referência, aprendemos o conceito de variáveis do tipo ponteiro etc. Adquirimos um conhecimento que nos permite escrever programas corretos e eficientes.

Este conhecimento é particularmente importante quando precisamos projetar novas estruturas de dados para atender demandas específicas. Linguagens de programação mais abstratas oferecem suporte nativo às estruturas de dados mais usuais; em C, precisamos implementá-las. O conhecimento adquirido ao implementar as estruturas nos faz ter um melhor discernimento de qual estrutura devemos usar numa determinada aplicação, nos capacita a adaptar estruturas já existentes quando necessário, e nos ensina a avaliar a eficiência dos algoritmos que fazem uso dessas estruturas.

Vamos tomar um exemplo simples, mas sutil. Considere as declarações em C a seguir:

char *s1 = “Linguagem C”;
char s2[ ] = “Linguagem C”;

As duas declarações (apesar da diferença sintática tênue da linguagem) criam variáveis com muitas diferenças, e o aprendizado de C nos requer o entendimento dessas diferenças: cadeia de caracteres constante versus cadeia local e editável, escopo global versus escopo local, acesso indireto versus acesso direto. Esconder esses conceitos certamente acelera o aprendizado dos fundamentos de programação, mas, por outro lado, entender esses conceitos certamente nos ajuda a projetar códigos melhores.

Além do conhecimento adquirido, o aprendizado de C se justifica por si só. A linguagem C é ubíqua, estando presente em todas as plataformas computacionais, desde supercomputadores a processadores ARM embutidos. Por isso, escrever um código padrão C é escrever um código portátil; além disso, ganhamos em versatilidade, pois programamos desde sistemas embarcados em hardware simples a sistemas computacionais complexos. A linguagem C nos permite fazer diferentes aplicações, escritas em diferentes linguagens, interoperarem entre si. A grande maioria das linguagens de programação proveem suporte a programação de interfaces em C. A linguagem C é a “língua franca” de programação de computadores.

Eu ainda avalio que é melhor aprender a linguagem C antes de aprender C++ (ou mesmo Java). Sei que muitos discordam, e acham que C++ deve ser aprendido independente de C, argumentando que C é um subconjunto de C++. Por isso mesmo, acho que vale a pena aprender C antes. Todo o conhecimento adquirido será importante para entender C++, e o conhecimento menos abstrato de C ajudará na codificação de programas eficientes em C++, pois conseguiremos avaliar melhor o custo computacional associados às operações. Programar com desenvoltura em C ou C++ é para profissionais, e ainda existe uma grande carência de bons programadores profissionais nas áreas técnico científicas.

 

(*) Waldemar Celes é autor de Introdução a Estrutura de Dados (Elsevier)

Next Entidades científicas são contra o fim do Ministério da Ciência e Tecnologia »
Previous « Mais de metade das empresas brasileiras não está preparada para lidar com ameaças cibernéticas
Leave a Comment
Share
Published by
cristina.deluca
10 anos ago

    Related Post

  • UE ordena que Meta reabra WhatsApp a chatbots rivais
  • IPO da SpaceX chega ao mercado como aposta de US$ 1,75 trilhão em IA, não em foguetes
  • IA muda jornada de compra e devolve relevância aos sites de avaliação B2B, diz Forrester

Recent Posts

  • Artigos

Com a IA, setor de saúde vive revolução que o marketing digital proporcionou há dez anos

por Eduardo Barros A transformação da inteligência artificial (IA) nos negócios lembra o que aconteceu…

4 horas ago
  • Inovação

Snowflake registra crescimento de 33% na receita e eleva projeções para o ano fiscal de 2027

A Snowflake anunciou os resultados financeiros do primeiro trimestre do ano fiscal de 2027, encerrado…

16 horas ago
  • Notícias

UE ordena que Meta reabra WhatsApp a chatbots rivais

A Comissão Europeia determinou que a Meta reestabeleça o acesso de assistentes de inteligência artificial…

19 horas ago
  • Notícias

IPO da SpaceX chega ao mercado como aposta de US$ 1,75 trilhão em IA, não em foguetes

As negociações com as ações da SpaceX têm início nesta quinta-feira, 12, em uma oferta…

20 horas ago
  • Notícias

IA muda jornada de compra e devolve relevância aos sites de avaliação B2B, diz Forrester

A ascensão dos agentes de inteligência artificial (IA) está criando uma oportunidade para plataformas de…

20 horas ago
  • Notícias

Prêmio Executivo de TI do Ano 2026: conheça os critérios de avaliação

Continuam abertas as inscrições para o prêmio Executivo de TI do Ano 2026. A iniciativa,…

21 horas ago
All Rights ReservedView Non-AMP Version
  • L