Introdução
●A linguagem Ruby.
●Seu principal criador.
●Surgimento de seu nome.
Histórico
●Concebida.
Afirmação de Matsumoto: "Eu queria uma linguagem de script que fosse mais
poderosa do que Perl, e ma...
Linguagens que influenciaram Ruby:
● Ada
●CLU
●Dylan
●Eiffel
●Lisp
●Perl
●Python
●Scheme
●Smalltalk
Ao projetar a linguage...
Versões - Por que novas versões?
Segundo a documentação da linguagem, as novas versões e realeses
das mesmas vieram a acor...
Versões - Por que novas versões?
●Hash
●String
●Array
●Manipulação de Arquivos
●Biblioteca Regexp
●Simbolos
Versões - Por que novas versões?
●Integer
●Inclusão de novas bibliotecas como:
- RubyGems
- Rake
- Minitest
- CMath
- Prim...
Versões - Por que novas versões?
Maior Problema : Vulnerabilidade de Segurança no Ruby
Estas vulnerabilidades foram descob...
Versão Atual Ruby 1.9.2
Ruby 1.9.2, descrita como "quase compatível" com a versão 1.9.1, apresenta
suporte a IPv6, melhori...
O que é Ruby on Rails?
"É um framework de desenvolvimento web escrito na linguagem
Ruby.Designado para tornar a programaçã...
Novas versões
Ainda hoje, Matz é o responsável por todas as decisões não-consensuais do
Ruby. Ou seja, qualquer divergênci...
Exemplos de Sucesso
Exemplificações de o porquê Ruby encontra-se entre as 10
linguagens mais populares do mundo.
●Robótica...
Exemplos de Sucesso
●Administração de Sistemas
Ruby foi usado em um componente para a captação de dados da
Level 3 Communi...
Linguagens influenciadas por Ruby
● Falcon
● Fantom
● Groovy
● Ioke
● Nu
Características
● Sua programação.
● Linguagem Free.
● Recursos Nativos.
● Possui o framework Ruby on Rails.
Características
● Existe interfaces para, por exemplo, Python, Perl e Java.
● É independente de plataforma, existindo, por...
Legibilidade
● Ruby é mais voltada para a linguagem natural, com muitos dos seus comandos em
inglês.
● Porém, existem vári...
Redigibilidade
● Ruby possui uma maior preocupação com sua redigibilidade do que com a
legibilidade.
● Por exemplo, enquan...
Confiabilidade
● Ruby possui variáveis de tipos diferentes, porém, todas são classes e não é
necessário declarar tipos.
● ...
Eficiência
● Ruby faz uma concatenação eficiente de strings.
● Apesar de fazer o mesmo que outras linguagens, como o PHP e...
Facilidade de Aprendizado
● A sintaxe do Ruby é fortemente influenciada pela sintaxe da linguagem Eiffel.
● Do ponto de vis...
Facilidade de Aprendizado
● Um ponto negativo para a aprendizagem de Ruby talvez seja a existência de
múltiplos métodos pa...
Ortogonalidade
● O criador da linguagem Ruby acha que ortogonalidade pode ser algo ruim.
● Ele afirma que "características...
Reusabilidade
● Por ter sua parcela de Orientação à Objetos, Ruby tem todas as suas variáveis como
classes, o código é alt...
Modificabilidade
● No quesito manutenabilidade, utilizando Ruby teremos um código mais
legível e de mais fácil manutenção ...
Portabilidade
● Ruby é uma linguagem interpretada, o que, por si só, já garante uma alta
portabilidade.
● Pode ser desenvo...
Custo
● Ruby é uma linguagem free, até mesmo para uso comercial.
● Por ser altamente portável, o custo total do programa é...
Tipos de Dados
§ Object
§ Numeric
§ Integer
§ Fixnum
§ Bignum
§ Float
§ String
§ Symbol
§ Array
§ Hash
§ Regexp
Tipagem Dinâmica
Ruby possui Tipagem dinâmica, mas forte. Isso significa que todas as variáveis
devem ter um tipo (fazer p...
Tipagem Dinâmica
system("title Tipagem Dinamica")
puts "nTIPAGEM DINAMICAnn"
x=10
puts x.class
x=1.1
puts x.class
x=300000...
Variáveis
● Variáveis são referencias para objetos
system("title Referencia")
string = "ABC"
copia_da_string = string
stri...
Operadores
Métodos
def hello_world
puts "Hello World"
end
Exemplo: Fatorial
system("title Fatorial")
puts "nnFATORIALnn"
def fatorial(number)
if (number == 0)
return 1
else
return ...
Classes
system("title Numero Maior")
class Maior
def initialize(numero1, numero2)
@n1 = numero1
@n2 = numero2
end
def maio...
Exemplo: Maior entre Dois Números
puts "Digite o primeiro numero: "
n1 = gets()
puts "Digite o segundo numero: "
n2 = gets...
Ruby
Próximos SlideShares
Carregando em…5
×

Ruby

965 visualizações

Publicada em

Apresentação sobre a linguagem de programação Ruby

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
965
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
28
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Ruby

  1. 1. Introdução ●A linguagem Ruby. ●Seu principal criador. ●Surgimento de seu nome.
  2. 2. Histórico ●Concebida. Afirmação de Matsumoto: "Eu queria uma linguagem de script que fosse mais poderosa do que Perl, e mais orientada a objetos do que Python. É por isso que eu decidi desenvolver minha própria linguagem.". "Desenvolvedores querem criar a linguagem de programação perfeita. Eles querem poder dizer: “Veja, a minha linguagem é perfeita. Com ela você pode fazer qualquer coisa”. Mas é simplesmente impossível conceber uma linguagem perfeita. " ●Destinada.
  3. 3. Linguagens que influenciaram Ruby: ● Ada ●CLU ●Dylan ●Eiffel ●Lisp ●Perl ●Python ●Scheme ●Smalltalk Ao projetar a linguagem, Matz reuniu os principais pontos de dessas linguagens, como: - As expressões regulares de Lisp; - O lambda calculus de Eiffel; - A orientação a objetos de Smalltalk; - A tipagem dinâmica de Perl; - E outras características provenientes de Python, Ada e CLU.
  4. 4. Versões - Por que novas versões? Segundo a documentação da linguagem, as novas versões e realeses das mesmas vieram a acorrer desde a versão que popularizou a linguagem, Ruby 1.3, para corrigir certos bugs e acrescentar funcionalidades como: ●Problemas de compatibilidade entre versões. ●Alterações no núcleo da linguagem : -Nova sintaxe e semântica; ●Exceções
  5. 5. Versões - Por que novas versões? ●Hash ●String ●Array ●Manipulação de Arquivos ●Biblioteca Regexp ●Simbolos
  6. 6. Versões - Por que novas versões? ●Integer ●Inclusão de novas bibliotecas como: - RubyGems - Rake - Minitest - CMath - Prime - Ripper - Readline - RDoc
  7. 7. Versões - Por que novas versões? Maior Problema : Vulnerabilidade de Segurança no Ruby Estas vulnerabilidades foram descobertas por Drew Yao da Segurança de Produtos da Apple. ● Algumas vulnerabilidades de segurança no Ruby permitem ataques "denial of service (DoS)" ou execução arbitrária de código. ● Vulnerabilidade DoS na biblioteca REXML -Existe uma vulnerabilidade DoS na biblioteca REXML incluída na biblioteca standard do Ruby. Uma técnica de ataque conhecida como “XML entity explosion” poderá ser utilizada para terminar remotamente qualquer aplicação que faça parse de XML com a biblioteca REXML.
  8. 8. Versão Atual Ruby 1.9.2 Ruby 1.9.2, descrita como "quase compatível" com a versão 1.9.1, apresenta suporte a IPv6, melhorias na codificação de caracteres, uma classe Random com suporte a múltiplos geradores de números aleatórios e nova classe Time, que não sofre mais com o problema do ano 2038 [2] (falha na representação de data nos computadores, que poderia ocasionar erro em alguns programas). Houve também outras alterações, incluindo melhorias no regexp, remoção do diretório atual como variável global e novas implementações nas bibliotecas dl e psych. Entre outros progressos ocorridos estão os novos métodos adicionados à Array, Enumerable, Enumerator, File, Env, Digest e muitas outras classes.
  9. 9. O que é Ruby on Rails? "É um framework de desenvolvimento web escrito na linguagem Ruby.Designado para tornar a programação de aplicações web mais fácil, fazendo várias suposições sobre o que cada desenvolvedor precisa para começar." Ele permite que você escreva menos código enquanto faz mais que muitas outras linguagens e frameworks. Desenvolvedores Rails mais experientes também dizem que ele torna o desenvolvimento de aplicações web mais divertido.
  10. 10. Novas versões Ainda hoje, Matz é o responsável por todas as decisões não-consensuais do Ruby. Ou seja, qualquer divergência quanto à implementação de uma nova funcionalidade é resolvida pelo "ditador benevolente". Apesar desta "dependência", a comunidade é forte a ponto de sobreviver "caso o Matz seja atropelado por um ônibus espacial". Existem pessoas que estão tão inteiradas com o código quanto o próprio Matz. Diferentemente de outras tecnologias opensource, não existe uma empresa por trás de suas operações, bancando os custos. O projeto sobrevive de doações feitas pelos usuários satisfeitos e por empresas que conseguiram aumentar sua produtividade utilizando Ruby.
  11. 11. Exemplos de Sucesso Exemplificações de o porquê Ruby encontra-se entre as 10 linguagens mais populares do mundo. ●Robótica Ruby foi usado no projeto MORPHA, implementando parte de uma funcionalidade de ativação de um robô da Siemens. ●Para Simulações: A NASA utilizou Ruby; A Motorola fez uso de Ruby para gerar casos de teste e testar os mesmos.
  12. 12. Exemplos de Sucesso ●Administração de Sistemas Ruby foi usado em um componente para a captação de dados da Level 3 Communications. Um sistema de planejamento e capacidade Unix, que recolhe estatísticas de performance de cerca de 1700 servidores Unix espalhados pelo mundo. ●Telefônica A empresa Lucent faz uso de Ruby num produto de tecnologia 3G.
  13. 13. Linguagens influenciadas por Ruby ● Falcon ● Fantom ● Groovy ● Ioke ● Nu
  14. 14. Características ● Sua programação. ● Linguagem Free. ● Recursos Nativos. ● Possui o framework Ruby on Rails.
  15. 15. Características ● Existe interfaces para, por exemplo, Python, Perl e Java. ● É independente de plataforma, existindo, por exemplo, Java (JRuby) e . NET (Ruby.net e IronRuby). ● Altamente portável, podendo ser desenvolvido em Linux, Windows, Mac, entre outros. ● Atualmente.
  16. 16. Legibilidade ● Ruby é mais voltada para a linguagem natural, com muitos dos seus comandos em inglês. ● Porém, existem várias formas de se resolver um mesmo problema em Ruby, podendo ser usada até a sintaxe do Python. 5.Times{print “Hello World!”} A leitura fica assim: Cinco vezes imprima Hello World! ● A legibilidade do código também é influenciada pela forma em que as variáveis são declaradas, podendo-se identificar facilmente o papel de cada uma. local = "local" @instancia = 42 @@classe = /f+/ $Pi = 3.1415926
  17. 17. Redigibilidade ● Ruby possui uma maior preocupação com sua redigibilidade do que com a legibilidade. ● Por exemplo, enquanto Python possui 9 métodos para listas, Ruby possui 79, o que torna a resolução de algoritmos mais fácil, mas dificulta um pouco a legibilidade, principalmente por terceiros. ● O criador, ao ser entrevistado, disse que prefere dar opções ao programador, sendo possível programar ao estilo Python, em vez da forma criada para o Ruby.
  18. 18. Confiabilidade ● Ruby possui variáveis de tipos diferentes, porém, todas são classes e não é necessário declarar tipos. ● Como ponto positivo para a confiabilidade, Ruby possui tratamento para exceções, semelhante ao Java e Python, o que facilita no tratamento de erros. ● As palavras-chave para tratamentos de exceção são "begin", "rescue", "ensure" e "retry". begin # -rescue UmTipoDeExcecao # - rescue OutroTipoDeExcecao # - else # outras exceções end
  19. 19. Eficiência ● Ruby faz uma concatenação eficiente de strings. ● Apesar de fazer o mesmo que outras linguagens, como o PHP e o Java, por exemplo, e em menos linhas, Ruby, em geral, é mais lenta que outras linguagens. ● O famoso sote Twitter foi feito em Ruby, porém, devido aos grandes números de acessos diários, foi trocado para o Java. Isto tornou o microblog 3x mais rápido.
  20. 20. Facilidade de Aprendizado ● A sintaxe do Ruby é fortemente influenciada pela sintaxe da linguagem Eiffel. ● Do ponto de vista do aprendizado, a sintaxe é muito simples, facilitando seu aprendizado. ● Desde sua criação até o ano 2000, era uma linguagem praticamente usada apenas no Japão. ● Em setembro de 2000, o primeiro livro em inglês, Programming Ruby, foi impresso, sendo mais tarde liberado gratuitamente para o público, ajudando no processo de adoção de Ruby por falantes do inglês. Este fato ajudou a popularizar a linguagem no ocidente, e a auxiliar no aprendizado da linguagem por programadores novos ou já experientes em outras linguagens. ● O site da linguagem disponibiliza um tutorial intitulado "Ruby em vinte minutos", que mostra todas as principais funcionalidades da linguagem e permite que um programador saia escrevendo comandos básicos em pouquíssimo tempo.
  21. 21. Facilidade de Aprendizado ● Um ponto negativo para a aprendizagem de Ruby talvez seja a existência de múltiplos métodos para se escrever um mesmo comando. Exemplo: ● O próprio código da linguagem Ruby pode ser modificado, podendo gerar confusão em seu aprendizado. ● Necessita conhecimento prévio de orientação à objetos, senão pode se tornar mais trabalhoso ter que aprender o paradigma e a linguagem. a = "nIsto é uma string de aspas duplasn" a = % Q{nIsto é uma string de aspas duplasn} a = % {nIsto é uma string de aspas duplasn} a = % /nIsto é uma string de aspas duplasn/ a = <<BLOCO Isto é uma string de aspas duplas BLOCO
  22. 22. Ortogonalidade ● O criador da linguagem Ruby acha que ortogonalidade pode ser algo ruim. ● Ele afirma que "características ortogonais, quando combinadas, podem explodir em complexidade". ● Isso quer dizer que foi-se aberto mão de parte da ortogonalidade em função da simplicidade da linguagem. ● Matsumoto optou por algo mais harmonioso do que ortogonal. Isto é,
  23. 23. Reusabilidade ● Por ter sua parcela de Orientação à Objetos, Ruby tem todas as suas variáveis como classes, o código é altamente reutilizável. ● Ruby também possui uma série de bibliotecas prontas, disponíveis em sites como Ruby Forge e Ruby Application Archive (RAA). ● As gemas - pacotes ou aplicações -, programas ou pedaços de programas são distribuídos através do gerenciador RubyGems. Esta é outra possibilidade de reuso na linguagem Ruby.
  24. 24. Modificabilidade ● No quesito manutenabilidade, utilizando Ruby teremos um código mais legível e de mais fácil manutenção e modificação, por sua orientação a objetos. ● Utilizando o Rails (Ruby on Rails, framework da linguagem) este quesito ainda melhora, e ganha de linguagens como o PHP. ● Porém, é possível escrever código script no Ruby, o que pode complicar sua manutenção futura.
  25. 25. Portabilidade ● Ruby é uma linguagem interpretada, o que, por si só, já garante uma alta portabilidade. ● Pode ser desenvolvida e rodar em sistemas operacionais diversos, como Linux, Windows e Mac. ● A linguagem implementa threads totalmente em nível de usuário, o que a torna independente de sistema operacional. ● Uma grande desvantagem de se utilizar threads em nível de usuário é que elas compartilham o escalonamento do processo ao contrário de threads de sistema que compartilham o processador com os outros processos. ● Usar threads em Ruby nunca faz o programa executar mais rápido, mas o torna mais lento por causa do custo da troca de contexto. Mesmo assim, permite a execução concorrente compartilhando um mesmo espaço de memória.
  26. 26. Custo ● Ruby é uma linguagem free, até mesmo para uso comercial. ● Por ser altamente portável, o custo total do programa é diminuído. Esta característica também implica em uma maior distribuição do programa. ● A maior parte do seu custo se deve ao contratamento de programadores experientes. ● Pode haver custos referentes ao treinamento de programadores Ruby. ● Há baixos custos para manutenção, uma vez que a linguagem é altamente legível e facilmente modificável por outros programadores, na maioria dos casos.
  27. 27. Tipos de Dados § Object § Numeric § Integer § Fixnum § Bignum § Float § String § Symbol § Array § Hash § Regexp
  28. 28. Tipagem Dinâmica Ruby possui Tipagem dinâmica, mas forte. Isso significa que todas as variáveis devem ter um tipo (fazer parte de uma classe), mas a classe pode ser alterada dinamicamente. st = String.new() st = "Isto é uma string"
  29. 29. Tipagem Dinâmica system("title Tipagem Dinamica") puts "nTIPAGEM DINAMICAnn" x=10 puts x.class x=1.1 puts x.class x=3000000000 puts x.class x="a" puts x.class x=true puts x.class x=false puts x.class system("pause")
  30. 30. Variáveis ● Variáveis são referencias para objetos system("title Referencia") string = "ABC" copia_da_string = string string[0] = "B" puts "string: " + string + "n" puts "copia_da_string: " + copia_da_string + "n" system("pause")
  31. 31. Operadores
  32. 32. Métodos def hello_world puts "Hello World" end
  33. 33. Exemplo: Fatorial system("title Fatorial") puts "nnFATORIALnn" def fatorial(number) if (number == 0) return 1 else return number * fatorial(number - 1) end end puts "nDigite um numero: " n = gets() puts fatorial(n.to_i) system("pause")
  34. 34. Classes system("title Numero Maior") class Maior def initialize(numero1, numero2) @n1 = numero1 @n2 = numero2 end def maior() if @n1 > @n2 puts "Primeiro Numero Maior" elsif @n2 > @n1 puts "Segundo Numero Maior" else puts "Numeros Iguais" end end end
  35. 35. Exemplo: Maior entre Dois Números puts "Digite o primeiro numero: " n1 = gets() puts "Digite o segundo numero: " n2 = gets() n = Maior.new(n1.to_i,n2.to_i) n.maior() system("pause")

×