My life in English

Aiming to be a Canadian citizen.

Leitura complementar: “Por que C e C++?” Parte II

Posted by fabianovasconcelos on 31 de May de 2009

Salve galerinha do país com a carga de impostos mais alta do mundo!

Aos que costumam entrar no banheiro errado, notem que alguns termos são um link para páginas externas. Clique neles, se necessitar de alguma informação complementar a respeito.

Tá mais perdido que filho da puta em dia dos pais? Pois você veio parar num curso on line de C/C++! Clica aqui pra ver o índice!

Bem, continuando o post anterior, eu vou continuar a falar do motivo que me leva a programar em C/C++ e a querer passar isso pra galera. Como se diz aqui no Ceará, “vai cumendo, Raimundão”!

  • Qual a melhor linguagem de programação?

Pois é. Essa pergunta, dependendo do lugar onde se indaga, dá até morte. Parece até coisa de futebol ou religião, portanto, cuidado quando for expor a sua opinião sobre a melhor linguagem de programação. Tem gente que defende C/C++ até a morte, “ASM na veia”, “No Delphi, Yes C++”, etc. e deixa as outras linguagens no chão. Mas não é bem assim.
A melhor linguagem de programação é a que melhor se adequa as suas necessidades. Se você não conhece nenhuma, o melhor seria, antes de estudar alguma, procurar ler o máximo sobre as mais badaladas linguagens pra depois escolher a que melhor se adequa com as suas necessidades. Eu adoro C/C++. Adoro porque eu sei que com ela eu posso fazer de tudo, embora dê um pouco mais de trabalho, seja mais difícil de aprender e demande um pouco mais de tempo pra terminar um programa com ela. Mas tudo tem o seu preço. Já Java, por exemplo, é mais fácil que C/C++, mas tem as suas desvantagens. Os programas saem mais pesados devido a JVM, você não consegue escrever programas de baixo nível com ela, etc.
Delphi seria outra opção. Com Delphi (object Pascal) é possível fazer um programa rapidíssimo, porém bem mais pesado que um feito em C/C++ e bem mais limitado de recursos, sem falar na portabilidade do código (fato de você poder compilá-lo em diversos sistemas operacionais – linux, windows, MacOS, BSD, etc) que não existe.
Mas tudo isso são opiniões pessoais. Pra mim, a melhor linguagem é C/C++, mas tem gente que não abre mão do Java. Tem gente que é ferrado no Delphi e por aí vai.
Como o blog é meu, eu escrevo o que eu quero: VAI POR MIM, APRENDE C/C++ QUE É SHOOOOOOOOWWW! HAUHAUHAUAHUHAUHAUAHU…

  • Todo mundo programa em alto nível (depois dessa é capaz de eu ser espacando na rua)

Galerinha, é sabido que nem todo mundo gosta de estudar, né isso? Alías, é mais fácil achar gente que não estuda do que gente que estuda. Então, pela lógica, o que é mais fácil? Achar porgramadores de linguagem de alto nível ou achar programadores de médio e baixo nível? Lógico que achar programadores de alto nível, porque programadores de alto nível não precisam de uma formação tão árdua quanto os programadores de baixo e médio nível. Programador em Delphi tem de tonelada. Programador em ASM, é um em cada um milhão de programadores. Consequentemente, quando uma empresa precisa de um programador em baixo nível ou até mesmo em médio nível os caras podem botar boneco e exigirem um salário bem salgadim. Se eles, os empregadores, não quiserem pagar, tem dez mais na frente que cobrem aquela oferta. É a famosa lei da oferta e da procura. Portanto, sem querer discriminar os programadores de alto nível, vale a pena investir tempo e neurônios no estudo das linguagens de médio e baixo nível.

  • C/C++ muitas vezes fazem o papel de linguagens de baixo nível

Ah! Isso aí é que é uma EPROM??? Vaaaaaaaaaalha!

Ah! Isso aí é que é uma EPROM??? Vaaaaaaaaaalha!

Outro ponto interessante da linguagem C/C++ é que ela é tão poderosa que muitas vezes se consegue escrever rotinas que só rodariam com uma linguagem de baixo nível. Não entendeu? Peraí que eu explico.
Uma EPROM é um exemplo de memória em forma de chip ou pastilha, que pode armazenar programas bem pequenos, como por exemplo, firmwares para relógios de pulso, pra calculadoras de mão, controladores de modem (desses que você provavelmente está usando em cima da sua mesa). Acontece que, como eu já disse, a memória dessas onça são pequeniníssimas, do tamanho da vagina de uma formiga, daí, advinha quem entra em cena? Errou quem pensou Chapolim Colorado. Eu estou me referindo as linguagens de baixo nível, que são capazes de gerar arquivos de programas beeeeem pequenos, poderosérrimos e consumindo o mínimo de recursos do processador. Gerar um arquivo desses numa linguagem de alto nível pra uma EPROM, por exemplo, é literalemente uma tarefa impossível.
Antigamente se fazia muito isso em ASM. Mas, como os compiladores de C/C++ hoje em dia estão cada vez mais eficientes pra reduzir o tamanho do executável, em boa parte dos casos, você pode perfeitamente programar o seu código em C/C++ e meter dentro da EPROM. Vale ressaltar que você também tem que ser bem perito na programação pra conseguir os mesmos resultados. Mesmo assim vale a pena. ASM é coisa pra louco!

.

  • Instabilidade das linguagens de alto nível

Outra coisa que me deixa chateado com as linguagens de alto nível são as instabilidades das implementações.
A primeira vez que eu escutei falar de Delphi na minha vida foi em 1998, quando eu dava aulas de informática num curso. Lá tinha um professor de programação que dava aulas de Delphi. Ele me mostrou um livrão, tijolão, que deve ter sido caro pra caralho, de uma versão do Delphi da qual eu não me recordo. Daquele tempo pra cá, umas mil versões do Delphi devem ter sido lançadas. Aí eu pergunto: quanto de dinheiro e de tempo esse cara já deve ter gasto, até hoje, pra ficar em dia com as incansáveis atualizações do Delphi? Se é que ele teve saco e dinheiro pra ficar atualizado até hoje!
Naquele mesmo ano eu me interessei por programação também. Falei com um amigo meu que é um grande programador (ele é programador oficial do time do KDE no linux) e disse a ele que, ao ver o professor programando, fiquei interessado em programar também. Eu disse também que queria aprender Delphi. Graças a Deus que ele me abriu os olhos e me direcionou pra C/C++. Isso eu devo a ele.
Ainda em 1998 eu comprei um livro de C. Tenho ele até hoje. Depois comprei um de C++, que também continua atualíssimo! O que o meu amigo aprendeu a séculos atrás sobre C/C++, ele usa até hoje, sem problemas e sem modificações. O que eu aprendi, também continua firme. A que se deve isso? Estabilidade! A linguagem já nasceu poderosa e cheia de possibilidades. Ao longo da vida de C/C++ pouco foi preciso mudar. Se quiser conferir, use o google!

  • ASM e C/C++ podem aparecer num mesmo código

Eu não sei quanto a outras linguagens, mas códigos escritos em Assembly podem aparecer embutidos em códigos C/C++. Para isso basta que seja informado previamente ao compilador através da palavra chave asm. Assim, o compilador entenderá que o que se seguirá dalí adiante será um código em assembly. Se você precisa que seja inserido um código em baixo nível para controlar algum dispositivo marmotoso, fique a vontade pra usar esse recurso em C/C++.

  • Linguagens orientadas a objeto e linguagens orientadas a ações

Mas você deve estar se perguntando até agora: qual a diferença básica entre as linguagens C e C++? Bem, dentre outras diferenças que elas têm, a mais básica de todas é que C é uma linguagem orientada a ações, a funções e C++, além desse estilo, suporta também programação orientada a objetos.
Sim, mas o que quer dizer isso? Isso significa que quando você for escrever um código em C você implementará ordens (ações, funções, verbos) na sua rotina de algorítimos. As funções serão o foco principal do seu código. Existirá uma função pra somar dois números, uma pra exibir pontos na tela, outra função pra receber um nome em um cadastro, etc.
No caso de C++, os objetos (substantivos) é que serão as estrelas. Ao invés de funções, trabalhemos com classes. As classes se comportam como objetos do mundo real. Se estamos fazendo um simulador de voo, por exemplo, teremos a classe piloto, outra classe altímetro, uma classe manche, outra classe flaps e por aí vai. As funções continuam existindo, porém não são mais as estrelas. Elas estarão em segundo plano.
Sei que não é fácil entender isso assim, com explicações ralas. Mas tenha paciência que, com certeza, ao longo do curso você vai entender. Isso é só o começo e essa explicação é só pra começar a embutir as coisas na tua mente poluída.

Bom, então como vocês puderam ver, existem mil maneiras de preparar Neston motivos pra se programar em C/C++. Não estou aqui querendo depreciar os programadores das outras linguagens e nem depreciando as próprias linguagens. Só estou expondo a minha opinião e a minha paixão pela linguagem. Tem gente que programa em Delphi, em Java, em Basic, em Fortran e está superfeliz da vida, está satisfeito com o que ganha e não quer outra vida pra si. A hora é agora: encontrem a melhor linguagem pra vocês e sejam felizes. Eu já achei a minha. E os posts de C/C++ vão continuar! 😀
Outra coisa que eu tenho que dizer pra vocês é: EU USO LINUX. Portanto, poderão ocorrer (se ocorrerem) pequenas distorções entre um código feito pra Rwindows e um código feito pra Linux. O normal é que isso não ocorra. Se, você que usa Rwindows, não conseguir compilar o seu código redondinho, comenta aqui que a gente dá um jeito, mas o normal é 99,5% das vezes dar certo, devido o C/C++ ser uma linguagem altamente portável.

Como eu havia prometido na primeira parte do post, aí vão alguns códigos escritos em várias linguagens de programação, pra vocês endoidarem matarem a curiosidade. Instruções: cada código imprime na tela a frase “Hello, world!”, que significa “Olá, mundo!”. Notem que as linguagens estão classificadas em ordem alfabética. Para ver como é o código de “Hello, world!” em Pascal, por exemplo, clique na letra P e procure pelo código. Clique aqui pra visualizar os códigos!

E pra terminar, e só pra fazer o mal, clique aqui pra ver a página de uns doidos que desenvolvem um sistema operacional inteiro, com aplicativos e tudo, em ASM! Esses são machos, viu? É o Menuet OS!!!

Próximo post: iniciando em C, as palavras reservadas!

Fui!!!


O bom advogado conhece a lei. O melhor, conhece o juiz. | Não preciso de sexo. O governo já me fode todos os dias! | O trabalho me fascina tanto, mas tanto, que chego a ficar parado, olhando para ele, sem conseguir fazer nada…


Copyright 2009 (C) Fabiano Bezerra de Vasconcelos – Todos os direitos reservados.

Advertisements

21 Responses to “Leitura complementar: “Por que C e C++?” Parte II”

  1. Wallace said

    Parabéns pelo post, gostei do Menuet OS fiquei impressionado. =D

  2. claudio soares said

    fabiano estou iniciando engenharia da computação, estou encontrando dificuldades em apreender linguagem c, poderia me indicar algum livro de facil apreendizagem.

    aguardo seu retorno

    • fabianovasconcelos said

      Cara, sinceramente eu só tenho um livro de C e pessoamente eu NÃO o recomendo: “C Completo e Total”, do Herbert Schildt, é uma bosta. Agora, dizem as boas linguas que (eu não li) o “C primus” é tudo de bom. Já ouvi muitos comentários positivos a respeito dele. Mas eu acho melhor você entrar na Unidev e colher mais opiniões (www.unidev.com.br) ou esperar que a galera poste aqui suas opiniões.
      Se você quiser um livro bom de C++, que também ensina C maravilhosamente, tem o “C++, como programar”, dos Deitel. Ele tanto ensina C quanto C++ e ainda dá uma palhinha de algorítimos.

      Espero ter ajudado.
      Qualquer coisa, disponha.

      Best regards! 😀

    • Wallace said

      “The C Programming Language”, é em inglês, mas a vantagem é que foi escrito pelo próprio Dennis Ritchie, apesar de ser antigo ele é poderoso até hoje pelo fato, até que o Fabiano comentou,de que C sofreu poucas mudanças.

      • Bruno said

        Eu tenho esse livro tambem, mas a versao traduzida, dos livros que conheci sobre C acredito que seja um dos melhores, apesar dele nao entrar em muitos detalhes sobre a biblioteca padrao, ele explica muito bem os conceitos chave da linguagem e tem exemplos muito bons.

  3. Bruno said

    Kra muito bom, só não concordo plenamente com a afirmação “a mais básica de todas é que C é uma linguagem orientada a ações, a funções e C++ é orientada a objetos.”, acho que o certo é dizer: “a mais básica de todas é que C é uma linguagem orientada a ações, a funções e C++ além deste estilo suporta também programação orientada a objetos.”.

    Agora engraçado é sua história do Delphi, eu lembro disso também e no curso de processamento de dados que eu estudava começaram a surgir “biblias” do delphi para todo lado e com certeza deve estar boa parte obsoleto hoje, por isso sempre digo para as pessoas “não aprendam a usar uma API, aprendam os conceitos por trás dela e aprendam a programar”, sabendo isto, basta ler o help para descobrir qual função / classe usar para fazer o que você quer.

    • fabianovasconcelos said

      Dei valor, Bruno! Taí um negócio legal que você sugeriu! Vou modificar agora mesmo.
      Pois é, né! Um dos motivos de eu ter resistido a programar foi exatamente a instabilidade das “linguagens”, mas aí quando eu conheci C/C++ eu vi que o buraco era mais embaixo…

      Grande abraço e torne a visitar e comentar o blog. Não paga nada. 😀

  4. Wanc said

    Bom post. Especialmente pelo fato de colocar que o melhor numa situação pode não ser o melhor em outra. Resta apenas acrescentar que nem sempre quem faz as coisas na unha é o melhor. Seria o mesmo que dizer que os pedreiros e mestres de obras são melhores que os engenheiros. Não dá pra comparar os dois. Cada um tem que ser o melhor dentro da sua esfera de atuação, cada um com as suas ferramentas e seu método de trabalho. Dito!

    • fabianovasconcelos said

      Tá valendo, Wanc!!! :)))
      Ainda bem que a galera tá gostando, hehehehheheh… Achei que fossem pedir a minha cabeça.
      Cara, vou postar mais coisas assim que der. Como disse alguém que eu não me lembro agora, “o tempo ‘ruge'” kkkkkkkkkkkkkkkkk
      Ainda bem que não morde!!!

      Grande abraço. 😀

      —————-
      Tabela de Preços
      —————-

      Ler post………………………….R$ 0,00
      Comentar (na promoção)……………..DE GRAÇA

      • Wallace said

        “Ler post………………………….R$ 0,00
        Comentar (na promoção)……………..DE GRAÇA”

        Vou copiar seu jargão Fernando, vc autoriza???

        =P
        flwss

      • fabianovasconcelos said

        Copiar o jargão, pode. Trocar o meu nome, nunca. 😦

      • wallace said

        =O malz aew … hihi … eh q eu tava falando com um Fernando, juro! qui macada =S, malz dinovo.

      • fabianovasconcelos said

        No problem! 🙂
        É que de vez em quando alguém chega me chamando de Fernando, Cristiano, Fabrício, Praciano e tudo quando é de nome estrombólico. Heheheheheh…

        Pode copiar o jargão, sim! :)))

  5. Dióge said

    Blog fodas! Achei um tópico seu no UNIDEV e decidi dar uma olhada no blog e a sua
    proposta está sendo cumprida perfeitamente. Vou continuar visitando aqui e comentando….
    Abraços

    • fabianovasconcelos said

      Valeu, Dióge! :)))

      Falta só eu criar vergonha na minha lata e postar mais coisas aqui, antes que eu perca os meus poucos leitores! Mas eu irei fazer isso o mais rápido possível.
      Obrigado pelo IBOPE. Volte sempre! :)))))

  6. Eu estava lendo material de C++ e MFC quando cai na UNidev no seu post o c/C++ e já estou lendo seus post a quase 1:30h isto q começei a ler era 1:00h..
    muito bom os post da introdução…
    irei adicionar no favoritos para acompanhar.
    parabens

  7. André said

    Fabiano essas postagens sao verdadeiras obras de arte cara de todos os tutorias que eu ja vi de programaçao os seus sao simplesmente arrazadores cara continua nesse pike

    vlw Fabiano

    • fabianovasconcelos said

      Nem tanto, mestre, nem tanto! Heheheheh…
      Cara, tá saindo um do forno, quentinho, viu?
      Segura as pontas aí, que breve vai ter coisa nova!

      Abs! 😀

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: