Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Powered by Rabbit 1.0.8   Do you? 4/144

Slide 6

Slide 6 text

Powered by Rabbit 1.0.8   5/144

Slide 7

Slide 7 text

Powered by Rabbit 1.0.8   Ruby started February 1993 6/144

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

Powered by Rabbit 1.0.8   to replace Perl 8/144

Slide 10

Slide 10 text

Powered by Rabbit 1.0.8   But not really 9/144

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Powered by Rabbit 1.0.8   Just for Fun 11/144

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Powered by Rabbit 1.0.8   Give me a break 18/144

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

Powered by Rabbit 1.0.8   It's Motivation 24/144

Slide 26

Slide 26 text

Powered by Rabbit 1.0.8   We are not machines 25/144

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

Powered by Rabbit 1.0.8   Fun? 28/144

Slide 30

Slide 30 text

Powered by Rabbit 1.0.8   Profit? 29/144

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

Powered by Rabbit 1.0.8   Including Fortran 32/144

Slide 34

Slide 34 text

Powered by Rabbit 1.0.8   Perl 33/144

Slide 35

Slide 35 text

Powered by Rabbit 1.0.8   Even PHP 34/144

Slide 36

Slide 36 text

Powered by Rabbit 1.0.8   It might sound spooky 35/144

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

Powered by Rabbit 1.0.8   Diversity is Good 40/144

Slide 42

Slide 42 text

Powered by Rabbit 1.0.8   It may require cost 41/144

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

Powered by Rabbit 1.0.8   No one understands Innovation 47/144

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

Powered by Rabbit 1.0.8   No one 50/144

Slide 52

Slide 52 text

Powered by Rabbit 1.0.8   We try 51/144

Slide 53

Slide 53 text

Powered by Rabbit 1.0.8   Again 52/144

Slide 54

Slide 54 text

Powered by Rabbit 1.0.8   and Again 53/144

Slide 55

Slide 55 text

Powered by Rabbit 1.0.8   until we make innovation 54/144

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

Powered by Rabbit 1.0.8   57/144

Slide 59

Slide 59 text

Powered by Rabbit 1.0.8   IT survivers will be 58/144

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

Powered by Rabbit 1.0.8   Language designers? 60/144

Slide 62

Slide 62 text

Powered by Rabbit 1.0.8   Sounds weird? 61/144

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

Powered by Rabbit 1.0.8   Fair enough 63/144

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

Powered by Rabbit 1.0.8   me 66/144

Slide 68

Slide 68 text

Powered by Rabbit 1.0.8   Guido 67/144

Slide 69

Slide 69 text

Powered by Rabbit 1.0.8   Larry 68/144

Slide 70

Slide 70 text

Powered by Rabbit 1.0.8   Rasmus 69/144

Slide 71

Slide 71 text

Powered by Rabbit 1.0.8   ? 70/144

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

Powered by Rabbit 1.0.8   But you code 74/144

Slide 76

Slide 76 text

Powered by Rabbit 1.0.8   Your identity 75/144

Slide 77

Slide 77 text

Powered by Rabbit 1.0.8   You design 76/144

Slide 78

Slide 78 text

Powered by Rabbit 1.0.8   You design code 77/144

Slide 79

Slide 79 text

Powered by Rabbit 1.0.8   You design API 78/144

Slide 80

Slide 80 text

Powered by Rabbit 1.0.8   You design interface 79/144

Slide 81

Slide 81 text

Powered by Rabbit 1.0.8   They are languages 80/144

Slide 82

Slide 82 text

Powered by Rabbit 1.0.8   Dave Thomas 81/144

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

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

Slide 85

Slide 85 text

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

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

Powered by Rabbit 1.0.8   Shoe strings 86/144

Slide 88

Slide 88 text

Powered by Rabbit 1.0.8   I hate loosen strings 87/144

Slide 89

Slide 89 text

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

Slide 90

Slide 90 text

Powered by Rabbit 1.0.8   So I used superglue 89/144

Slide 91

Slide 91 text

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

Slide 92

Slide 92 text

Powered by Rabbit 1.0.8   Go fix them 91/144

Slide 93

Slide 93 text

Powered by Rabbit 1.0.8   By starting new project 92/144

Slide 94

Slide 94 text

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

Slide 95

Slide 95 text

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

Slide 96

Slide 96 text

Powered by Rabbit 1.0.8   in good shape 95/144

Slide 97

Slide 97 text

Powered by Rabbit 1.0.8   Reinvent wheels 96/144

Slide 98

Slide 98 text

Powered by Rabbit 1.0.8   Better wheels 97/144

Slide 99

Slide 99 text

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

Slide 100

Slide 100 text

Powered by Rabbit 1.0.8   Be happy 99/144

Slide 101

Slide 101 text

Powered by Rabbit 1.0.8   I will 100/144

Slide 102

Slide 102 text

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

Slide 103

Slide 103 text

Powered by Rabbit 1.0.8   in 1993 102/144

Slide 104

Slide 104 text

Powered by Rabbit 1.0.8   Almost 20 years ago 103/144

Slide 105

Slide 105 text

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

Slide 106

Slide 106 text

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

Slide 107

Slide 107 text

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

Slide 108

Slide 108 text

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

Slide 109

Slide 109 text

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

Slide 110

Slide 110 text

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

Slide 111

Slide 111 text

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

Slide 112

Slide 112 text

Powered by Rabbit 1.0.8   finally 111/144

Slide 113

Slide 113 text

Powered by Rabbit 1.0.8   2001 112/144

Slide 114

Slide 114 text

Powered by Rabbit 1.0.8   2003 113/144

Slide 115

Slide 115 text

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

Slide 116

Slide 116 text

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

Slide 117

Slide 117 text

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

Slide 118

Slide 118 text

Powered by Rabbit 1.0.8   It will be faster 117/144

Slide 119

Slide 119 text

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

Slide 120

Slide 120 text

Powered by Rabbit 1.0.8   More fun to use 119/144

Slide 121

Slide 121 text

Powered by Rabbit 1.0.8   keyword formal argument 120/144

Slide 122

Slide 122 text

Powered by Rabbit 1.0.8   Enumerable#lazy 121/144

Slide 123

Slide 123 text

Powered by Rabbit 1.0.8   Module#prepend 122/144

Slide 124

Slide 124 text

Powered by Rabbit 1.0.8   Refinement 123/144

Slide 125

Slide 125 text

Powered by Rabbit 1.0.8   Come join us 124/144

Slide 126

Slide 126 text

Powered by Rabbit 1.0.8   By using trunk 125/144

Slide 127

Slide 127 text

Powered by Rabbit 1.0.8   By reporting bugs 126/144

Slide 128

Slide 128 text

Powered by Rabbit 1.0.8   By fixing bugs 127/144

Slide 129

Slide 129 text

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

Slide 130

Slide 130 text

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

Slide 131

Slide 131 text

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

Slide 132

Slide 132 text

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

Slide 133

Slide 133 text

Powered by Rabbit 1.0.8   mruby 132/144

Slide 134

Slide 134 text

Powered by Rabbit 1.0.8   Summary 133/144

Slide 135

Slide 135 text

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

Slide 136

Slide 136 text

Powered by Rabbit 1.0.8   Be happy 135/144

Slide 137

Slide 137 text

Powered by Rabbit 1.0.8   Go as you motivated 136/144

Slide 138

Slide 138 text

Powered by Rabbit 1.0.8   Reinvent wheels 137/144

Slide 139

Slide 139 text

Powered by Rabbit 1.0.8   Fix shoe strings 138/144

Slide 140

Slide 140 text

Powered by Rabbit 1.0.8   Make the world better 139/144

Slide 141

Slide 141 text

Powered by Rabbit 1.0.8   I believe you can 140/144

Slide 142

Slide 142 text

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

Slide 143

Slide 143 text

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

Slide 144

Slide 144 text

Powered by Rabbit 1.0.8   Happy hacking! 143/144

Slide 145

Slide 145 text

Powered by Rabbit 1.0.8   Thank you 144/144