ruby 124c41+ - matz
DESCRIPTION
TRANSCRIPT
Powered by Rabbit 0.6.4
Ruby 124C41+
Yukihiro "Matz" Matsumotoまつもと ゆきひろ
Powered by Rabbit 0.6.4
FAQ
What's 124C41+?
1/54
Powered by Rabbit 0.6.4
Ralph 124C41+
A romance of the year 26602/54
Powered by Rabbit 0.6.4
Ralph 124C41+
The very early science fiction story
✓
In the year 2660, a genius inventor Ralph 124C41+ saves his girlfriend kidnapped by a bad Martian.
✓
3/54
Powered by Rabbit 0.6.4
Ralph 124C41+Written by Hugo Gernsback✓
in 1911✓
Predicted a lot of modern inventions
Television✓
Solar power✓
and lot more✓
✓
4/54
Powered by Rabbit 0.6.4
Ralph 124C41+
Check Wikipedia
5/54
Powered by Rabbit 0.6.4
Ralph 124C41+
One to foresee for one✓
means if we have enough input and insight, we can foresee the future.
✓
The future of Ruby✓
6/54
Powered by Rabbit 0.6.4
Ruby 124C41+
We try to foresee the future of Ruby the language
7/54
Powered by Rabbit 0.6.4
Moore's law
The number of transistors in LSI doubles every 24 months
8/54
Powered by Rabbit 0.6.4
the CPU
Moore's law means the power of CPU grows exponentially
9/54
Powered by Rabbit 0.6.4
Faster Computers
PCs are faster than super computers of 20 years ago
10/54
Powered by Rabbit 0.6.4
Cheaper Computers
We can buy a laptop PC at appliance stores for $400 or less
11/54
Powered by Rabbit 0.6.4
Cheaper Connection
$50 or less for 100M optic fiber connection in Japan
12/54
Powered by Rabbit 0.6.4
Bigger Storage
Bigger RAM✓
Bigger HDD✓
13/54
Powered by Rabbit 0.6.4
The end of Clock grow
14/54
Powered by Rabbit 0.6.4
Many Cores
Dual core✓
Quad core✓
Many core✓
or even DC in a chip✓
15/54
Powered by Rabbit 0.6.4
Ubiquitous Computer
Japanese cell phone from Panasonic
16/54
Powered by Rabbit 0.6.4
Hardware Trend
Faster✓
Cheaper✓
More ubiquitous✓
More cores✓
17/54
Powered by Rabbit 0.6.4
Software Trend
hardware changes✓
cause software changes✓
18/54
Powered by Rabbit 0.6.4
Runtime Efficiency
Less important✓
CPUs are fast✓
19/54
Powered by Rabbit 0.6.4
No More Assembler
haven't heard lately?✓
20/54
Powered by Rabbit 0.6.4
Software Becomes
More important✓
More complex✓
We just need more software✓
21/54
Powered by Rabbit 0.6.4
Abstraction
Object-oriented programming
✓
Functional programming✓
22/54
Powered by Rabbit 0.6.4
Software Trend
Runtime efficiency less important
✓
We can emphasize human factor
✓
More abstraction✓
More confortable tools✓
23/54
Powered by Rabbit 0.6.4
Information Explosion
We will produce 988 Exabytes in the year 2010
✓
Bigger data than human kind have ever produced
✓
24/54
Powered by Rabbit 0.6.4
Summary
Machines are faster✓
Connections are cheaper✓
We need more software✓
We have huge amount of data
✓
25/54
Powered by Rabbit 0.6.4
Ruby in the Past
back in 1993✓
mc68000 200MHz✓
200MB HDD✓
BSD UNIX✓
26/54
Powered by Rabbit 0.6.4
The year 1993
C / C++✓
Windows 3.1 / SunOS / MacOS
✓
Perl4 / AWK✓
No one use OOP in scripting✓
27/54
Powered by Rabbit 0.6.4
The year 1993
OOP fanboy✓
Language geek✓
UNIX hacker✓
28/54
Powered by Rabbit 0.6.4
OO Scripting
Too slow✓
Too complex✓
Too much✓
29/54
Powered by Rabbit 0.6.4
No One Stopped Me
Project started on February 24, 1993
✓
The day I choose the name Ruby
✓
The name is so important for software
one thing I regret Googlability ✓
✓
30/54
Powered by Rabbit 0.6.4
No One Stopped Me
Took me 6 months for simple "hello world"
✓
that made me realized GC needs
✓
Released publicly December 21, 1995
✓
31/54
Powered by Rabbit 0.6.4
Ruby the Language
Ruby has proven
OOP for scripting is useful✓
OOP can be simple and easy✓
Programming can be fun again
✓
32/54
Powered by Rabbit 0.6.4
Extreme Language Design
if OOP is good, make everything OOP
✓
if scripting is good, make everything scripting
✓
if DSL is good, make everything DSL
✓
33/54
Powered by Rabbit 0.6.4
Extreme Language Design
if higher order function is good, allow every method to be higher order function
✓
if mixin is good, disallow multiple inheritance
✓
34/54
Powered by Rabbit 0.6.4
Background
Machines are faster / cheaper / ubiquitous
✓
More cores✓
Connections are cheaper✓
35/54
Powered by Rabbit 0.6.4
Background
We need more software✓
Productivity become more important
✓
We have huge amount of data (988 Exabytes)
✓
36/54
Powered by Rabbit 0.6.4
Background
Ruby focus on programmers✓
Ruby focus on productivity✓
Ruby tend to choose extreme design
✓
37/54
Powered by Rabbit 0.6.4
The Future of Ruby
What do you think?
38/54
Powered by Rabbit 0.6.4
The Future of Ruby
Faster
Multiple VM✓
GC improvement✓
JIT?✓
39/54
Powered by Rabbit 0.6.4
The Future of Ruby
More Powerful
Distributed programmingdRuby / Rinda✓
Message Queue✓
✓
faster IPC (messagepack)✓
Multi-core aware (via MVM)✓
40/54
Powered by Rabbit 0.6.4
The Future of Ruby
Broader
small → embedding✓
large → HPC✓
41/54
Powered by Rabbit 0.6.4
Embedding
Smaller Implementation
Alternative (not planned yet)✓
Atomic Ruby✓
42/54
Powered by Rabbit 0.6.4
HPC
High Performance Computing
improve NArray (w/ libjit)✓
MPI Ruby✓
AOT compiler✓
and other HPC stuff✓
43/54
Powered by Rabbit 0.6.4
The Future of Ruby
More Modular
Selector namespaceclassbox✓
✓
Traits✓
44/54
Powered by Rabbit 0.6.4
Selector Namespace
limit the effectiveness of name overriding
✓
scoped mathn, for example✓
45/54
Powered by Rabbit 0.6.4
Traits
Operational combination of features (methods)
module operation +, -✓
✓
46/54
Powered by Rabbit 0.6.4
The Future of Ruby
More Functional
Explicit lazy evaluation✓
Enumerator as Lazy List✓
47/54
Powered by Rabbit 0.6.4
Functional Ruby
explict vs implicit
obj.foo vs obj.method(:foo)✓
foo() vs foo.call()or foo[] or foo.()✓
✓
48/54
Powered by Rabbit 0.6.4
Functional Ruby
explict vs implicit
(take 10 (lines f)) vs f.each.take(10)
not f.lines.take(10)✓
✓
49/54
Powered by Rabbit 0.6.4
Functional Ruby (to be)
map etc. do not work for infinite enumerable
✓
mapx (assumed name) would return enumerator
✓
50/54
Powered by Rabbit 0.6.4
The Future of Ruby
Faster✓
More powerful✓
Broader✓
More modular✓
More functional✓
51/54
Powered by Rabbit 0.6.4
The Future of Ruby
We will keep moving forward✓
Stay tuned✓
52/54
Powered by Rabbit 0.6.4
We need you
Help us✓
Let's make Ruby even better!
✓
See you at ruby-core✓
53/54
Powered by Rabbit 0.6.4
Make the World Better
Thank you
54/54