Lab4 Jorge Augusto

aluno: Jorge Augusto Melegati Gonçalves
ano/sem: 2008/2o.
data do laboratório (num. da semana) : 27/10/2008 (5)

Introdução

O seguinte laboratório tem como objetivo introduzir a linguagem Ruby através da transformação do código referente ao Lab 2, em que se simula a interação entre professor e uma turma de alunos em relação a entrega de relatórios, da linguagem Java para a linguagem Ruby.

Desenvolvimento

Após a configuração do ambiente (instalação do interpretador Ruby 1.8 e utilizando um editor simples de texto (Kate)), iniciou-se a transformação do código. Conforme proposto, o código foi divido em três arquivos:
minhas_classes.rb: contendo as classes;
main.rb: contendo um simulador em modo texto, idêntico ao feito em Java;
meus_testes.rb: contendo a classe de testes, que porta o código da classes de testes do Lab 2.

Classes

Algo interessante na implementação é ser desnecessário a criação de um supertipo abstrato Comportamento como foi feito em Java, pois, por ser Ruby uma linguagem dinãmica, comportamento é uma variável que terá o seu tipo determinado em tempo de execução, que pode ser qualquer uma das classes de comportamento criadas.

Testes

A diferença mais visível encontrada entre Java e Ruby nessa etapa foi a existência de assertivas de testes de lançamento de exceções. Enquanto que a Java era necessário de um bloco try/catch, em Ruby, utiliza-se somente o assert_raise, o que tornou o código de testes muito mais curto.
A seguinte figura mostra o resultado da realização dos testes.

snapshot1.png

Simulador

Não foram sentidas grandes diferenças nessa portagem de código além do que já fora sentido nas outras etapas.
A seguinte figura mostra a execução do simulador para algumas tarefas.

snapshot2.png

Genéricos

Esse era o último quesito do Lab 2, entretanto, este não faz sentido para uma linguagem dinâmica como Ruby.

Conclusão

A prática foi muito interessante pois possibilitou um contato efetivo com a promissora linguagem Ruby. Uma linguagem dinâmica, diferentemente do Java, que é estática, a qual já estamos mais familiarizados.
Ruby, como uma linguagem dinâmica, é muito poderosa, entretanto, percebe-se a necessidade de um grande cuidado ao programar pois, por possibilitar uma infinidade de comandos, o resultado pode não ser o esperado e, às vezes, de difícil depuração.

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License