Slide 1

Slide 1 text

Powered by Rabbit 0.9.2 Ruby Everywhere まつもと ゆきひろ Yukihiro "Matz" Matsumoto @yukihiro_matz

Slide 2

Slide 2 text

Powered by Rabbit 0.9.2  TPO  1/192

Slide 3

Slide 3 text

Powered by Rabbit 0.9.2 TPO O=Occasion 2/192

Slide 4

Slide 4 text

Powered by Rabbit 0.9.2 Occasion Keynote 3/192

Slide 5

Slide 5 text

Powered by Rabbit 0.9.2 Keynote a speech, as at a political convention, that presents important issues, principles, policies, etc. 4/192

Slide 6

Slide 6 text

Powered by Rabbit 0.9.2 Keynote Give me a break 5/192

Slide 7

Slide 7 text

Powered by Rabbit 0.9.2 Keynote I am a mere programmer 6/192

Slide 8

Slide 8 text

Powered by Rabbit 0.9.2 a programmer who invented a language 7/192

Slide 9

Slide 9 text

Powered by Rabbit 0.9.2   a great language 8/192

Slide 10

Slide 10 text

Powered by Rabbit 0.9.2   accidentally 9/192

Slide 11

Slide 11 text

Powered by Rabbit 0.9.2   But that's life Ce'st la vie 10/192

Slide 12

Slide 12 text

Powered by Rabbit 0.9.2   Let's start the keynote 11/192

Slide 13

Slide 13 text

Powered by Rabbit 0.9.2 Keynote Good and Bad 12/192

Slide 14

Slide 14 text

Powered by Rabbit 0.9.2 Keynote: the good part The first at the conference I can enjoy rest of the conference 13/192

Slide 15

Slide 15 text

Powered by Rabbit 0.9.2 Keynote: the bad part The first at the conference I have less time to prepare You have to endure 14/192

Slide 16

Slide 16 text

Powered by Rabbit 0.9.2 TPO P=Place 15/192

Slide 17

Slide 17 text

Powered by Rabbit 0.9.2 Place New Orleans 16/192

Slide 18

Slide 18 text

Powered by Rabbit 0.9.2 Place 松江 Matsue 17/192

Slide 19

Slide 19 text

Powered by Rabbit 0.9.2 Matsue My hometown 18/192

Slide 20

Slide 20 text

Powered by Rabbit 0.9.2 Place Sister Cities 19/192

Slide 21

Slide 21 text

Powered by Rabbit 0.9.2   Any locals? 20/192

Slide 22

Slide 22 text

Powered by Rabbit 0.9.2 Place Mayor Matsuura of Matsue City 21/192

Slide 23

Slide 23 text

Powered by Rabbit 0.9.2   Hi from him 22/192

Slide 24

Slide 24 text

Powered by Rabbit 0.9.2 TPO T=Time 23/192

Slide 25

Slide 25 text

Powered by Rabbit 0.9.2 Time 2011 24/192

Slide 26

Slide 26 text

Powered by Rabbit 0.9.2 The first RubyConf was Oct. 12-14 2001 in Tampa, FL 25/192

Slide 27

Slide 27 text

Powered by Rabbit 0.9.2 So it's 11th RubyConf 26/192

Slide 28

Slide 28 text

Powered by Rabbit 0.9.2   First RubyConf in second decade 27/192

Slide 29

Slide 29 text

Powered by Rabbit 0.9.2   10th anniversary 28/192

Slide 30

Slide 30 text

Powered by Rabbit 0.9.2   Good chance to beat the world 29/192

Slide 31

Slide 31 text

Powered by Rabbit 0.9.2   30/192

Slide 32

Slide 32 text

Powered by Rabbit 0.9.2   2011 31/192

Slide 33

Slide 33 text

Powered by Rabbit 0.9.2 New position 32/192

Slide 34

Slide 34 text

Powered by Rabbit 0.9.2   Chief Architect, Ruby 33/192

Slide 35

Slide 35 text

Powered by Rabbit 0.9.2   2010 34/192

Slide 36

Slide 36 text

Powered by Rabbit 0.9.2   Salesforce.com acquires Heroku.com 35/192

Slide 37

Slide 37 text

Powered by Rabbit 0.9.2 Marc Benioff “Ruby is the language of Cloud 2” 36/192

Slide 38

Slide 38 text

Powered by Rabbit 0.9.2   6 months later 37/192

Slide 39

Slide 39 text

Powered by Rabbit 0.9.2 TOYOTA Friend 38/192

Slide 40

Slide 40 text

Powered by Rabbit 0.9.2   39/192

Slide 41

Slide 41 text

Powered by Rabbit 0.9.2 Marc Benioff “Ruby is great!” 40/192

Slide 42

Slide 42 text

Powered by Rabbit 0.9.2 Marc Benioff “I want to help Ruby!” 41/192

Slide 43

Slide 43 text

Powered by Rabbit 0.9.2 Marc Benioff “as the language of cloud age” 42/192

Slide 44

Slide 44 text

Powered by Rabbit 0.9.2 Marc Benioff “I want to HIRE YOU!” 43/192

Slide 45

Slide 45 text

Powered by Rabbit 0.9.2   What!? 44/192

Slide 46

Slide 46 text

Powered by Rabbit 0.9.2   45/192

Slide 47

Slide 47 text

Powered by Rabbit 0.9.2 Chief Architect, Ruby Least Business-ish Title 46/192

Slide 48

Slide 48 text

Powered by Rabbit 0.9.2 Chief Architect, Ruby I will keep working on Ruby core development 47/192

Slide 49

Slide 49 text

Powered by Rabbit 0.9.2 Chief Architect, Ruby As I have done for long time 48/192

Slide 50

Slide 50 text

Powered by Rabbit 0.9.2 Chief Architect, Ruby They don't ask me anything new 49/192

Slide 51

Slide 51 text

Powered by Rabbit 0.9.2 Chief Architect, Ruby except attnending Dreamforce 50/192

Slide 52

Slide 52 text

Powered by Rabbit 0.9.2 Chief Architect, Ruby I have been worked full time for long time 51/192

Slide 53

Slide 53 text

Powered by Rabbit 0.9.2   52/192

Slide 54

Slide 54 text

Powered by Rabbit 0.9.2 Chief Architect, Ruby My financial situation has been improved 53/192

Slide 55

Slide 55 text

Powered by Rabbit 0.9.2 Chief Architect, Ruby Hiring me do not accelerate development much 54/192

Slide 56

Slide 56 text

Powered by Rabbit 0.9.2 We have to improve SFDC+Heroku want to accelerate Ruby development 55/192

Slide 57

Slide 57 text

Powered by Rabbit 0.9.2 We have to improve So we are going to form a team 56/192

Slide 58

Slide 58 text

Powered by Rabbit 0.9.2 We have to improve of full-time core committer(s) 57/192

Slide 59

Slide 59 text

Powered by Rabbit 0.9.2 Full-time core committer Nobuyoshi Nakada (Nobu) 58/192

Slide 60

Slide 60 text

Powered by Rabbit 0.9.2 Full-time core committer aka "Patch Monster" 59/192

Slide 61

Slide 61 text

Powered by Rabbit 0.9.2 Full-time core committer PatchMon 60/192

Slide 62

Slide 62 text

Powered by Rabbit 0.9.2 Full-time core committer Nobuyoshi Nakada (Nobu) 61/192

Slide 63

Slide 63 text

Powered by Rabbit 0.9.2 Number One Committer 62/192

Slide 64

Slide 64 text

Powered by Rabbit 0.9.2 Number One Committer 63/192

Slide 65

Slide 65 text

Powered by Rabbit 0.9.2   You can expect more patches from Nobu 64/192

Slide 66

Slide 66 text

Powered by Rabbit 0.9.2 Full-time Committers More to come (if budget allows) 65/192

Slide 67

Slide 67 text

Powered by Rabbit 0.9.2 Full-time Committers I welcome more companies to hire core committers 66/192

Slide 68

Slide 68 text

Powered by Rabbit 0.9.2 Full-time Committers I have already contacted EnginYard 67/192

Slide 69

Slide 69 text

Powered by Rabbit 0.9.2   68/192

Slide 70

Slide 70 text

Powered by Rabbit 0.9.2   2011 69/192

Slide 71

Slide 71 text

Powered by Rabbit 0.9.2 the Standard We have been working on the standard for last three years 70/192

Slide 72

Slide 72 text

Powered by Rabbit 0.9.2 the Standard JIS Japan Industrial Standard 71/192

Slide 73

Slide 73 text

Powered by Rabbit 0.9.2 the Standard JIS x3017 72/192

Slide 74

Slide 74 text

Powered by Rabbit 0.9.2 the Standard ISO 73/192

Slide 75

Slide 75 text

Powered by Rabbit 0.9.2 the Standard Vote: 20 vs 0 74/192

Slide 76

Slide 76 text

Powered by Rabbit 0.9.2 The Standard The subset of Ruby 75/192

Slide 77

Slide 77 text

Powered by Rabbit 0.9.2 The Standard 1.8 and 1.9 compatible 76/192

Slide 78

Slide 78 text

Powered by Rabbit 0.9.2 The Standard Platform independence 77/192

Slide 79

Slide 79 text

Powered by Rabbit 0.9.2 The Standard No fork, no thread 78/192

Slide 80

Slide 80 text

Powered by Rabbit 0.9.2 The Standard It's stll incomplete 79/192

Slide 81

Slide 81 text

Powered by Rabbit 0.9.2 The Standard More versions to come 80/192

Slide 82

Slide 82 text

Powered by Rabbit 0.9.2 The Standard Better coverage 81/192

Slide 83

Slide 83 text

Powered by Rabbit 0.9.2 The Standard Will move to 1.9 (or 2.0) 82/192

Slide 84

Slide 84 text

Powered by Rabbit 0.9.2 The Standard The reasons behind 83/192

Slide 85

Slide 85 text

Powered by Rabbit 0.9.2 The reasons behind Business reliability 84/192

Slide 86

Slide 86 text

Powered by Rabbit 0.9.2 The reasons behind Alternative implementations 85/192

Slide 87

Slide 87 text

Powered by Rabbit 0.9.2   86/192

Slide 88

Slide 88 text

Powered by Rabbit 0.9.2   2011 87/192

Slide 89

Slide 89 text

Powered by Rabbit 0.9.2   The world has been taken over by machines 88/192

Slide 90

Slide 90 text

Powered by Rabbit 0.9.2   89/192

Slide 91

Slide 91 text

Powered by Rabbit 0.9.2   90/192

Slide 92

Slide 92 text

Powered by Rabbit 0.9.2   91/192

Slide 93

Slide 93 text

Powered by Rabbit 0.9.2   92/192

Slide 94

Slide 94 text

Powered by Rabbit 0.9.2   93/192

Slide 95

Slide 95 text

Powered by Rabbit 0.9.2   94/192

Slide 96

Slide 96 text

Powered by Rabbit 0.9.2   95/192

Slide 97

Slide 97 text

Powered by Rabbit 0.9.2   96/192

Slide 98

Slide 98 text

Powered by Rabbit 0.9.2   97/192

Slide 99

Slide 99 text

Powered by Rabbit 0.9.2   98/192

Slide 100

Slide 100 text

Powered by Rabbit 0.9.2   All driven by computers 99/192

Slide 101

Slide 101 text

Powered by Rabbit 0.9.2   Computers need software 100/192

Slide 102

Slide 102 text

Powered by Rabbit 0.9.2   Software ratio in systems increasing 101/192

Slide 103

Slide 103 text

Powered by Rabbit 0.9.2   Software should be written by us 102/192

Slide 104

Slide 104 text

Powered by Rabbit 0.9.2   in programming languages 103/192

Slide 105

Slide 105 text

Powered by Rabbit 0.9.2   There are numerous programming languages 104/192

Slide 106

Slide 106 text

Powered by Rabbit 0.9.2   But what we love most is.. 105/192

Slide 107

Slide 107 text

Powered by Rabbit 0.9.2   Ruby 106/192

Slide 108

Slide 108 text

Powered by Rabbit 0.9.2   But what is Ruby? 107/192

Slide 109

Slide 109 text

Powered by Rabbit 0.9.2   Muiti-fold definition 108/192

Slide 110

Slide 110 text

Powered by Rabbit 0.9.2   Ruby the syntax 109/192

Slide 111

Slide 111 text

Powered by Rabbit 0.9.2   Ruby the philosophy 110/192

Slide 112

Slide 112 text

Powered by Rabbit 0.9.2   Ruby the library 111/192

Slide 113

Slide 113 text

Powered by Rabbit 0.9.2   Ruby the gems 112/192

Slide 114

Slide 114 text

Powered by Rabbit 0.9.2   Ruby the community 113/192

Slide 115

Slide 115 text

Powered by Rabbit 0.9.2   We'd like to help more developers 114/192

Slide 116

Slide 116 text

Powered by Rabbit 0.9.2   JRuby 115/192

Slide 117

Slide 117 text

Powered by Rabbit 0.9.2   Ruby for JVM platform 116/192

Slide 118

Slide 118 text

Powered by Rabbit 0.9.2   Ruby to reach Java world 117/192

Slide 119

Slide 119 text

Powered by Rabbit 0.9.2   Ruboto 118/192

Slide 120

Slide 120 text

Powered by Rabbit 0.9.2   JRuby on Android 119/192

Slide 121

Slide 121 text

Powered by Rabbit 0.9.2   Rhodes 120/192

Slide 122

Slide 122 text

Powered by Rabbit 0.9.2   Ruby for mobile phones 121/192

Slide 123

Slide 123 text

Powered by Rabbit 0.9.2   CRuby 122/192

Slide 124

Slide 124 text

Powered by Rabbit 0.9.2   Ruby 1.9.3 123/192

Slide 125

Slide 125 text

Powered by Rabbit 0.9.2   Ruby 1.9.3RC1 124/192

Slide 126

Slide 126 text

Powered by Rabbit 0.9.2   Yugui 125/192

Slide 127

Slide 127 text

Powered by Rabbit 0.9.2   126/192

Slide 128

Slide 128 text

Powered by Rabbit 0.9.2   Keywords for the future 127/192

Slide 129

Slide 129 text

Powered by Rabbit 0.9.2   Cloud+Mobile 128/192

Slide 130

Slide 130 text

Powered by Rabbit 0.9.2   Cloud 129/192

Slide 131

Slide 131 text

Powered by Rabbit 0.9.2   130/192

Slide 132

Slide 132 text

Powered by Rabbit 0.9.2   131/192

Slide 133

Slide 133 text

Powered by Rabbit 0.9.2   132/192

Slide 134

Slide 134 text

Powered by Rabbit 0.9.2   Mobile 133/192

Slide 135

Slide 135 text

Powered by Rabbit 0.9.2   Small devices 134/192

Slide 136

Slide 136 text

Powered by Rabbit 0.9.2   Digital appliances 135/192

Slide 137

Slide 137 text

Powered by Rabbit 0.9.2   Mobile phones 136/192

Slide 138

Slide 138 text

Powered by Rabbit 0.9.2   Vehicle 137/192

Slide 139

Slide 139 text

Powered by Rabbit 0.9.2   Robots 138/192

Slide 140

Slide 140 text

Powered by Rabbit 0.9.2   I'd like to address these fields 139/192

Slide 141

Slide 141 text

Powered by Rabbit 0.9.2   As Lua does now 140/192

Slide 142

Slide 142 text

Powered by Rabbit 0.9.2   141/192

Slide 143

Slide 143 text

Powered by Rabbit 0.9.2   mruby 142/192

Slide 144

Slide 144 text

Powered by Rabbit 0.9.2 mruby Matz's embeddable minimal implementation of Ruby language 143/192

Slide 145

Slide 145 text

Powered by Rabbit 0.9.2   RiteVM as core 144/192

Slide 146

Slide 146 text

Powered by Rabbit 0.9.2   Minimal standard libraries 145/192

Slide 147

Slide 147 text

Powered by Rabbit 0.9.2   Embeddable C API 146/192

Slide 148

Slide 148 text

Powered by Rabbit 0.9.2   Incremental GC 147/192

Slide 149

Slide 149 text

Powered by Rabbit 0.9.2   Soft realtime 148/192

Slide 150

Slide 150 text

Powered by Rabbit 0.9.2   Parser to generate AST 149/192

Slide 151

Slide 151 text

Powered by Rabbit 0.9.2   Codegen to generate bytecode 150/192

Slide 152

Slide 152 text

Powered by Rabbit 0.9.2   RiteVM to run bytecode 151/192

Slide 153

Slide 153 text

Powered by Rabbit 0.9.2   32bit instructions 152/192

Slide 154

Slide 154 text

Powered by Rabbit 0.9.2   Instructions are serializable 153/192

Slide 155

Slide 155 text

Powered by Rabbit 0.9.2   to binary files 154/192

Slide 156

Slide 156 text

Powered by Rabbit 0.9.2   or C files 155/192

Slide 157

Slide 157 text

Powered by Rabbit 0.9.2   Entirely written in C99 156/192

Slide 158

Slide 158 text

Powered by Rabbit 0.9.2   for all imaginable platforms 157/192

Slide 159

Slide 159 text

Powered by Rabbit 0.9.2   Linux 158/192

Slide 160

Slide 160 text

Powered by Rabbit 0.9.2   Windows 159/192

Slide 161

Slide 161 text

Powered by Rabbit 0.9.2   MacOS 160/192

Slide 162

Slide 162 text

Powered by Rabbit 0.9.2   Android 161/192

Slide 163

Slide 163 text

Powered by Rabbit 0.9.2   iOS 162/192

Slide 164

Slide 164 text

Powered by Rabbit 0.9.2   VxWorks 163/192

Slide 165

Slide 165 text

Powered by Rabbit 0.9.2   ITRON 164/192

Slide 166

Slide 166 text

Powered by Rabbit 0.9.2   or even non OS platforms 165/192

Slide 167

Slide 167 text

Powered by Rabbit 0.9.2   As I explained last year 166/192

Slide 168

Slide 168 text

Powered by Rabbit 0.9.2   Difference? 167/192

Slide 169

Slide 169 text

Powered by Rabbit 0.9.2   Now it works! 168/192

Slide 170

Slide 170 text

Powered by Rabbit 0.9.2   Demo 169/192

Slide 171

Slide 171 text

Powered by Rabbit 0.9.2 Demo Mandelbrot Set 170/192

Slide 172

Slide 172 text

Powered by Rabbit 0.9.2   171/192

Slide 173

Slide 173 text

Powered by Rabbit 0.9.2   mruby is young 172/192

Slide 174

Slide 174 text

Powered by Rabbit 0.9.2   it's small 173/192

Slide 175

Slide 175 text

Powered by Rabbit 0.9.2   it's weak 174/192

Slide 176

Slide 176 text

Powered by Rabbit 0.9.2   mruby has possibility 175/192

Slide 177

Slide 177 text

Powered by Rabbit 0.9.2   huge possibility 176/192

Slide 178

Slide 178 text

Powered by Rabbit 0.9.2   can you imagine? 177/192

Slide 179

Slide 179 text

Powered by Rabbit 0.9.2   Mobile device 178/192

Slide 180

Slide 180 text

Powered by Rabbit 0.9.2   Robots 179/192

Slide 181

Slide 181 text

Powered by Rabbit 0.9.2   Digital appliances 180/192

Slide 182

Slide 182 text

Powered by Rabbit 0.9.2   Games 181/192

Slide 183

Slide 183 text

Powered by Rabbit 0.9.2   Ruby instead of Lua 182/192

Slide 184

Slide 184 text

Powered by Rabbit 0.9.2   Server side 183/192

Slide 185

Slide 185 text

Powered by Rabbit 0.9.2   Ruby instead of Node.js 184/192

Slide 186

Slide 186 text

Powered by Rabbit 0.9.2   One big step to rule the world 185/192

Slide 187

Slide 187 text

Powered by Rabbit 0.9.2   No perfect languages 186/192

Slide 188

Slide 188 text

Powered by Rabbit 0.9.2   Even Ruby 187/192

Slide 189

Slide 189 text

Powered by Rabbit 0.9.2   We'd like to provide choices 188/192

Slide 190

Slide 190 text

Powered by Rabbit 0.9.2   Freedom to choose Ruby 189/192

Slide 191

Slide 191 text

Powered by Rabbit 0.9.2   And make the world happier 190/192

Slide 192

Slide 192 text

Powered by Rabbit 0.9.2   As we feel right now 191/192

Slide 193

Slide 193 text

Powered by Rabbit 0.9.2   Thank you 192/192