aluno: Ricardo Itiro Sabota Tominaga
ano/sem: 2008/2o.
data do laboratório (num. da semana) : 04/11/2008 (6)
Introdução
Este laboratório teve por objetivo a introdução à linguagem de programação Ruby através da portabilização do código de um laboratório passado.
Desenvolvimento
Tipagem dinâmica
Uma das mais práticas características da linguagem Ruby é a tipagem dinâmica. Ela permite a determinação de um tipo em tempo de execução, ao contrário da tipagem estática, que determina um tipo em tempo de compilação. Algumas das vantagens da tipagem dinâmica que foram notadas durante a execução do laboratório:
- Não há necessidade de determinar tipos de retorno;
- Os tipos genéricos deixam de existir;
- Não há classes nem métodos abstratos;
- Não é necessário se declarar as variáveis nem especificar seus tipos;
- Conseqüente redução de linhas de código.
Duas diferenças bem claras com relação ao código portabilizado são:
- Eliminação da classe comportamento;
- Eliminação da classe queue genérica.
No caso do comportamento, ele é definido apenas passando um objeto que possui o respectivo comportamento.
... def initialize(nome,fila) @nome = nome @fila = fila @comportamento = Esforcado.new end attr_writer :comportamento ...
No caso da queue genérica, o tipo armazenado na fila é definido em runtime.
class Queue def initialize @fila ||= [] end def queue(elem) @fila.push elem end def dequeue return @fila.shift end end
Getters e Setters
A convenção sintática para se escrever getters e setters é muito comprimida, no bom sentido, pois é simples e ocupa, geralmente, uma linha de código, enquanto que em Java seriam necessárias três ou quatro linhas.
... attr_reader :qualidade,:originalidade,:aluno ...
Exceções
O lançamento e o tratamento de exceções é tão bom quanto o do Java, com a vantagem que não é necessário instanciar classe alguma para se lançar exceções.
Lançando:
... raise "USP nao tem Summa" if comportamentoo.is_a?(Summa) ...
Tratando:
... begin alunos.last.comportamento = Burro.new rescue Exception => e puts "Erro: "+e end ...
Testes
Classe teste
A classe teste portabilizada é executada com sucesso.
Simulador
Execução de um exemplo no simulador.
Conclusão
Foi possível, através do desenvolvimento desse laboratório, ter um bom contato com a linguagem Ruby. Ela se mostrou uma ferramenta eficiente, pois apresenta alta produtividade e diversas facilidades, tanto pela sua sintaxe simples quanto pelo fato de ter tipagem dinâmica e ser funcional. Até mesmo em relação à linguagem Java, a linguagem Ruby consegue fazer frente. Isso pode ser percebido pela redução da quantidade de linhas de código do programa escrito nessa linguagem. A organização do código através de indentação o deixa bem organizado e legível, além de poupar o programador de digitar grande número de caracteres não alfanuméricos, os quais diminuem a velocidade de produção. Enfim, o autor gostaria de dizer que em princípio tinha um certo preconceito com relação a essa nova linguagem, mas no decorrer da sua utilização ela provou sua utilidade.