Apresentação Ruby
description
Transcript of Apresentação Ruby
APRESENTAÇÃO RUBYAlunos
• Luís Gustavo T. Cordeiro• Jhonatan C. Morais• Guilherme S. Pinheiro• Octávio Richter
HISTÓRICODesenvolvida no Japão em 1995, por Yukihiro "Matz" Matsumoto.
• Linguagem de script.• Mais poderosa do que Perl, e mais orientada a
objetos do que Python.Uniu partes das suas linguagens favoritas:
• Perl, Smalltalk, Eiffel, Ada e Lisp.Equilibra a programação funcional com a programação imperativa.
IDEAIS DO CRIADOR• “Tento tornar o Ruby natural, não simples”
• “O Ruby é simples na aparência, mas muito complexo no interior, tal como o corpo humano.” Matz
Por que esse nome?• O nome “Ruby”, foi decidido durante uma sessão de bate-
papo online entre Matsumoto e Keiju Ishitsuka antes de sua utilização. Inicialmente foram propostos dois nomes: “Coral” e “Ruby”
• Matsumoto escolheu Ruby por ser a pedra zodiacal de um de seus colegas.
Totalmente livre. Não somente livre de custos, mas também livre para utilizar, copiar, modificar e distribuir.
CRESCIMENTOLista de discussão em inglês chamada Ruby-Talk
• principal lista de correio para a discussão sobre a linguagem Ruby subiu para uma média de 200 mensagens diárias.
O primeiro livro em inglês, Programming Ruby, liberado gratuitamente para o público, ajudou no processo de adoção de Ruby por falantes do inglês.
• Por volta de 2005, o interesse pela linguagem Ruby subiu em conjunto com o Ruby on Rails, um framework de aplicações web popular escrito em Ruby.
Eleita Linguagem de Programação do Ano em 2006
ÍNDICE TIOBEPositionDec 2012
PositionDec 2011
Delta in PositionProgramming
LanguageRatings
Dec 2012Delta
Dec 2011Status
1 2 C 18.696% +1.64% A
2 1 Java 17.567% +0.01% A
3 5 Objective-C 11.116% +4.31% A
4 3 C++ 9.203% +0.95% A
5 4 C# 5.547% -2.66% A
6 6 PHP 5.541% -0.46% A
7 7 (Visual) Basic 5.174% +0.42% A
8 8 Python 3.848% +0.36% A
9 9 Perl 2.174% -0.30% A
10 11 Ruby 1.728% +0.23% A
11 10 JavaScript 1.321% -0.88% A
12 12Delphi/Object
Pascal0.977% -0.27% A
13 13 Lisp 0.949% -0.23% A
14 16 Pascal 0.894% +0.16% A
15 35 Visual Basic .NET 0.889% +0.53% A
16 17 Ada 0.648% +0.02% B
17 22 MATLAB 0.608% +0.07% B
18 21 Lua 0.601% +0.05% A--
19 19 Assembly 0.580% +0.02% B
20 14 PL/SQL 0.574% -0.23% B
PRINCIPAIS CARACTERÍSTICASEstrutura Geral:
• Linguagem interpretada;• Orientada à objetos (“tudo” é objeto);• Portável;• Trabalha com herança, classes, métodos, polimorfismo e
escalonamento;• Sintaxe relativamente simples e de fácil compreensão
PRINCIPAIS CARACTERÍSTICAS•Métodos:
– Possibilidade de dinamicamente expandir os parâmetros;– Pode retornar qualquer tipo;
PRINCIPAIS CARACTERÍSTICAS•Variáveis:
– Referencias para objetos (não existe ponteiros);– “Não” possuem tipo;– Não precisam ser declarados antes de serem utilizados;– Atribuição de valor é feita através de referencias;
PRINCIPAIS CARACTERÍSTICASGerenciamento de Memória:
• Feito automaticamente pelo próprio interpretador;• Acontecem poucos erros ou travamentos;
PRINCIPAIS CARACTERÍSTICASThreads:
• Não há necessidade de uma biblioteca externa;• Implementação ocorre em nível de usuário;• Criação de novos processos é feita pelo método da classe
Kernel;• Sincronização é feita através do mutex;
PRINCIPAIS CARACTERÍSTICAS
•Flexibilidade:– Permite aos seus utilizadores alterar partes da linguagem;– Partes essenciais podem ser removidas ou referenciadas à
vontade;– Acrescentar partes as já existentes;
JAVA WEB X RUBY ON JAVA WEB X RUBY ON RAILSRAILS•Produtividade e curva de aprendizado;• Simplicidade;• Manutenção;• Internacionalização (UTF-8);• Aplicativos de suporte;• Funções adicionais (bibliotecas);• Manipulação de dados;• Suporte ao longo prazo.
DIFERENÇAS DA LINGUAGEMDIFERENÇAS DA LINGUAGEMJava Ruby
Definição de métodos Entre “{}” “end”
Utilização de bibliotecas “import” “require”Parâmetros de métodos Entre “()” Parêntesis opcionaisAtributos Privados, protegidos,
públicosprivados
Orientação a objetos Variáveis primitivas e de instância
Tudo é objeto
Instanciação x = new X(); x = X.newConstrutor Nome da classe initializeTipagem Estática Dinâmica
Condições Expressões lógicas Tudo é verdadeiro, exceto false e nil
Sobrescrita Apenas métodos Métodos e operadoresEncapsulamento Classes encapsuladas Classes abertas
• Final de linha• Enums• Char• Acesso de atributos• Nome de métodos
DIFERENÇAS DA LINGUAGEMDIFERENÇAS DA LINGUAGEM
PRESENÇA DE RUBY NO MERCADO
• Ruby e suas tecnologias são utilizadas por grandes corporações em diversos tipos de aplicações, destinadas por exemplo, a telefonia, gerência de sistemas e redes, portais corporativos, comércio eletrônico, redes sociais e até mesmo robótica.
PRESENÇA DE RUBY NO MERCADO
• Segundo informação do site Workingwithrails, grandes empresas brasileiras como Rede Globo, Grupo Abril, Locaweb, e gigantes internacionais como BBC, AOL, Amazon, Groupon entre outras utilizam a tecnologia Ruby on Rails em suas organizações.
RUBY GEMS• Gerenciador de pacotes de Ruby. • Disponibiliza um formato padrão para a distribuição de
programas e bibiliotecas Ruby, são os pacotes denominados “gems”.
• Tem como fonte padrão o seu site oficial (rubygems.org), no site há espaço para desenvolvedores cadastrados disponibilizarem suas bibiliotecas para toda comunidade.
RUBY ON RAILS• Framework livre de desenvolvimento web. Permite
desenvolvimento rápido e fácil de aplicações, seguindo o padrão de arquitetura MVC (Model-View-Controller). Tem sido a maior razão para o sucesso de Ruby na web.
JRUBYImplementação da linguagem Ruby para plataforma Java
• Roda sobre a JVM• Threads Nativas• JIT (Just-in-time compiler)• Garbage colector
• Possibilidade de utilizar bibliotecas e classes Java• Jar's, servlets, hibernate, JDBC, etc.• Suporta Rubygems• Suporta Rails
UTILIZAÇÃO DE JAVA COMO PLATAFORMA
REFERÊNCIAS• http://www.dotlib.com.br/i/4768a22a0d58da3cfa71294e40ed6229.pdf• http://www.ruby-lang.org• http://pt.wikipedia.org/wiki/Ruby_(linguagem_de_programa%C3%A7
%C3%A3o)• http://www.tryruby.org• http://www.slideshare.net/Belighted/ruby-vs-java• http://www.urubatan.com.br/ruby-on-rails-x-java-web/• http://www.pardontheinformation.com/2008/09/java-vs-ruby-on-rails-
it-is-dead-heat.html• http://jruby.org/• http://rubyonrails.com.br• http://rubygems.org/• http://www.youtube.com/watch?v=5b3qd2VMLws