Tempos atrás eu procurava na rede por um exemplo de código em C puro para realizar uma tarefa relacionada a servidores. Em meio à pesquisa encontrei um diálogo entre dois estudantes universitários, que discutiam sobre a linguagem C. Um dos garotos perguntava ao outro sobre a utilidade da linguagem. O outro, investido de sua “experiência universitária” disse: “linguagem C não serve para nada, você só vai usar mesmo na faculdade e, depois, nunca mais”.
Diante daquela afirmação, por alguns segundos fiquei me perguntando se eu estaria me transformando em um dinossauro que ainda recorria ao C para resolver um ou outro probleminhas mais chatos… ou que criava aplicativos de realidade aumentada também com o bom e velho C/C++. Refeito do susto, logo dei risadas do que havia acabado de ler.
Dizer que a linguagem C não serve para nada é uma demonstração e tanto do tamanho da ignorância do supostamente bem informado universitário. Gente como ele deve achar que tudo se resolve com Java ou C#. Gostaria de ver alguém programar um microcontrolador com uma dessas linguagens… Onde enfiariam a máquina virtual?
Nesse e outros casos, a linguagem adotada é C puro e fim de papo!
Outra: Certa vez um cliente me pediu que desenvolvesse um aplicativo em Flash para apresentar documentos técnicos de produtos. Tal aplicativo continha botões que, uma vez acionados, deveriam abrir arquivos PDF, com um detalhe: o mesmo aplicativo deveria rodar em ambiente Web e também a partir de um CD-ROM. Acontece que o Flash Player não permite o acesso a arquivos locais, mesmo quando acionado a partir de um executável, a menos que tais arquivos se econtrem em um determinado diretório, inviabilizando a distribuição de arquivos PDF em diversos diretórios, como era o desejo do cliente. Solução? Simples: desenvolvi um programinha em C que recebia o comando do aplicativo Flash e, com base nos parâmetros, carregava o arquivo PDF no Acrobat Reader (e não no navegador), sem problemas. O executável em C ficou minúsculo. Tente fazer o mesmo com Java ou C# e você terá que obrigar o pobre usuário a instalar máquinas virtuais disso e daquilo apenas para rodar um CD idiota.
Então, não, senhor universitário mal informado. Não é verdade que o C não sirva para nada. Muito pelo contrário.
No cenário do desenvolvimento de jogos a idéia é a mesma. Embora seja verdade que é muito mais fácil programar em Java ou C# para fazer as mesmas coisas, programas criados em C/C++ são muito, muito, muito e muito mais rápidos e menores do que a mesma coisa feita nessas linguagens, que exigem a instalação de trocentas bibliotecas. A coisa fica bastante óbvia quando se pensa em dispositivos móveis (nem tudo no mundo dos gadgets é um iPhone).
Muitos dos programas que você usa aí na sua máquina foram desenvolvidos em C/C++, assim como uma quantidade enorme de jogos 3D foram e são desenvolvidos nessa linguagem.
Para completar, antes de desprezar a chance de começar aprender a programar em uma linguagem que lhe dará asas e liberdade, saiba também que, uma vez que você tenha aprendido a criar mesmo coisas básicas com a linguagem, terá muita facilidade quando passar ao aprendizado de linguagens de mais alto nível, como Java e C#. Aliás, para quem ainda não sabe, linguagens de alto nível são aquelas em que o código está mais próximo do entendimento humano e mais longe das instruções de máquina. Embora a linguagem C não seja de baixo nível, está muito mais próxima da máquina do que as demais que exigem máquinas virtuais, incluindo aí Java, Python, C#, etc.
Quer saber mais sobre C? Dê uma olhada no próximo post.
Cara, sou universitário de SI fiquei muito contente de ver isto que tu acabas de escrever, eu sou um péssimo programador em C/C++ porém acho esta linguagem fantástica, realmente é tudo que você diz e mais um pouco, tenho total convicção que o equivoco dos universitários irão perceber quando a amplitude dos softwares aparecer admiro muito por defender esta linguagem extraordinário e a raiz de todo os nossos benefícios muito obrigado, ha mais uma coisa posso mostrar este seu texto aos meus colegas?
Muito Obrigado
Olá Alexandre!
Obrigado pelo post e desculpe-me pela demora em responder. Muito trabalho!
Sim, claro, mostre sim a seus amigos.
E estou em dívida, preciso começar a mostrar o C/C++ em ação por aqui, em vez de só falar.
Volte sempre!
Muito bem explicado foi a ultilização da linguagem C no seu texto!
Java é p/ coisas mais fáceis e babacas como web.
Linguagem de homem é C/C++ que serve p/ desenvolvimento de Sistemas Operacionais(OS), automação, jogos com bom desempenho e etc…
E C/C++ pode ser usado na web tb, um aplicatico bem famoso da google, o Google Earth foi desenvolvido em C++ com a biblioteca do QT Creator.
Eu perguntaria a esse universitário bundão o nome de algum OS feito em Java… Não existe! Hahaha…
Olá!
Eu não iria tão longe em relação a ser linguagem de homem.
) Eu também programo em linguagem de alto nível como ActionScript e ainda uso plataformas com LiveCycle para criar rapidamente soluções robustas para a Web e/ou desktop (como no caso do uso do AIR).
Mas, sim, tens razão, para desktop C/C++ continua sendo o melhor. Java, assim como C#, têm seus lugares, mas exigem máquinas virtuais, o que náo me agrada.
Nunca ouvi falar em SO escrito em Java, mas há, sim, bons servidores criados nessa linguagem – o JBoss é um exemplo.
Desculpe pelo post é que conheço muita gente que cria uma proteção contra universitários, geralmente são pessoas que não tem curso superior na área mas tem uma boa experiência com alguma área da computação… é o que dá para perceber aqui. Não estou protegendo os universitários e nem o pessoal que nao tem um diploma na área, só acho que esse tipo de briguinha é ridícula
Jeferson,
Tenho formação universitária e, portanto, conheço a realidade.
Duas pessoas formadas na mesma faculdade e turma não têm, necessariamente, o mesmo nível de conhecimento e habilidade.
Em geral, não têm.
Ridículo mesmo é alguém fazer afirmações sobre algo que não conhece, independente da formação.