Ruby como primeira linguagem de programação!

Desenvolvimento de Sistemas

Pois é, para alguns pode soar um pouco estranho, principalmente para os mais tradicionais, mas é o que estou propondo nesse post.

A minha experiência com a primeira linguagem foi em 1997 com Pascal que foi uma linguagem criada em 1970 por Niklaus With com o objetivo principal de encorajar o uso do código estruturado (principalmente para o ensino).

Vamos ver um pequeno exemplo de teste lógico em Pascal:

    program Testelogico;
       
    var a,b:integer;

    uses crt;

    begin
     clrscr;
     writeln ('Digite um número para A');
     readln (a);
     writeln ('Digite o número para B');
     readln (b);
    
     if (a = b) then
        writeln ('A é igual a B')
     else
        if (a < b) then
              writeln ('B é maior que A')
        else
              writeln ('A é maior que B');
    end.

Podemos perceber nesse código a necessidade de aprendizado de vários conceitos voltados para a própria estrutura da linguagem ao invés de se focar no problema. Como exemplo temos a exigência dos parênteses e o ponto e vírgula no final de bloco, além da regra clássica: antes de else não se usa ponto e vírgula, pois o ponto e vírgula é utilizado para finalizar blocos de programação.

Ruby é uma linguagem criada por Yukihiro Matsumoto, projetada para programação em grande escala unido de codificação rápida. Vamos ver o mesmo exemplo anterior feito em Ruby:

    print "Entre com o valor de A:"
    a = gets

    print "Entre com o valor de B:"
    b = gets

    if a == b
    print "A é igual a B"
    elsif a < B
       print "B é maior que A"
    else
       print "A é maior que B"
    end

Além da quantidade de código diminuir tornando-o mais simples, a curva de aprendizado também tende a ser menor, pois agora não temos mais que garantir regras voltadas para a estrutura da linguagem. O bloco if-else faz o que tem que ser feito sem precisar está se preocupando se está faltando ou não ponto e vírgula.

Podemos ver um exemplo ainda mais convincente com estruturas de repetição com final conhecido. Vejam um exemplo em Pascal que mostra 10 vezes na tela a palavra “teste”:

    Program repeticao
  
    var
    i : integer;
  
    begin

    for i:= 1 to 10 do
         writeln("teste");
    end

Para fazer esse exemplo simples precisei seguir a burocracia de criar o nome do programa criar a variável e só depois criar a rotina. Vamos ver no Ruby o mesmo exemplo:

    10.times do
      puts "teste"
    end

Ou ainda:

    10.times { puts "teste" }

Deu para perceber a simplificação absurda do código no Ruby? Em algumas rotinas assemelha-se a criação de um texto em inglês (linguagem humana). Ao invés de precisar saber que a repetição será a variação do valor de uma variável i de 1 a 10, simplesmente peço para imprimir 10 vezes a palavra “teste”.

Aliando essa simplicidade à característica de ser totalmente orientada a objetos. Além de, junto com o framework rails permitir a utilização profissional no desenvolvimento de sistemas web. Já acho que são argumentos suficientes para aposentar de vez o Pascal (ainda bastante utilizado no ambiente acadêmico e em cursos técnicos como primeira linguagem de programação complementando a disciplina de algoritmos) e seguir com uma linguagem simples, produtiva, de utilização geral e até divertida como o Ruby.

Lembrando que estou sugerindo como primeira linguagem, para depois continuar com ela ou não. Sempre que possível é muito importante aprender outras linguagens para obter outros pontos de vista.

Um grande abraço e até o próximo Pense nisso!