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

  • Nuvei compra Payoneer por US$ 2,75 bilhões e cria gigante global de pagamentos digitais
  • Ferramenta de IA analisa diferença tática entre Brasil e Marrocos no primeiro jogo da Seleção
  • HPE une rede e segurança e mira fim da gestão fragmentada

Recent Posts

  • Notícias

Nuvei compra Payoneer por US$ 2,75 bilhões e cria gigante global de pagamentos digitais

A Nuvei anunciou a aquisição da Payoneer em uma operação avaliada em aproximadamente US$ 2,75…

45 minutos ago
  • Notícias

Motiva automatiza 86% do atendimento em rodovias com IA da Zendesk

A Motiva implementou um sistema de atendimento omnicanal da Zendesk para unificar a experiência do…

2 horas ago
  • Notícias

Ferramenta de IA analisa diferença tática entre Brasil e Marrocos no primeiro jogo da Seleção

Na edição mais tecnológica da Copa do Mundo, a inteligência artificial (IA) tem se mostrado…

2 horas ago
  • Artigos

O paradoxo da abundância: por que a “crise de inteligência de 2028” subestima o fator humano

Por Leonardo Tristão Recentemente, passou a circular nos altos escalões corporativos um relatório provocativo intitulado "The 2028 Global…

2 horas ago
  • Notícias

Empresas não sabem como comprar IA, e esse é o maior obstáculo da adoção, diz executivo da HPE

A maioria das empresas que hoje investe em inteligência artificial não sabe exatamente quem deve…

18 horas ago
  • Notícias

Datamint capta R$ 25 milhões em rodada seed liderada pela Headline

A Datamint, startup brasileira de inteligência artificial (IA) voltada à gestão de ativos em operações…

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