RUBY    @janogonzalezhttp://janogonzalez.com
@janogonzalez
jano gonzález
parte de@7talks
desarrolla apps encontinuum
escribe el bloggemaroja.com
organiza el meetup@dynlangchile
QUÉ ES RUBY
lenguajedinámico
orientado aobjetos
poderosametaprogramación
sintaxisconcisa
es comoperl+smalltalk
historia
Yukihiro Matsumoto
Matz
24/02/1993 idea
optimizar lafelicidaddel desarrollador
21/12/1995publicación
25/12/1996versión 1.0
15/12/2001pickaxe
david heinemeier hansson
DHH
2005RAILS 1.0
ruby se hizo realmente    popular
alguna implementaciones:mri, jruby, rubinius
el lenguaje
todo es unobjeto
objetos,objetos en todos lados
objetos# El clásicaico string“Hola Mundo”.upcase# No hay "tipos primitivos"!5.zero?# Hasta el nulo es un objetonil.nil?
objetos# Arreglos[1, 2, 3, 4, 5]# Hashes{:jano => "Alejandro", :cote => "José"}# Rangos(1..10)
objetos# Expresiones regulares/^[a-z]+$/# Lambdaslambda { |n| n * 2 }
particularidades de los    métodos
métodos# En realidad + es un método, noun operador1.+(9)# Con un poco de azucar sintáctico1 + 9# En otros objetos"Hola " +...
métodos• Paréntesis opcionales•?•!
usandoarrays
usandohashes
otrosobjetos
sentencias decontrol
creandoclaseS
CLASESclass Persona  attr_reader :nombre, :apellido  def initialize(nombre, apellido)    @nombre = nombre    @apellido = a...
clases# Monkey patchingclass Range  def even    self.select { |n| n % 2 == 0 }  endend(1..100).even
usandobloques
bloques# Un método puede recibir un bloque de código5.times do  |n| puts nend# Para casos cortos como el anterior...5.time...
bloques# El clásico map(1..100).map { |n| n * 2 }# El clásico select(1..100).select { |n| n % 3 == 0 }# El clásico reduce(...
gemas
miles decomponentes
gemas$ gem list$ gem install sinatra
para aprender
ruby koansrubykoans.com
ruby monkrubymonk.com
visitagemaroja.com
Ruby
Ruby
Ruby
Ruby
Ruby
Upcoming SlideShare
Loading in …5
×

Ruby

826 views

Published on

Presentación de Ruby para los alumnos de Inacap, realizada el 19 de noviembre de 2011 junto al grupo 7Talks

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
826
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ruby

  1. 1. RUBY @janogonzalezhttp://janogonzalez.com
  2. 2. @janogonzalez
  3. 3. jano gonzález
  4. 4. parte de@7talks
  5. 5. desarrolla apps encontinuum
  6. 6. escribe el bloggemaroja.com
  7. 7. organiza el meetup@dynlangchile
  8. 8. QUÉ ES RUBY
  9. 9. lenguajedinámico
  10. 10. orientado aobjetos
  11. 11. poderosametaprogramación
  12. 12. sintaxisconcisa
  13. 13. es comoperl+smalltalk
  14. 14. historia
  15. 15. Yukihiro Matsumoto
  16. 16. Matz
  17. 17. 24/02/1993 idea
  18. 18. optimizar lafelicidaddel desarrollador
  19. 19. 21/12/1995publicación
  20. 20. 25/12/1996versión 1.0
  21. 21. 15/12/2001pickaxe
  22. 22. david heinemeier hansson
  23. 23. DHH
  24. 24. 2005RAILS 1.0
  25. 25. ruby se hizo realmente popular
  26. 26. alguna implementaciones:mri, jruby, rubinius
  27. 27. el lenguaje
  28. 28. todo es unobjeto
  29. 29. objetos,objetos en todos lados
  30. 30. objetos# El clásicaico string“Hola Mundo”.upcase# No hay "tipos primitivos"!5.zero?# Hasta el nulo es un objetonil.nil?
  31. 31. objetos# Arreglos[1, 2, 3, 4, 5]# Hashes{:jano => "Alejandro", :cote => "José"}# Rangos(1..10)
  32. 32. objetos# Expresiones regulares/^[a-z]+$/# Lambdaslambda { |n| n * 2 }
  33. 33. particularidades de los métodos
  34. 34. métodos# En realidad + es un método, noun operador1.+(9)# Con un poco de azucar sintáctico1 + 9# En otros objetos"Hola " + "Mundo"# Con una gran cantidad de objetos![1, 2, 3] + [4, 5]
  35. 35. métodos• Paréntesis opcionales•?•!
  36. 36. usandoarrays
  37. 37. usandohashes
  38. 38. otrosobjetos
  39. 39. sentencias decontrol
  40. 40. creandoclaseS
  41. 41. CLASESclass Persona attr_reader :nombre, :apellido def initialize(nombre, apellido) @nombre = nombre @apellido = apellido endendjano = Persona.new("Jano", "González")jano.nombre
  42. 42. clases# Monkey patchingclass Range def even self.select { |n| n % 2 == 0 } endend(1..100).even
  43. 43. usandobloques
  44. 44. bloques# Un método puede recibir un bloque de código5.times do |n| puts nend# Para casos cortos como el anterior...5.times { |n| puts n }
  45. 45. bloques# El clásico map(1..100).map { |n| n * 2 }# El clásico select(1..100).select { |n| n % 3 == 0 }# El clásico reduce(1..100).reduce { |sum, n| sum + n }# Incluso más corto(1..100).reduce(:+)
  46. 46. gemas
  47. 47. miles decomponentes
  48. 48. gemas$ gem list$ gem install sinatra
  49. 49. para aprender
  50. 50. ruby koansrubykoans.com
  51. 51. ruby monkrubymonk.com
  52. 52. visitagemaroja.com

×