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...
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 cont...
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 Gene...
Profiling
• Uma nova API para medições e realizar
métricas com baixo custo.
• Além disso o módulo ObjectSpace ganhou
alguns...
Method caching
• Alteração realizada na VM do ruby onde
melhoraram a forma de invalidar cache de
metódos, com isso temos u...
Number improvements
• Internamente passa a utilizar inteiros de 128 bits
para representar os "bignums" além de utilizar a
...
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 tem...
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:...
Próximos SlideShares
Carregando em…5
×

Ruby 21

816 visualizações

Publicada em

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

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

Nenhuma nota no slide

Ruby 21

  1. 1. As Novidades do Ruby 2.1 Marcio Trindade
  2. 2. Marcio Trindade • Formado em Ed. Física. • Trabalho com Ruby desde 2008. • marciotrindade.com • twitter.com/marciotrindade • github.com/marciotrindade
  3. 3. Locaweb
  4. 4. Email Marketing
  5. 5. RubyConf Brasil 2014 http://eventos.locaweb.com.br/rubyconf-brasil-2014 promoabrilproruby 28 e 29 de Agosto
  6. 6. As Novidades do Ruby 2.1
  7. 7. New features • Refinements • Decimal Literals • All symbols • Invalid Bytes • def implementation • Keyword arguments
  8. 8. 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.
  9. 9. Decimal Literals • Uma nova sintaxe pra definirmos números racionais.
  10. 10. All symbols • Novo método da classe Symbol que retorna todos os symbols.
  11. 11. Invalid Bytes • O ruby agora vem com métodos específicos pra trabalhar com "strings" que contenham bytes inválidos.
  12. 12. def implementation • Agora quando você declara um método é retornado um símbolo com o nome do método.
  13. 13. Keyword arguments • Agora é possível fazer um argumento nomeado ser obrigatório, o que no Ruby2.0 não era permitido.
  14. 14. Internal improvements • Profiling • Method caching • Number improvements • Frozen String Literals • RGenGC: Restricted Generational GC
  15. 15. 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
  16. 16. 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%.
  17. 17. 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.
  18. 18. Frozen String Literals • Alteração na vm pra reutilizar Strings congeladas assim como ocorre com os símbolos.
  19. 19. 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
  20. 20. Perguntas? Marcio Trindade Obrigado!
  21. 21. 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/

×