A palestra apresenta uma introdução à linguagem de programação Ruby, destacando suas principais características como ser interpretada, dinâmica, de tipagem dinâmica e orientada a objetos. O palestrante também discute tópicos como metaprogramação, Gems e implementações do interpretador Ruby, além de exemplos de uso da linguagem.
16. Fevereiro/1993 - idéias iniciais
➔
Versão 0.95 lançada no Japão em dezembro/1995.
➔
Versão 1.0 lançada oficialmente em dezembro/1996.
➔
Versão atual (stable) - Ruby 1.8.7
➔
17. Mas...
Porque esse cara inventou uma nova
linguagem quando já existiam tantas outras?
18. Matz queria uma linguagem de script...
Mais poderosa que Perl
Mais orientada a objetos que Python
Funcional como Lisp, Haskell e Scheme
Que tivesse tudo o que ele sempre amou em
Lisp, Eiffel e Smalltalk
48. class Foo
end
Foo.class_eval do
define_method(quot;blablaquot;) do |arg|
puts arg
end
end
f = Foo.new
f.blabla(quot;123quot;)
# 123
49. class Blergh
def call_private_method
private_method
end
private
def private_method
puts quot;Sou um método privado...quot;
end
end
50. b = Blergh.new
b.call_private_method
# Sou um método privado...
b.private_method
# meta.rb:15: private method
`private_method'
# called for #<Blergh:0xb7c3e940>
(NoMethodError)
b.send(:private_method)
# Sou um método privado...
51. class Foo
def method_missing(name)
puts quot;Nao sei responder a #{name.to_s} :-(quot;
end
end
f = Foo.new
f.blabla
# Nao sei responder a blabla :-(
54. describe quot;A Good Programmerquot; do
it quot;should learn at least one new programming language per yearquot; do
@programmer = Programmer.new('Bob')
@programmer.should_receive(:learn_language).and_return(true)
@programmer.known_languages << Language.new(quot;Rubyquot;)
@programmer.known_languages.should have(3).items
@programmer.status.should be_happy
end
it quot;should create automated tests for all code he writesquot; do
@programmer.should_receive(:write_code).and_return(true)
lambda {
@programmer.write_code
}.should change(@programmer.tests, :length).by(1)
end
end
55. Sanduíche de Margarina
ingredientes:
- Duas fatias de pão
- Um pouco de margarina
instruções
- Espalhe margarina em um dos lados da fatia de pão
- Coloque o pedaço com margarina junto com o pedaço sem
margarina
- Sirva
Rende: Uma porção
Tempo de preparo: 1 minuto
56. receita quot;Sanduiche de Margarinaquot;
ingredientes quot;duas fatias de paoquot;,
quot;um pouco de margarinaquot;
instrucoes quot;Espalhe margarina em um dos...quot;,
quot;coloque o pedaço com margarina...quot;,
quot;Sirvaquot;
rende 1.porcao
tempo 1.minuto
57.
58. Gems
Pacotes com bibliotecas ou aplicações em Ruby
Formato de empacotamento de código padronizado
59. RubyGems
Instalação e remoção de gems e de suas dependências.
Gerência de dependência de pacotes.
Pesquisa e listagem de pacotes locais ou remotos.
Suporte a múltiplas versões instaladas de um mesmo pacote.
Interface simples para criação de novas gems.
Servidores para distribuição de suas próprias gems.
74. • Mac OS X (all varieties)
• Linux (all varieties)
• MS-DOS
• BSDs (including FreeBSD and OpenBSD)
• Acorn RISC OS
• Microsoft Windows 95, 98, XP and Vista (all varieties)
,
• OS/2
• Amiga
• Celulares Symbian Series 60
• Qualquer plataforma para a qual exista uma Máquina Virtual
Java (Usando JRuby ao invés do interpretador Ruby oficial)
76. Ainda não é tão grande quanto o mercado de trabalho para
Java, .NET, etc
No Brasil, ainda cresce mais lentamente do que nos EUA e
na Europa. O Brasil demora a aceitar novas tecnologias.
O maior uso do Ruby no Brasil e no mundo é através do
framework Web Ruby on Rails.
Tem sido uma das linguagens mais utilizadas por start-ups
de tecnologia
78. Dezenas de livros (alguns existem em Português,
a grande maioria somente em Inglês)
Comunidade ativa, com inúmeros blogs, fóruns e
listas de discussão
79. Alguns endereços na internet
http://rubycorner.com/ - Lista de blogs sobre Ruby
http://www.rubyinside.com/ - site de notícias sobre Ruby
http://rubyonbr.org/ - site brasileiro com notícias sobre Ruby
http://groups.google.com/group/rails-br - lista de discussão
brasileira sobre Ruby e Rails
http://ruby-br.org/ - site brasileiro com notícias sobre Ruby