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

A importância e as vantagens de saber programar em linguagem C

É 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).

[1] Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados – com técnicas de programação em C, 2a. Edição, Ed. Elsevier, 2016.

[2] Alex Allain, “Why Should You Learn C?”, Cprograming.com – Your resource for C and C++, 2011. www.cprogramming.com/whyc.html

[3] Joel Spolsky, “Advice for Computer Science College Students”, Joel on Software, Janeiro 2005. www.joelonsoftware.com/articles/CollegeAdvice.html

Next Segmentação da rede e negócios devem andar de mãos dadas »
Previous « Governo dos EUA alerta sobre falha de segurança em solução da SAP
Leave a Comment
Share
Published by
itmidia
Tags: Programação
10 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…

1 semana 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.…

1 semana 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…

1 semana 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…

1 semana 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…

1 semana 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…

1 semana ago
All Rights ReservedView Non-AMP Version
  • L