Save 37% off PRO during our Black Friday Sale! »

How Ruby Programmed Me

How Ruby Programmed Me

Closing keynote in RubyConf Uruguay 2013

Ee64bbdcdeffabc6d4166a96e6d2a0d5?s=128

Jano González

March 23, 2013
Tweet

Transcript

  1. HOW RUBY PROGRAMMED ME

  2. @janogonzalez

  3. @hop_in

  4. @dynlangchile

  5. @dynlangchile

  6. LANGUAGE & THOUGHT

  7. LANGUAGE SHAPES OUR THOUGHT HOW

  8. CHICKEN / EGG

  9. DISCLAIMER

  10. NOT A LINGUIST

  11. NOT A NEUROSCIENTIST

  12. NOT A PHILOSOPHER

  13. JUST MY EXPERIENCE

  14. AND OPINIONS

  15. DON’T WORRY

  16. PROGRAMMER’S BRAIN

  17. OUR BRAIN

  18. LANGUAGES SHAPE YOUR THOUGHT WHICH

  19. THE PROBLEM

  20. “Ars longa, vita brevis” –Hippocrates

  21. HOW TO CHOOSE

  22. “A language that doesn't affect the way you think about

    programming, is not worth knowing.” –Alan Perlis
  23. PARADIGMS

  24. SINTAX

  25. IDIOMS

  26. COMMUNITY

  27. RUBY

  28. BLOCKS File.open('my.txt').each do |line| puts line if line =~ /jano/

    end
  29. JAVASCRIPT

  30. PROTOTYPES function Person(name) { this.name = name; } Person.protoype.sayHi =

    function() { return “Hi, I’m “ + this.name; }; var jano = new Person(‘Jano’); jano.sayHi();
  31. PYTHON

  32. INDENTATION def median(pool): copy = sorted(pool) size = len(copy) if

    size % 2 == 1: return copy[(size - 1) / 2] else: return (copy[size/2 - 1] + copy[size/2]) / 2
  33. LISP

  34. MACROS (defmacro for ((var start stop) &body body) (let ((gstop

    (gensym))) `(do ((,var ,start (1+ ,var)) (,gstop ,stop)) ((> ,var ,gstop)) ,@body)))
  35. HASKELL

  36. PATTERN MATCHING map _ [] = [] map f (x:xs)

    = f x : map f xs
  37. FORTH

  38. STACK BASED : STAR! ( -- ) 42 EMIT ;

    : STARS!( n -- ) 0 DO STAR LOOP ; CR 7 STARS
  39. REMIX IT!

  40. LANGUAGES SHAPE YOUR THOUGHT LET

  41. “The determined Real Programmer can write FORTRAN programs in any

    language.” –Ed Post
  42. “The determined Real Programmer can write FORTRAN programs in any

    language.” –Ed Post close-minded? C, Ruby, Lisp, etc
  43. ARE YOU CHUCK?

  44. ॳ৺

  45. BEGINNER’S MIND

  46. OPENNESS

  47. A CUP OF TEA

  48. EMPTY YOUR CUP

  49. कഁ཭

  50. कഁ཭

  51. PROTECT / OBEY SHU

  52. कഁ཭

  53. DETACH / DISGRESS HA

  54. कഁ཭

  55. LEAVE / SEPARATE RI

  56. None
  57. HEY! THIS IS A RUBY CONFERENCE

  58. RUBY & MY BRAIN

  59. RUBY CHANGED MY BRAIN HOW

  60. A TALE OF TWO DEVELOPERS

  61. HACKER V/S THINKER

  62. HACKER

  63. GET THINGS DONE HACKER

  64. FAST HACKER

  65. HACKS HACKER

  66. MAINTENANCE NIGHTMARE HACKER

  67. NEEDS MORE DUCT TAPE

  68. THINKER

  69. THINKS ABOUT ABSTRACTIONS THINKER

  70. THINKS ABOUT MANTAINABILITY THINKER

  71. TOO MANY ABSTRACTIONS THINKER

  72. ANALYSIS PARALYSIS THINKER

  73. NEEDS MORE LAYERS

  74. MY STORY

  75. THE HACKER YEARS

  76. THE HACKER YEARS

  77. THE LEARNING YEARS

  78. THE UML YEARS

  79. THE UML YEARS

  80. THE HACKER WAS GONE

  81. UML, RUP, GoF, XML, ETC.

  82. STOCKHOLM SYNDROME

  83. EVOLUTION?

  84. THE ONE TRUE WAY™

  85. THE PATH?

  86. FEAR

  87. I WAS SO WRONG!

  88. EVERYDAY LIFE IS THE PATH

  89. ENTER RUBY

  90. SMALLTALK IN PERL’S DISGUISE

  91. HAPPY THINKER

  92. THINKER class AccountProtectionProxy def initialize(real_account, owner_name) @subject = real_account @owner_name

    = owner_name end def method_missing(name, *args) check_access @subject.send( name, *args ) end ... end
  93. OMG! GoF NEVER WAS SO EASY

  94. HAPPY HACKER

  95. HACKER $1 if str ~= /(foo)+/

  96. ONE LINERS FTW!

  97. HACKER ❤ THINKER

  98. LET’S WORK TOGETHER

  99. HARMONY

  100. HARMONY (1..42).select(&:even?). map { |n| n * 2 }. reduce(&:*)

  101. THE PATH IS NO PATH

  102. WEIRD FACT

  103. (EVERY DEVELOPER IS A MANAGER)

  104. (OMG)

  105. RUBY & MY LIFE

  106. RUBY CHANGED MY LIFE HOW

  107. NEW GIGS

  108. CONFERENCES

  109. CONFERENCES

  110. NEW FRIENDS

  111. CRAZY FRIENDS

  112. I ❤ .RB

  113. I ❤ .UY

  114. I ❤ .AR

  115. RUBY & YOUR LIFE

  116. RUBY CHANGE YOUR LIFE LET

  117. PROGRAMMING CHANGE YOUR LIFE LET

  118. FORK & MERGE

  119. LEARN

  120. HAVE FUN

  121. SHARE

  122. (AND REPEAT) loop do learn have_fun share end

  123. THANKS!