15 Dec
C é uma das linguagens mais famosas e utilizadas que existem. Também, é bastante antiga, já que sua primeira versão é de 1972. Apesar da idade, ainda é muito utilizada devido à sua generalidade e velocidade. Aqui no VidaGeek, já publicamos uma série de posts sobre C (vide Dia C), então não vou falar sobre a sintaxe de C. Mas vou dar minha opinião sobre ela.
A linguagem C surgiu com o propósito inicial de ser utilizada para aplicações de sistema tais como drivers, utilitários de linha de comando e outras coisas de baixo nível ;). Por isso, é uma linguagem que não abstrai muito o software do hardware, permitindo ao programador manipular diretamente a memória e interagir diretamente com o sistema operacional por meio das system calls. Apesar desse propósito inicial, C foi e ainda é utilizado em diversas aplicações comerciais: jogos, editores de texto, aplicativos multimídia, dentre outros. Além disso, é utilizada em muitos lugares (inclusive aqui, no IME-USP) para ensinar programação e algoritmos.
Por ser uma linguagem com poucos recursos nativos, C tem poucas palavras reservadas, o que torna seu aprendizado um pouco mais fácil. A sintaxe é simples, também, e inspirou diversas outras linguagens: C++ (que, no início, era apenas uma extensão de C - veja o post polêmico e os comentários aqui), C#, Java, JavaScript, Perl etc. que, por sua vez, inspiraram diversas outras. Ou seja, a sintaxe de C aparece quase que idêntica em muitos lugares (esse é um bom motivo para aprender C). Mas essa simplicidade toda pode se tornar bastante ilegível, como mostram os participantes do concurso Obfuscated C.
Um dos grandes atrativos de C é a eficiência do programa gerado, que, graças também a compiladores eficientes, é quase igual a de um programa escrito em código de máquina, pois é compilado diretamente para este, ou seja, não roda sobre nenhuma máquina virtual, como a maioria das linguagens novas (Ruby, Python, Java, Perl, Groovy, JavaScript etc.). Atualmente, porém, algumas máquinas virtuais são capazes de quase igualar o desempenho de um programa escrito em C, o que torna o motivo “eficiência” para a escolha de C como linguagem de um projeto discutível.
Eu, particularmente, gosto bastante de programar em C. Ter controle sobre os mínimos aspectos da programação, às vezes, é agradável e até fundamental (e, às vezes, é ruim, pois torna a programação menos produtiva). Em outros casos, pode se tornar chato e confuso, com todos aqueles ponteiros e memória sendo alocada e desalocada. Não recomendo desenvolver todo e qualquer programa em C; isso seria uma loucura hoje em dia, com tantas ferramentas mais produtivas por aí. Mas escrever um programa com algumas centenas de linhas em C é uma experiência que recomendo a todos os programadores pelo menos uma vez na vida! Outra experiência que recomendo: ler algum código C bem escrito, como o do kernel do Linux ou algum programa do Knuth (que, provavelmente, vai estar disponível para leitura como CWEB).
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
Email This Post
23 Responses for "Linguagens de Programação - C"
Uma das grandes peculiaridades do surgimento de C é por ser uma tecnologia facilmente portável, de forma que se torna possível portar um compilador de C para outra plataforma sem tanto trabalho, ao contrário que aconteceu quando portaram um compilador de Pascal por exemplo.
Ah sim um detalhe importante uma coisa que faz muita mais muita falta em C é suporte nativo a boleano, se tivesse reduziria muito a confusão que se tem quando só querem determinar verdadeiro ou falso.
Ótima serie de posts!
Um dos pontos que me agrada em C é a beleza que fica um código bem feito, pode não ser tão produtivo mesmo mas ainda sim é basico um passeio em C para qualquer programador.
Espero um post sobre Python.
Até mais!
Oi Luiz,
Bom post!
“Mas vou dar minha opinião sobre ela.” Bem, colocado assim evita outra polemica!
Gostaria que você colocasse um sobre o pascal e o basic, linguagens muito usadas para o ensino da lógica (no meu caso foi a segunda).
Até a próxima!
Olá a todos! Em primeiro lugar, obrigado pelos comentários!
cristo,
Concordo com você que o suporte nativo a booleano seria agradável, mesmo que fosse somente a definição automática de uma constante. Se não me engano, alguma das extensões mais novas de C tem algo assim…
Danilo,
Realmente, o código fica bem bonito quando bem escrito. Dá até para fazer arte com ele ;) Mas, falando sério, na minha opinião a sintaxe simplificada de C favorece isso na maioria dos casos. Mas, para strings, por exemplo, acho que ficaria melhor se C tivesse mais suporte a ela.
Sobre as linguagens pedidas, eu particularmente não trabalhei com nenhuma. Então, colaborações são bem-vindas! :) Principalmente para o Basic
Obrigado a todos!
Oi Luiz,
Se quiseres eu posso te dar uma força no Basic levo de 2 a três dias para fazer um texto bacana(to com um projeto em c++ que tá me lotando a cabeça, mas temnho um tempinho sobrando), então só fala…
Agora uma coisa, só para dar uma provocada, quando você vai fazer um para sua amada e idolatrada linguagem (Java), hein? ; ) heheh
Oi, André!
Manda um texto sobre Basic, sim! Manda para mim por e-mail: sr.saude gmail.com
Opa! Peraí! Quem disse que eu amo Java!? hehehehe…
Acho que é a próxima linguagem sobre a qual vou escrever. Bom, quando eu escrever você vai ver que não é minha linguagem amada… hehehe
Obrigado pelo comentário e pela colaboração!
[...] por Luiz Fernando Oliveira Corte Real (sr·saudeΘgmail·com) - referência [...]
Quanto ao suporte booleano em c basta adicionar o cabeçalho que ele define macros para isso e o código fica bem mais legível.
Ops por algum motivo o nome do cabeçalho não saiu no post anterior então seria stdbool.h
[...] Linguagens de Programação - C [...]
Para algum futuro post sobre linguagem de programação, sugiro a vc que dê uma olhada na linguagem D ( http://DigitalMars.com/d/ ).
Mais uma que se assemelha a C. É uma proposta de evolução do C para OO sem os problemas que C++ têm, como não ter GC e ter um tempo de compilação sofrível, por exemplo.
Assim o compilador D, têm uma velocidade incrível. E ele compila para binário mesmo, nada de VMs. Mas se vc quiser vêm um “interpretador” para o caso de vc querer usar o fonte como linguagem de script.
Com certeza é a minha linguagem favorita, não comecei a programar por ela, passei primeiro pelo Pascal e depois Delphi, quando fui para o C senti algumas dificultades que era o fato dela ser Case Sensitive e a falta de um tipo de dado String. O que não me impediu de me adaptar rapidamente a ela, e me facilitou em partes o aprendizado de PHP e JAVA.
Parabéns,
Só não gostei do ” C é uma das linguagens mais famosas e utilizadas que existem. Também, é bastante antiga, já que sua primeira versão é de 1972. Apesar da idade, ainda é muito utilizada devido à sua generalidade e velocidade.”
… É que também sou de 1972 e me senti bastante antigo.
Abraços,
Vagner
Olá a todos!
Notuen, obrigado pela dica! A reclamação com os tipos booleanos em C é o fato de eles não virem por padrão. É claro que você pode definir seus próprios tipos, mas seria mais fácil que eles já viessem definidos por padrão.
EmanuelSan, obrigado pela dica também! Vou dar uma estudada e experimentada nessa linguagem. Se for boa que nem parece, vai entrar para a minha lista de linguagens favoritas :)
José, como você eu também não comecei com C, mas não apanhei tanto porque não tinha aprendido a programar direito em nenhuma linguagem ainda. Essas linguagens que você citou foram bastante inspiradas em C, daí a facilidade em aprendê-las depois de aprender C. Essa linha de inspirações facilita um pouco a vida dos programadores, por um lado, mas pode ser prejudicial, por outro, quando decisões erradas de arquitetura/sintaxe são propagadas.
Vagner, obrigado! E desculpe se fiz você se sentir antigo. Na verdade, os computadores e as tecnologias envolvidas envelhecem bem mais rápido do que os humanos, então pode ficar tranquilo: você não é antigo :)
Obrigado a todos pelos comentários! Abraços!
Só o kernel do Linux ser um exemplo de programa bem escrito é que foi forçar a barra.
Olha aqui exemplo de código bem escrito em C: http://plan9.bell-labs.com/sources/plan9/
Oi Vinícius,
O link que você passou está quebrado. Você poderia verificar?
Obrigado pela visita!
Cara, seus posts são uma piada, na boa.
Rafael, tentei novamente aqui e foi. Esse servidor da Bell Labs que eles hospedam os fontes do Plan 9 é meio temperamental mesmo, as vezes sai do ar.
[...] Basic é utilizada na área de programação como uma linguagem de ensino da lógica. Claro que hoje é sem sentido dizer que ainda se usa Basic puro comercialmente. Temos o QBasic (Quick Basic a mesma do Free Basic), ou o Visual Basic, que são uma espécie de modernização da linguagem - do mesmo jeito que aconteceu com a BCPL (a BCPL foi modernizada para B que, por sua vez, foi para C). [...]
[...] de programação - C++Linguagens de programação - PrologLinguagens de programação - JavascriptLinguagens de Programação - CLinguagens de Programação - [...]
#define TRUE 1
#define FALSE 0
Magnata, leia os comentários anteriores
Leave a reply