A programmer's best friendfrank/INE5612/Seminario2011.1/Ruby.pdf · Fernando Zimmermann Geison...
Transcript of A programmer's best friendfrank/INE5612/Seminario2011.1/Ruby.pdf · Fernando Zimmermann Geison...
Fernando Zimmermann
Geison Machado
Mayco Amorim
Thiago Castro
A programmer's best friend
• Linguagem de programação interpretada
multiparadigma;
• Possui gerenciamento de memória
automático;
• Ruby é totalmente livre.
• Desenvolvida no Japão em 1995,
por Yukihiro Matsumoto;
• Originalmente planejada para ser usada
como linguagem de script;
• Misturou partes de suas linguagens
favoritas (Perl, Smalltalk, Eiffel, Ada e
Lisp).
• Em 2006 atingiu aceitação massiva;
• 12ª posição entre as linguagens de
programação em todo o mundo (índice
TIOBE);
• Ruby on Rails Web Framework.
• Pearl, Python, SmallTalk
• Ponto e vírgula
• Identação
• Escopo das variáveis
• attr_writer
• attr_reader
puts "Hello World"
class HelloWorld
def show_me
puts "Hello World"
end
end
hw = HelloWorld.new
hw.show_me
• Ruby forge
• Ruby Application Archive(RAA)
• RubyGems
• Programador, produtividade e diversão
• Voltado ao programador, não à maquina
• Linguagens são uma expressão dos nossos
pensamentos.
• Pessoas são boas em:
• Cometer erros, criação, Imaginação
• Pessoas são ruins em:
• Fazer cópias, trabalhos tediosos, cálculos
rápidos
• Segue o POLA ( Principle of Least Astonishment )
• Pirinciple of Succincteness ( Principio de concisão )
• Suporte a Unicode ainda é considerado bastante
cheio de bugs
• É uma linguagem relativamente nova
• Linguagem interpretada
• Execução mais lenta do que linguagens
compiladas
• Just in time compilation
• Rápida, mas não tão rápida quanto poderia ser.
• Atualizações previstas para a versão 2.0
• Rails é um framework que facilitou a
utilização do Ruby para CRUD e outras
necessidades;
• Principal responsável pelo sucesso do
Ruby.
• Objetivos diferentes;
• Paradigmas;
• Compilação;
• Facilidade de aprendizado:
tryruby.org e rubyforzombies.org
• Repositório unificado na internet;
• Download similar ao apt e yum;
• Rake;
• Repositório: http://rubygems.org/
• Existem solução não estáveis que
compilam o script em ruby para
linguagem C;
• Soluções Jruby;
• Twitter;
• BaseCamp (37 Signals);
• Scribd;
• GitHub;
• Hulu.
• Isso é uma variável de instância: @teste
• Isso é uma variável local: oque='vishi'
• Isso é uma variável global: $i=0
• Primeiro hello world em ruby
Simples: puts → comando pra impressão
puts “hello world”
• A sintaxe de Ruby não usa chaves nem
ponto e virgula para organização do
corpo da classe, ela usa o comando 'end'
para isso:
Class classe
#blablabla
End
• O cerquilha define um comentário, Class
define que eh uma classe e end neste
caso, é o fim da classe
#esse eh um metodo
def oque?
puts “meu metodo”
end
#metodo com parametro
def escrevemuito(ateonde)
i=0
while i < ateonde
puts “passei aqui”+i.to_s
end
• Foi necessário adicionar '.to_s' um
método acessivel a todos os objetos em
Ruby, para poder transformar o inteiro 'I'
em para string, pois do contrário não
concatenaria string com int “passei
aqui”+i.to_s
• Em casos de valores string serem
parseados para int seria '3'.to_i
Ex.:
class Teste
def initialize(value)
@value = value
end
end
Construtor passando valor para variavel de instancia
Atribuição simples:
MeuArr=[1,'m',2,5,'y',1,9,10]
MeuArr.each{|e| puts e.to_s}
for i in 0 ... MeuArr.length
puts i.to_s
end
i=0
while i < a
puts MeuArr[i].to_s
i+=1
end
def fatorial(number)
if (number < 2)
return number
else
return number * fatorial(number
- 1)
end
end
O return é usado apenas quando o retorno
não está no final do método
teste = Teste.new(proconstrutor)
Import para classe:
require 'Teste.rb'
Usar metodo da classe:
teste.metodo(parametro)
teste.metodo2
Arquivos Ruby têm extensão de arquivo:
'rb'
• Ruby pode ser executado no terminal
linux com o comando 'ruby
nomeclasse.rb'
• Ou editando no proprio terminal com a
ferramenta 'irb'
class Teste
def initialize(valor)
@valor = valor
end
def getValor
@valor
end
end
require 'Teste.rb'
teste=Teste.new(“olah”)
puts teste.getValor
http://www.ruby-lang.org/en/documentation/ruby-from-other-
languages/to-ruby-from-java/
http://www.ruby-lang.org/en/documentation/quickstart/
http://www.ruby-lang.org/en/about/
http://terramel.org/aulas-de-ruby-uma-breve-introducao/
http://ruby-br.org/?page_id=15
http://en.wikipedia.org/wiki/Ruby_(programming_language)
http://www.rubyonbr.org/articles/2006/08/24/programa-helloworld-em-
ruby/
http://ruby-br.org
http://www.ruby-lang.org
http://www.slideshare.net/vishnu/the-ruby-programming-language-or-
why-are-you-wasting-brain-power?src=related_normal&rel=626067