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

Ruby everywhere

Embed Size (px)

DESCRIPTION

The keynote at RubyConf 2011 New Orleans

Citation preview

Page 1: Ruby everywhere

Powered by Rabbit 0.9.2

Ruby Everywhere

まつもと ゆきひろYukihiro "Matz" Matsumoto

@yukihiro_matz

Page 2: Ruby everywhere

Powered by Rabbit 0.9.2

 TPO 1/192

Page 3: Ruby everywhere

Powered by Rabbit 0.9.2

TPO

O=Occasion

2/192

Page 4: Ruby everywhere

Powered by Rabbit 0.9.2

Occasion

Keynote

3/192

Page 5: Ruby everywhere

Powered by Rabbit 0.9.2

Keynote

a speech, as at a political convention, that presents important issues, principles, policies, etc.

4/192

Page 6: Ruby everywhere

Powered by Rabbit 0.9.2

Keynote

Give me a break

5/192

Page 7: Ruby everywhere

Powered by Rabbit 0.9.2

Keynote

I am a mere programmer

6/192

Page 8: Ruby everywhere

Powered by Rabbit 0.9.2

a programmer

who inventeda language

7/192

Page 9: Ruby everywhere

Powered by Rabbit 0.9.2

 

a great language

8/192

Page 10: Ruby everywhere

Powered by Rabbit 0.9.2

 

accidentally

9/192

Page 11: Ruby everywhere

Powered by Rabbit 0.9.2

 

But that's lifeCe'st la vie

10/192

Page 12: Ruby everywhere

Powered by Rabbit 0.9.2

 

Let's start the keynote

11/192

Page 13: Ruby everywhere

Powered by Rabbit 0.9.2

Keynote

Good and Bad

12/192

Page 14: Ruby everywhere

Powered by Rabbit 0.9.2

Keynote: the good part

The first at the conference

I can enjoy rest of the conference

13/192

Page 15: Ruby everywhere

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

Page 16: Ruby everywhere

Powered by Rabbit 0.9.2

TPO

P=Place

15/192

Page 17: Ruby everywhere

Powered by Rabbit 0.9.2

Place

New Orleans

16/192

Page 18: Ruby everywhere

Powered by Rabbit 0.9.2

Place

松江Matsue

17/192

Page 19: Ruby everywhere

Powered by Rabbit 0.9.2

Matsue

My hometown

18/192

Page 20: Ruby everywhere

Powered by Rabbit 0.9.2

Place

Sister Cities

19/192

Page 21: Ruby everywhere

Powered by Rabbit 0.9.2

 

Any locals?

20/192

Page 22: Ruby everywhere

Powered by Rabbit 0.9.2

Place

Mayor Matsuura of Matsue City

21/192

Page 23: Ruby everywhere

Powered by Rabbit 0.9.2

 

Hi from him

22/192

Page 24: Ruby everywhere

Powered by Rabbit 0.9.2

TPO

T=Time

23/192

Page 25: Ruby everywhere

Powered by Rabbit 0.9.2

Time

2011

24/192

Page 26: Ruby everywhere

Powered by Rabbit 0.9.2

The first RubyConf was

Oct. 12-14 2001in Tampa, FL

25/192

Page 27: Ruby everywhere

Powered by Rabbit 0.9.2

So it's

11th RubyConf

26/192

Page 28: Ruby everywhere

Powered by Rabbit 0.9.2

 

First RubyConf in second decade

27/192

Page 29: Ruby everywhere

Powered by Rabbit 0.9.2

 

10th anniversary

28/192

Page 30: Ruby everywhere

Powered by Rabbit 0.9.2

 

Good chance to beat the world

29/192

Page 31: Ruby everywhere

Powered by Rabbit 0.9.2

 30/192

Page 32: Ruby everywhere

Powered by Rabbit 0.9.2

 

2011

31/192

Page 33: Ruby everywhere

Powered by Rabbit 0.9.2

New position

32/192

Page 34: Ruby everywhere

Powered by Rabbit 0.9.2

 

Chief Architect, Ruby

33/192

Page 35: Ruby everywhere

Powered by Rabbit 0.9.2

 

2010

34/192

Page 36: Ruby everywhere

Powered by Rabbit 0.9.2

 

Salesforce.com acquires Heroku.com

35/192

Page 37: Ruby everywhere

Powered by Rabbit 0.9.2

Marc Benioff

“Ruby is the language of Cloud 2”

36/192

Page 38: Ruby everywhere

Powered by Rabbit 0.9.2

 

6 months later

37/192

Page 39: Ruby everywhere

Powered by Rabbit 0.9.2

TOYOTA Friend

38/192

Page 40: Ruby everywhere

Powered by Rabbit 0.9.2

 

39/192

Page 41: Ruby everywhere

Powered by Rabbit 0.9.2

Marc Benioff

“Ruby is great!”

40/192

Page 42: Ruby everywhere

Powered by Rabbit 0.9.2

Marc Benioff

“I want to help Ruby!”

41/192

Page 43: Ruby everywhere

Powered by Rabbit 0.9.2

Marc Benioff

“as the language of cloud age”

42/192

Page 44: Ruby everywhere

Powered by Rabbit 0.9.2

Marc Benioff

“I want to HIRE YOU!”

43/192

Page 45: Ruby everywhere

Powered by Rabbit 0.9.2

 

What!?

44/192

Page 46: Ruby everywhere

Powered by Rabbit 0.9.2

 

45/192

Page 47: Ruby everywhere

Powered by Rabbit 0.9.2

Chief Architect, Ruby

Least Business-ish Title

46/192

Page 48: Ruby everywhere

Powered by Rabbit 0.9.2

Chief Architect, Ruby

I will keep working on Ruby core development

47/192

Page 49: Ruby everywhere

Powered by Rabbit 0.9.2

Chief Architect, Ruby

As I have done for long time

48/192

Page 50: Ruby everywhere

Powered by Rabbit 0.9.2

Chief Architect, Ruby

They don't ask me anything new

49/192

Page 51: Ruby everywhere

Powered by Rabbit 0.9.2

Chief Architect, Ruby

except attnending Dreamforce

50/192

Page 52: Ruby everywhere

Powered by Rabbit 0.9.2

Chief Architect, Ruby

I have been worked full time for long time

51/192

Page 53: Ruby everywhere

Powered by Rabbit 0.9.2

 

52/192

Page 54: Ruby everywhere

Powered by Rabbit 0.9.2

Chief Architect, Ruby

My financial situation has been improved

53/192

Page 55: Ruby everywhere

Powered by Rabbit 0.9.2

Chief Architect, Ruby

Hiring me do not accelerate development much

54/192

Page 56: Ruby everywhere

Powered by Rabbit 0.9.2

We have to improve

SFDC+Heroku want to accelerate Ruby development

55/192

Page 57: Ruby everywhere

Powered by Rabbit 0.9.2

We have to improve

So we are going to form a team

56/192

Page 58: Ruby everywhere

Powered by Rabbit 0.9.2

We have to improve

of full-time core committer(s)

57/192

Page 59: Ruby everywhere

Powered by Rabbit 0.9.2

Full-time core committer

Nobuyoshi Nakada (Nobu)

58/192

Page 60: Ruby everywhere

Powered by Rabbit 0.9.2

Full-time core committer

aka "Patch Monster"

59/192

Page 61: Ruby everywhere

Powered by Rabbit 0.9.2

Full-time core committer

PatchMon

60/192

Page 62: Ruby everywhere

Powered by Rabbit 0.9.2

Full-time core committer

Nobuyoshi Nakada (Nobu)

61/192

Page 63: Ruby everywhere

Powered by Rabbit 0.9.2

Number One Committer

62/192

Page 64: Ruby everywhere

Powered by Rabbit 0.9.2

Number One Committer

63/192

Page 65: Ruby everywhere

Powered by Rabbit 0.9.2

 

You can expect more patches from Nobu

64/192

Page 66: Ruby everywhere

Powered by Rabbit 0.9.2

Full-time Committers

More to come (if budget allows)

65/192

Page 67: Ruby everywhere

Powered by Rabbit 0.9.2

Full-time Committers

I welcome more companies to hire core committers

66/192

Page 68: Ruby everywhere

Powered by Rabbit 0.9.2

Full-time Committers

I have already contacted EnginYard

67/192

Page 69: Ruby everywhere

Powered by Rabbit 0.9.2

 68/192

Page 70: Ruby everywhere

Powered by Rabbit 0.9.2

 

2011

69/192

Page 71: Ruby everywhere

Powered by Rabbit 0.9.2

the Standard

We have been working on the standard for last three years

70/192

Page 72: Ruby everywhere

Powered by Rabbit 0.9.2

the Standard

JISJapan Industrial Standard

71/192

Page 73: Ruby everywhere

Powered by Rabbit 0.9.2

the Standard

JIS x3017

72/192

Page 74: Ruby everywhere

Powered by Rabbit 0.9.2

the Standard

ISO

73/192

Page 75: Ruby everywhere

Powered by Rabbit 0.9.2

the Standard

Vote: 20 vs 0

74/192

Page 76: Ruby everywhere

Powered by Rabbit 0.9.2

The Standard

The subset of Ruby

75/192

Page 77: Ruby everywhere

Powered by Rabbit 0.9.2

The Standard

1.8 and 1.9 compatible

76/192

Page 78: Ruby everywhere

Powered by Rabbit 0.9.2

The Standard

Platform independence

77/192

Page 79: Ruby everywhere

Powered by Rabbit 0.9.2

The Standard

No fork, no thread

78/192

Page 80: Ruby everywhere

Powered by Rabbit 0.9.2

The Standard

It's stll incomplete

79/192

Page 81: Ruby everywhere

Powered by Rabbit 0.9.2

The Standard

More versions to come

80/192

Page 82: Ruby everywhere

Powered by Rabbit 0.9.2

The Standard

Better coverage

81/192

Page 83: Ruby everywhere

Powered by Rabbit 0.9.2

The Standard

Will move to 1.9 (or 2.0)

82/192

Page 84: Ruby everywhere

Powered by Rabbit 0.9.2

The Standard

The reasons behind

83/192

Page 85: Ruby everywhere

Powered by Rabbit 0.9.2

The reasons behind

Business reliability

84/192

Page 86: Ruby everywhere

Powered by Rabbit 0.9.2

The reasons behind

Alternative implementations

85/192

Page 87: Ruby everywhere

Powered by Rabbit 0.9.2

 86/192

Page 88: Ruby everywhere

Powered by Rabbit 0.9.2

 

2011

87/192

Page 89: Ruby everywhere

Powered by Rabbit 0.9.2

 

The world has been taken over by machines

88/192

Page 90: Ruby everywhere

Powered by Rabbit 0.9.2

 

89/192

Page 91: Ruby everywhere

Powered by Rabbit 0.9.2

 

90/192

Page 92: Ruby everywhere

Powered by Rabbit 0.9.2

 

91/192

Page 93: Ruby everywhere

Powered by Rabbit 0.9.2

 

92/192

Page 94: Ruby everywhere

Powered by Rabbit 0.9.2

 

93/192

Page 95: Ruby everywhere

Powered by Rabbit 0.9.2

 

94/192

Page 96: Ruby everywhere

Powered by Rabbit 0.9.2

 

95/192

Page 97: Ruby everywhere

Powered by Rabbit 0.9.2

 

96/192

Page 98: Ruby everywhere

Powered by Rabbit 0.9.2

 

97/192

Page 99: Ruby everywhere

Powered by Rabbit 0.9.2

 

98/192

Page 100: Ruby everywhere

Powered by Rabbit 0.9.2

 

All driven by computers

99/192

Page 101: Ruby everywhere

Powered by Rabbit 0.9.2

 

Computers need software

100/192

Page 102: Ruby everywhere

Powered by Rabbit 0.9.2

 

Software ratio in systems increasing

101/192

Page 103: Ruby everywhere

Powered by Rabbit 0.9.2

 

Software should be written by us

102/192

Page 104: Ruby everywhere

Powered by Rabbit 0.9.2

 

in programming languages

103/192

Page 105: Ruby everywhere

Powered by Rabbit 0.9.2

 

There are numerous programming languages

104/192

Page 106: Ruby everywhere

Powered by Rabbit 0.9.2

 

But what we love most is..

105/192

Page 107: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby

106/192

Page 108: Ruby everywhere

Powered by Rabbit 0.9.2

 

But what is Ruby?

107/192

Page 109: Ruby everywhere

Powered by Rabbit 0.9.2

 

Muiti-fold definition

108/192

Page 110: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby the syntax

109/192

Page 111: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby the philosophy

110/192

Page 112: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby the library

111/192

Page 113: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby the gems

112/192

Page 114: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby the community

113/192

Page 115: Ruby everywhere

Powered by Rabbit 0.9.2

 

We'd like to help more developers

114/192

Page 116: Ruby everywhere

Powered by Rabbit 0.9.2

 

JRuby

115/192

Page 117: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby for JVM platform

116/192

Page 118: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby to reach Java world

117/192

Page 119: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruboto

118/192

Page 120: Ruby everywhere

Powered by Rabbit 0.9.2

 

JRuby on Android

119/192

Page 121: Ruby everywhere

Powered by Rabbit 0.9.2

 

Rhodes

120/192

Page 122: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby for mobile phones

121/192

Page 123: Ruby everywhere

Powered by Rabbit 0.9.2

 

CRuby

122/192

Page 124: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby 1.9.3

123/192

Page 125: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby 1.9.3RC1

124/192

Page 126: Ruby everywhere

Powered by Rabbit 0.9.2

 

Yugui

125/192

Page 127: Ruby everywhere

Powered by Rabbit 0.9.2

 126/192

Page 128: Ruby everywhere

Powered by Rabbit 0.9.2

 

Keywords for the future

127/192

Page 129: Ruby everywhere

Powered by Rabbit 0.9.2

 

Cloud+Mobile

128/192

Page 130: Ruby everywhere

Powered by Rabbit 0.9.2

 

Cloud

129/192

Page 131: Ruby everywhere

Powered by Rabbit 0.9.2

 

130/192

Page 132: Ruby everywhere

Powered by Rabbit 0.9.2

 

131/192

Page 133: Ruby everywhere

Powered by Rabbit 0.9.2

 

132/192

Page 134: Ruby everywhere

Powered by Rabbit 0.9.2

 

Mobile

133/192

Page 135: Ruby everywhere

Powered by Rabbit 0.9.2

 

Small devices

134/192

Page 136: Ruby everywhere

Powered by Rabbit 0.9.2

 

Digital appliances

135/192

Page 137: Ruby everywhere

Powered by Rabbit 0.9.2

 

Mobile phones

136/192

Page 138: Ruby everywhere

Powered by Rabbit 0.9.2

 

Vehicle

137/192

Page 139: Ruby everywhere

Powered by Rabbit 0.9.2

 

Robots

138/192

Page 140: Ruby everywhere

Powered by Rabbit 0.9.2

 

I'd like to address these fields

139/192

Page 141: Ruby everywhere

Powered by Rabbit 0.9.2

 

As Lua does now

140/192

Page 142: Ruby everywhere

Powered by Rabbit 0.9.2

 

141/192

Page 143: Ruby everywhere

Powered by Rabbit 0.9.2

 

mruby

142/192

Page 144: Ruby everywhere

Powered by Rabbit 0.9.2

mruby

Matz'sembeddableminimal implementation ofRuby language

143/192

Page 145: Ruby everywhere

Powered by Rabbit 0.9.2

 

RiteVM as core

144/192

Page 146: Ruby everywhere

Powered by Rabbit 0.9.2

 

Minimal standard libraries

145/192

Page 147: Ruby everywhere

Powered by Rabbit 0.9.2

 

Embeddable C API

146/192

Page 148: Ruby everywhere

Powered by Rabbit 0.9.2

 

Incremental GC

147/192

Page 149: Ruby everywhere

Powered by Rabbit 0.9.2

 

Soft realtime

148/192

Page 150: Ruby everywhere

Powered by Rabbit 0.9.2

 

Parser to generate AST

149/192

Page 151: Ruby everywhere

Powered by Rabbit 0.9.2

 

Codegen to generate bytecode

150/192

Page 152: Ruby everywhere

Powered by Rabbit 0.9.2

 

RiteVM to run bytecode

151/192

Page 153: Ruby everywhere

Powered by Rabbit 0.9.2

 

32bit instructions

152/192

Page 154: Ruby everywhere

Powered by Rabbit 0.9.2

 

Instructions are serializable

153/192

Page 155: Ruby everywhere

Powered by Rabbit 0.9.2

 

to binary files

154/192

Page 156: Ruby everywhere

Powered by Rabbit 0.9.2

 

or C files

155/192

Page 157: Ruby everywhere

Powered by Rabbit 0.9.2

 

Entirely written in C99

156/192

Page 158: Ruby everywhere

Powered by Rabbit 0.9.2

 

for all imaginable platforms

157/192

Page 159: Ruby everywhere

Powered by Rabbit 0.9.2

 

Linux

158/192

Page 160: Ruby everywhere

Powered by Rabbit 0.9.2

 

Windows

159/192

Page 161: Ruby everywhere

Powered by Rabbit 0.9.2

 

MacOS

160/192

Page 162: Ruby everywhere

Powered by Rabbit 0.9.2

 

Android

161/192

Page 163: Ruby everywhere

Powered by Rabbit 0.9.2

 

iOS

162/192

Page 164: Ruby everywhere

Powered by Rabbit 0.9.2

 

VxWorks

163/192

Page 165: Ruby everywhere

Powered by Rabbit 0.9.2

 

ITRON

164/192

Page 166: Ruby everywhere

Powered by Rabbit 0.9.2

 

or even non OS platforms

165/192

Page 167: Ruby everywhere

Powered by Rabbit 0.9.2

 

As I explained last year

166/192

Page 168: Ruby everywhere

Powered by Rabbit 0.9.2

 

Difference?

167/192

Page 169: Ruby everywhere

Powered by Rabbit 0.9.2

 

Now it works!

168/192

Page 170: Ruby everywhere

Powered by Rabbit 0.9.2

 

Demo

169/192

Page 171: Ruby everywhere

Powered by Rabbit 0.9.2

Demo

Mandelbrot Set

170/192

Page 172: Ruby everywhere

Powered by Rabbit 0.9.2

 

171/192

Page 173: Ruby everywhere

Powered by Rabbit 0.9.2

 

mruby is young

172/192

Page 174: Ruby everywhere

Powered by Rabbit 0.9.2

 

it's small

173/192

Page 175: Ruby everywhere

Powered by Rabbit 0.9.2

 

it's weak

174/192

Page 176: Ruby everywhere

Powered by Rabbit 0.9.2

 

mruby has possibility

175/192

Page 177: Ruby everywhere

Powered by Rabbit 0.9.2

 

huge possibility

176/192

Page 178: Ruby everywhere

Powered by Rabbit 0.9.2

 

can you imagine?

177/192

Page 179: Ruby everywhere

Powered by Rabbit 0.9.2

 

Mobile device

178/192

Page 180: Ruby everywhere

Powered by Rabbit 0.9.2

 

Robots

179/192

Page 181: Ruby everywhere

Powered by Rabbit 0.9.2

 

Digital appliances

180/192

Page 182: Ruby everywhere

Powered by Rabbit 0.9.2

 

Games

181/192

Page 183: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby instead of Lua

182/192

Page 184: Ruby everywhere

Powered by Rabbit 0.9.2

 

Server side

183/192

Page 185: Ruby everywhere

Powered by Rabbit 0.9.2

 

Ruby instead of Node.js

184/192

Page 186: Ruby everywhere

Powered by Rabbit 0.9.2

 

One big step to rule the world

185/192

Page 187: Ruby everywhere

Powered by Rabbit 0.9.2

 

No perfect languages

186/192

Page 188: Ruby everywhere

Powered by Rabbit 0.9.2

 

Even Ruby

187/192

Page 189: Ruby everywhere

Powered by Rabbit 0.9.2

 

We'd like to provide choices

188/192

Page 190: Ruby everywhere

Powered by Rabbit 0.9.2

 

Freedom to choose Ruby

189/192

Page 191: Ruby everywhere

Powered by Rabbit 0.9.2

 

And make the world happier

190/192

Page 192: Ruby everywhere

Powered by Rabbit 0.9.2

 

As we feel right now

191/192

Page 193: Ruby everywhere

Powered by Rabbit 0.9.2

 

Thank you

192/192