Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Reinventhing Wheels of Future

Reinventhing Wheels of Future

RubyConf 2012 Keynote

Yukihiro Matsumoto

November 03, 2012
Tweet

More Decks by Yukihiro Matsumoto

Other Decks in Programming

Transcript

  1. Powered by Rabbit 1.0.8
    Reinventhing Wheels of
    Future
    Yukihiro "Matz" Matsumoto
    @yukihiro_matz

    View Slide

  2. Powered by Rabbit 1.0.8
     
    I code, therefore I am.
    1/144

    View Slide

  3. Powered by Rabbit 1.0.8
     
    I feel happy, when I code.
    2/144

    View Slide

  4. Powered by Rabbit 1.0.8
     
    I feel nervous, when I stand here.
    3/144

    View Slide

  5. Powered by Rabbit 1.0.8
     
    Do you?
    4/144

    View Slide

  6. Powered by Rabbit 1.0.8
     
    5/144

    View Slide

  7. Powered by Rabbit 1.0.8
     
    Ruby started February 1993
    6/144

    View Slide

  8. Powered by Rabbit 1.0.8
     
    as a scripting language for UNIX
    7/144

    View Slide

  9. Powered by Rabbit 1.0.8
     
    to replace Perl
    8/144

    View Slide

  10. Powered by Rabbit 1.0.8
     
    But not really
    9/144

    View Slide

  11. Powered by Rabbit 1.0.8
     
    I just wanted to create my own
    language
    10/144

    View Slide

  12. Powered by Rabbit 1.0.8
     
    Just for Fun
    11/144

    View Slide

  13. Powered by Rabbit 1.0.8
     
    Recently, a guy came and
    blamed me on Twitter
    12/144

    View Slide

  14. Powered by Rabbit 1.0.8
     
    “Why did you invented Ruby,
    where we had Perl?”
    13/144

    View Slide

  15. Powered by Rabbit 1.0.8
     
    “It was redundant, reinvention of
    the wheel”
    14/144

    View Slide

  16. Powered by Rabbit 1.0.8
     
    “It was waste of man-power that
    is limited resource”
    15/144

    View Slide

  17. Powered by Rabbit 1.0.8
     
    “So, many IT people feel
    negative about your work”
    16/144

    View Slide

  18. Powered by Rabbit 1.0.8
     
    What do you think?
    17/144

    View Slide

  19. Powered by Rabbit 1.0.8
     
    Give me a break
    18/144

    View Slide

  20. Powered by Rabbit 1.0.8
     
    Indeed we have limited resources
    19/144

    View Slide

  21. Powered by Rabbit 1.0.8
     
    Only 7 Billion people on Earth
    20/144

    View Slide

  22. Powered by Rabbit 1.0.8
     
    Very few among them code
    21/144

    View Slide

  23. Powered by Rabbit 1.0.8
     
    But it's not a bottleneck
    22/144

    View Slide

  24. Powered by Rabbit 1.0.8
     
    We have more rare resource
    23/144

    View Slide

  25. Powered by Rabbit 1.0.8
     
    It's Motivation
    24/144

    View Slide

  26. Powered by Rabbit 1.0.8
     
    We are not machines
    25/144

    View Slide

  27. Powered by Rabbit 1.0.8
     
    We need driving force to
    accomplish great things
    26/144

    View Slide

  28. Powered by Rabbit 1.0.8
     
    What's your motivation?
    27/144

    View Slide

  29. Powered by Rabbit 1.0.8
     
    Fun?
    28/144

    View Slide

  30. Powered by Rabbit 1.0.8
     
    Profit?
    29/144

    View Slide

  31. Powered by Rabbit 1.0.8
     
    My motivation is love toward
    programming languages
    30/144

    View Slide

  32. Powered by Rabbit 1.0.8
     
    I love all programming languages
    on earth
    31/144

    View Slide

  33. Powered by Rabbit 1.0.8
     
    Including Fortran
    32/144

    View Slide

  34. Powered by Rabbit 1.0.8
     
    Perl
    33/144

    View Slide

  35. Powered by Rabbit 1.0.8
     
    Even PHP
    34/144

    View Slide

  36. Powered by Rabbit 1.0.8
     
    It might sound spooky
    35/144

    View Slide

  37. Powered by Rabbit 1.0.8
     
    No one should laugh at
    motivation
    36/144

    View Slide

  38. Powered by Rabbit 1.0.8
     
    Some may call it reinventing the
    wheel
    37/144

    View Slide

  39. Powered by Rabbit 1.0.8
     
    Go ahead, if you are motivated
    38/144

    View Slide

  40. Powered by Rabbit 1.0.8
     
    And it will introduce diversity
    39/144

    View Slide

  41. Powered by Rabbit 1.0.8
     
    Diversity is Good
    40/144

    View Slide

  42. Powered by Rabbit 1.0.8
     
    It may require cost
    41/144

    View Slide

  43. Powered by Rabbit 1.0.8
     
    It might waste your time
    42/144

    View Slide

  44. Powered by Rabbit 1.0.8
     
    But the world without diversity is
    unpleasant
    43/144

    View Slide

  45. Powered by Rabbit 1.0.8
     
    What if we force people to focus
    on Perl?
    44/144

    View Slide

  46. Powered by Rabbit 1.0.8
     
    Like the world of 1984
    45/144

    View Slide

  47. Powered by Rabbit 1.0.8
     
    Diversity is the cost for
    innovation
    46/144

    View Slide

  48. Powered by Rabbit 1.0.8
     
    No one understands Innovation
    47/144

    View Slide

  49. Powered by Rabbit 1.0.8
     
    Succeeded people don't
    48/144

    View Slide

  50. Powered by Rabbit 1.0.8
     
    Failed people don't
    49/144

    View Slide

  51. Powered by Rabbit 1.0.8
     
    No one
    50/144

    View Slide

  52. Powered by Rabbit 1.0.8
     
    We try
    51/144

    View Slide

  53. Powered by Rabbit 1.0.8
     
    Again
    52/144

    View Slide

  54. Powered by Rabbit 1.0.8
     
    and Again
    53/144

    View Slide

  55. Powered by Rabbit 1.0.8
     
    until we make innovation
    54/144

    View Slide

  56. Powered by Rabbit 1.0.8
     
    But we`d better predict the
    future
    55/144

    View Slide

  57. Powered by Rabbit 1.0.8
     
    To raise the possibility of success
    56/144

    View Slide

  58. Powered by Rabbit 1.0.8
     
    57/144

    View Slide

  59. Powered by Rabbit 1.0.8
     
    IT survivers will be
    58/144

    View Slide

  60. Powered by Rabbit 1.0.8
     
    IT survivers will be:
    language designers
    dev env implementors
    and high valued niche players
    59/144

    View Slide

  61. Powered by Rabbit 1.0.8
     
    Language designers?
    60/144

    View Slide

  62. Powered by Rabbit 1.0.8
     
    Sounds weird?
    61/144

    View Slide

  63. Powered by Rabbit 1.0.8
     
    His outline:
    Programming will be
    fundamental literacy
    Easy tasks can be done by
    everybody
    Professionals (like us) should
    do harder tasks
    62/144

    View Slide

  64. Powered by Rabbit 1.0.8
     
    Fair enough
    63/144

    View Slide

  65. Powered by Rabbit 1.0.8
     
    But how can we be language
    designers?
    64/144

    View Slide

  66. Powered by Rabbit 1.0.8
     
    How many language designers
    do you know?
    65/144

    View Slide

  67. Powered by Rabbit 1.0.8
     
    me
    66/144

    View Slide

  68. Powered by Rabbit 1.0.8
     
    Guido
    67/144

    View Slide

  69. Powered by Rabbit 1.0.8
     
    Larry
    68/144

    View Slide

  70. Powered by Rabbit 1.0.8
     
    Rasmus
    69/144

    View Slide

  71. Powered by Rabbit 1.0.8
     
    ?
    70/144

    View Slide

  72. Powered by Rabbit 1.0.8
     
    Language Designer
    or Serial Killer?
    71/144

    View Slide

  73. Powered by Rabbit 1.0.8
     
    You may not start making
    popular programming language
    72/144

    View Slide

  74. Powered by Rabbit 1.0.8
     
    You may not implement a
    programming language
    73/144

    View Slide

  75. Powered by Rabbit 1.0.8
     
    But you code
    74/144

    View Slide

  76. Powered by Rabbit 1.0.8
     
    Your identity
    75/144

    View Slide

  77. Powered by Rabbit 1.0.8
     
    You design
    76/144

    View Slide

  78. Powered by Rabbit 1.0.8
     
    You design code
    77/144

    View Slide

  79. Powered by Rabbit 1.0.8
     
    You design API
    78/144

    View Slide

  80. Powered by Rabbit 1.0.8
     
    You design interface
    79/144

    View Slide

  81. Powered by Rabbit 1.0.8
     
    They are languages
    80/144

    View Slide

  82. Powered by Rabbit 1.0.8
     
    Dave Thomas
    81/144

    View Slide

  83. Powered by Rabbit 1.0.8
     
    Programming is a process of
    designing your own DSL
    82/144

    View Slide

  84. Powered by Rabbit 1.0.8
     
    In that sense, you can be
    language designers
    83/144

    View Slide

  85. Powered by Rabbit 1.0.8
     
    Too few people care about
    design
    84/144

    View Slide

  86. Powered by Rabbit 1.0.8
     
    The world is full of crappy
    designs
    85/144

    View Slide

  87. Powered by Rabbit 1.0.8
     
    Shoe strings
    86/144

    View Slide

  88. Powered by Rabbit 1.0.8
     
    I hate loosen strings
    87/144

    View Slide

  89. Powered by Rabbit 1.0.8
     
    I hate tying them again & again
    88/144

    View Slide

  90. Powered by Rabbit 1.0.8
     
    So I used superglue
    89/144

    View Slide

  91. Powered by Rabbit 1.0.8
     
    The world is full of room for
    improvement
    90/144

    View Slide

  92. Powered by Rabbit 1.0.8
     
    Go fix them
    91/144

    View Slide

  93. Powered by Rabbit 1.0.8
     
    By starting new project
    92/144

    View Slide

  94. Powered by Rabbit 1.0.8
     
    By participating to exising project
    93/144

    View Slide

  95. Powered by Rabbit 1.0.8
     
    Code, make it happen
    94/144

    View Slide

  96. Powered by Rabbit 1.0.8
     
    in good shape
    95/144

    View Slide

  97. Powered by Rabbit 1.0.8
     
    Reinvent wheels
    96/144

    View Slide

  98. Powered by Rabbit 1.0.8
     
    Better wheels
    97/144

    View Slide

  99. Powered by Rabbit 1.0.8
     
    Make the World better place
    98/144

    View Slide

  100. Powered by Rabbit 1.0.8
     
    Be happy
    99/144

    View Slide

  101. Powered by Rabbit 1.0.8
     
    I will
    100/144

    View Slide

  102. Powered by Rabbit 1.0.8
     
    It was dark stormy night
    101/144

    View Slide

  103. Powered by Rabbit 1.0.8
     
    in 1993
    102/144

    View Slide

  104. Powered by Rabbit 1.0.8
     
    Almost 20 years ago
    103/144

    View Slide

  105. Powered by Rabbit 1.0.8
     
    I had been happy for last 20
    years
    104/144

    View Slide

  106. Powered by Rabbit 1.0.8
     
    It always had been more than
    expected
    105/144

    View Slide

  107. Powered by Rabbit 1.0.8
     
    I will try to make the world better
    place
    106/144

    View Slide

  108. Powered by Rabbit 1.0.8
     
    by making Ruby even better
    107/144

    View Slide

  109. Powered by Rabbit 1.0.8
     
    On Faburary 24th 2013
    108/144

    View Slide

  110. Powered by Rabbit 1.0.8
     
    Ruby's 20th birthday
    109/144

    View Slide

  111. Powered by Rabbit 1.0.8
     
    We will release Ruby 2.0
    110/144

    View Slide

  112. Powered by Rabbit 1.0.8
     
    finally
    111/144

    View Slide

  113. Powered by Rabbit 1.0.8
     
    2001
    112/144

    View Slide

  114. Powered by Rabbit 1.0.8
     
    2003
    113/144

    View Slide

  115. Powered by Rabbit 1.0.8
     
    2001 2003 2006
    2007 2010 2011
    114/144

    View Slide

  116. Powered by Rabbit 1.0.8
     
    Of course you know that
    115/144

    View Slide

  117. Powered by Rabbit 1.0.8
     
    But it is progressing steadly
    116/144

    View Slide

  118. Powered by Rabbit 1.0.8
     
    It will be faster
    117/144

    View Slide

  119. Powered by Rabbit 1.0.8
     
    It will be more reliable
    118/144

    View Slide

  120. Powered by Rabbit 1.0.8
     
    More fun to use
    119/144

    View Slide

  121. Powered by Rabbit 1.0.8
     
    keyword formal argument
    120/144

    View Slide

  122. Powered by Rabbit 1.0.8
     
    Enumerable#lazy
    121/144

    View Slide

  123. Powered by Rabbit 1.0.8
     
    Module#prepend
    122/144

    View Slide

  124. Powered by Rabbit 1.0.8
     
    Refinement
    123/144

    View Slide

  125. Powered by Rabbit 1.0.8
     
    Come join us
    124/144

    View Slide

  126. Powered by Rabbit 1.0.8
     
    By using trunk
    125/144

    View Slide

  127. Powered by Rabbit 1.0.8
     
    By reporting bugs
    126/144

    View Slide

  128. Powered by Rabbit 1.0.8
     
    By fixing bugs
    127/144

    View Slide

  129. Powered by Rabbit 1.0.8
     
    By sending pull-request
    128/144

    View Slide

  130. Powered by Rabbit 1.0.8
     
    By porting your project to 2.0
    129/144

    View Slide

  131. Powered by Rabbit 1.0.8
     
    We can make it better
    130/144

    View Slide

  132. Powered by Rabbit 1.0.8
     
    We can make the world better
    131/144

    View Slide

  133. Powered by Rabbit 1.0.8
     
    mruby
    132/144

    View Slide

  134. Powered by Rabbit 1.0.8
     
    Summary
    133/144

    View Slide

  135. Powered by Rabbit 1.0.8
     
    No matter which way you go
    134/144

    View Slide

  136. Powered by Rabbit 1.0.8
     
    Be happy
    135/144

    View Slide

  137. Powered by Rabbit 1.0.8
     
    Go as you motivated
    136/144

    View Slide

  138. Powered by Rabbit 1.0.8
     
    Reinvent wheels
    137/144

    View Slide

  139. Powered by Rabbit 1.0.8
     
    Fix shoe strings
    138/144

    View Slide

  140. Powered by Rabbit 1.0.8
     
    Make the world better
    139/144

    View Slide

  141. Powered by Rabbit 1.0.8
     
    I believe you can
    140/144

    View Slide

  142. Powered by Rabbit 1.0.8
     
    Even if you don't
    141/144

    View Slide

  143. Powered by Rabbit 1.0.8
     
    It's OK as long as you'd been
    happy
    142/144

    View Slide

  144. Powered by Rabbit 1.0.8
     
    Happy hacking!
    143/144

    View Slide

  145. Powered by Rabbit 1.0.8
     
    Thank you
    144/144

    View Slide