SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
As Novidades do
Ruby 2.1
Marcio Trindade
Marcio Trindade
• Formado em Ed. Física.
• Trabalho com Ruby desde 2008.
• marciotrindade.com
• twitter.com/marciotrindade
• github.com/marciotrindade
Locaweb
Email Marketing
RubyConf Brasil 2014
http://eventos.locaweb.com.br/rubyconf-brasil-2014
promoabrilproruby
28 e 29 de Agosto
As Novidades do
Ruby 2.1
New features
• Refinements
• Decimal Literals
• All symbols
• Invalid Bytes
• def implementation
• Keyword arguments
Refinements
• É um novo conceito de Monkey Patching que
não altera o objeto como um todo, apenas
adiciona métodos a um contexto específico.
Decimal Literals
• Uma nova sintaxe pra definirmos números
racionais.
All symbols
• Novo método da classe Symbol que retorna
todos os symbols.
Invalid Bytes
• O ruby agora vem com métodos específicos pra
trabalhar com "strings" que contenham bytes
inválidos.
def implementation
• Agora quando você declara um método é
retornado um símbolo com o nome do método.
Keyword arguments
• Agora é possível fazer um argumento nomeado
ser obrigatório, o que no Ruby2.0 não era
permitido.
Internal improvements
• Profiling
• Method caching
• Number improvements
• Frozen String Literals
• RGenGC: Restricted Generational GC
Profiling
• Uma nova API para medições e realizar
métricas com baixo custo.
• Além disso o módulo ObjectSpace ganhou
alguns métodos que podem nos ajudar a
encontrar problemas de memory leak.
• Verificar a palestra do "Sam Rawlins" na
RubyConf 2013
Method caching
• Alteração realizada na VM do ruby onde
melhoraram a forma de invalidar cache de
metódos, com isso temos uma melhora de
performance de até 10%.
Number improvements
• Internamente passa a utilizar inteiros de 128 bits
para representar os "bignums" além de utilizar a
biblioteca (GNU Multiple Precision Arithmetic
Library) que traz um ganho de performance e
precisão para cálculos complexos.
Frozen String Literals
• Alteração na vm pra reutilizar Strings
congeladas assim como ocorre com os
símbolos.
RGenGC
• Koichi Sasada implementou um novo Garbage
Collector que diferencia objetos novos e velhos,
diminuindo assim o tempo necessário para marcar
os objetos, com isso temos um tempo menor em
que a VM fica parada (o famoso stop the world)
Tim Robertson
http://omniref.com/blog/blog/2014/03/27/ruby-garbage-collection-still-not-
ready-for-production/
!
Sam Saffron
http://samsaffron.com/archive/2014/04/08/ruby-2-1-garbage-collection-
ready-for-production
Perguntas?
Marcio Trindade
Obrigado!
Referências
https://www.ruby-lang.org/en/news/2013/12/25/ruby-2-1-0-is-released/
!
http://ruby-doc.org/core-2.1.0/
!
http://rkh.im/ruby-2.1
!
http://www.sitepoint.com/look-ruby-2-1/

Mais conteúdo relacionado

Semelhante a Ruby 21

ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercadoelliando dias
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Joao Lucas Santana
 
Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]Ricardo Silva
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009Caue Guerra
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Railstchandy
 
Programação funcional que funciona
Programação funcional que funcionaProgramação funcional que funciona
Programação funcional que funcionaRodrigo Serradura
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Julio Monteiro
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Renato Groff
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Renato Groff
 
Definição de processos para AS Brasil utilizando Rational Method Composer
Definição de processos para AS Brasil utilizando Rational Method ComposerDefinição de processos para AS Brasil utilizando Rational Method Composer
Definição de processos para AS Brasil utilizando Rational Method ComposerWebcasts developerWorks Brasil
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Renato Groff
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Railsismaelstahelin
 

Semelhante a Ruby 21 (20)

Ruby e Rails
Ruby e RailsRuby e Rails
Ruby e Rails
 
Rails na pratica
Rails na praticaRails na pratica
Rails na pratica
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercado
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)
 
Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Rails
 
Programação funcional que funciona
Programação funcional que funcionaProgramação funcional que funciona
Programação funcional que funciona
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
 
Definição de processos para AS Brasil utilizando Rational Method Composer
Definição de processos para AS Brasil utilizando Rational Method ComposerDefinição de processos para AS Brasil utilizando Rational Method Composer
Definição de processos para AS Brasil utilizando Rational Method Composer
 
Ruby on rails porque usar rails?!
Ruby on rails   porque usar rails?!Ruby on rails   porque usar rails?!
Ruby on rails porque usar rails?!
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Conhecendo o Ruby on Rails
Conhecendo o Ruby on RailsConhecendo o Ruby on Rails
Conhecendo o Ruby on Rails
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 

Ruby 21