Essa apresentação passa uma visão de avaliação da linguagem Ruby, como Legibilidade, Redigibilidade, Confiabilidade.
Também cita características que enriquece a linguagem Ruby.
2. Introdução
• Desenvolvida por Yukishiro Matsumoto
• Lançada em 1995
• Baseado na linguagem Perl, Smalltalk,
Python
• Escrita em C
• Multiplataforma
• O projeto mais famoso é o
meta-framework Ruby on Rails.
sexta-feira, 7 de outubro de 11
3. Características
• Interpretada
• não é compilada
• analise sintática é feita em tempo de execução
• Tipagem dinâmica e forte
• não é necessário declaração de variável
• Tipos Primitivos são Classes
• Herança Simples
(É usado Mixin’s, ultiliza o conceito de módulos ou coleções de métodos)
• Diferente das linguagens Python e C++
sexta-feira, 7 de outubro de 11
4. Características
• Multi-paradigma
• Orientada Objetos
• Funcional
• Programação Imperativa
• Open Source
• Case-sensitive
• Bibliotécas (Ruby Gems)
sexta-feira, 7 de outubro de 11
5. Características
• Variáveis
• Variáveis de Instância - @cliente
• Variáveis Classes - @@cliente
• Variáveis Globais - $cliente
• Variáveis Locais - cliente
sexta-feira, 7 de outubro de 11
6. Características
• Ver tudo como um Objeto
Cada parcela de informação e código podem receber as suas próprias
propriedades e ações.
Classe Classe herdando outra
class MyLib class MyOtherLib < MyLib
! @@name = "mylib" ! @@name = "myotherlib"
! end
! def self.name
! ! @@name
! end MyOtherLib.name
end #=> "myotherlib"
MyLib.name MyLib.name
#=> "mylib" #=> "myotherlib"
sexta-feira, 7 de outubro de 11
7. Características
• Os métodos sempre retornam algo, nem
que seja nil
def um_metodo def um_metodo def um_metodo
end (1..5).to_a 1 == 2-1
um_metodo end end
# nil um_metodo um_metodo
# [1,2,3,4,5] # true
• Multiplos retornos por métodos
def um_metodo
return 1,2,3
end
a ,b,c = um_metodo
puts a ,b ,c
#1
#2
#3
sexta-feira, 7 de outubro de 11
8. Critérios de Avaliação
• Legibilidade(Facilidade de Leitura e Entendimento)
• Syntaxe limpa
# Output “Eu gosto de Ruby”
diz = "Eu gosto de Ruby"
puts diz
• Redigibilidade (Facilidade em escrever programas)
• class Carro < Veiculo #suporte a abstração
• carro = 1
carro = ”Gol” # não precisa definir o tipo da variável
• Confiabilidade
• Verificação de Tipos de variáveis (x.kind_of? Integer)
• Tratamento de Exceção (raise, Throw/Catch)
sexta-feira, 7 de outubro de 11
9. Critérios de Avaliação
• Facilidade de Aprendizado
• Documentação para aprendizado
• Similaridade com outras linguagens (C, Python, Smalltalk)
• Reusabilidade
• Possui o Paradigma Orientado a Objetos possuindo Herança
• No Ruby existe o conceito de módulos (chamados categorias em
Objective-C). Os módulos são coleções de métodos.
class MyArray
include Enumerable
end
• Portabilidade
• Roda em todos Sistemas Operacionais (Instalando o RVM)
sexta-feira, 7 de outubro de 11
10. Onde se pode usar?
Testes Automatizados
•Web
•Desktop
•Scripting
•Computação Científica
•Inteligência Artifícial
•Bioinformática
•etc...
sexta-feira, 7 de outubro de 11
11. Plataformas Suportadas
• Mac OS x
•Linux
•MS-DOS
•BSDs (inclui o FreeBSD e o OpenBSD)
•Acorn RISC OS
•Microsoft Windows 95, 98, XP, and Vista
•OS/2
•Amiga
•Celulares Symbian Series 60
•Plataformas que contém uma Máquina Virtual Java
(Usando JRuby ao invés de Ruby oficial)
sexta-feira, 7 de outubro de 11
12. Paradigmas
Linguagem Ruby
Faculdade Anglo Americano
Curso: Ciência da Computação
Nomes: Heverson Damasceno
sexta-feira, 7 de outubro de 11