APRESENTAÇÃO RUBY
Alunos
•
•
•
•
Luís Gustavo T. Cordeiro
Jhonatan C. Morais
Guilherme S. Pinheiro
Octávio Richter
HISTÓRICO
Desenvolvida 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 batepapo 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.
CRESCIMENTO
Lista 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 TIOBE
Position
Position
Programming
Ratings
Delta
Dec 2012
Dec 2011
Language
Dec 2012
Dec 2011
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
12
0.977%
-0.27%
A
Delta in Position
Status
Delphi/Object
Pascal
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ÍSTICAS
Estrutura 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ÍSTICAS
Gerenciamento de Memória:
• Feito automaticamente pelo próprio interpretador;
• Acontecem poucos erros ou travamentos;
PRINCIPAIS
CARACTERÍSTICAS
Threads:
• 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
RAILS
•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 LINGUAGEM
Java
Ruby
Definição de métodos
Entre “{}”
“end”
Utilização de bibliotecas
“import”
“require”
Parâmetros de métodos
Entre “()”
Parêntesis opcionais
Atributos
Privados, protegidos,
públicos
privados
Orientação a objetos
Variáveis primitivas e de
instância
Tudo é objeto
Instanciação
x = new X();
x = X.new
Construtor
Nome da classe
initialize
Tipagem
Estática
Dinâmica
Condições
Expressões lógicas
Tudo é verdadeiro,
exceto false e nil
Sobrescrita
Apenas métodos
Métodos e operadores
Encapsulamento
Classes encapsuladas
Classes abertas
DIFERENÇAS DA LINGUAGEM
•
•
•
•
•
Final de linha
Enums
Char
Acesso de atributos
Nome de métodos
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.
JRUBY
Implementaçã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-railsit-is-dead-heat.html
• http://jruby.org/
• http://rubyonrails.com.br
• http://rubygems.org/
• http://www.youtube.com/watch?v=5b3qd2VMLws
Download

Ruby