30 Years of RubyOSS Vision
Ruby Association

Yukihiro "Matz" Matsumoto@yukihiro_matz

Powered by Rabbit 3.0.1

Lessons from the History

Powered by Rabbit 3.0.1

I Love Programming Languages

Powered by Rabbit 3.0.1

Language Geek

Powered by Rabbit 3.0.1

Trivia

Powered by Rabbit 3.0.1

What is the First Programming Language?

Powered by Rabbit 3.0.1

FORTRAN (1954)

Powered by Rabbit 3.0.1

Plankalkül (1942)

Powered by Rabbit 3.0.1

Konrad Zuse

Powered by Rabbit 3.0.1

Z3Powered by Rabbit 3.0.1

Assignment
if-statement
LoopPowered by Rabbit 3.0.1

Structure
Subroutine
Array

Powered by Rabbit 3.0.1

Assertion
Exception
Goal-directed Execution

Powered by Rabbit 3.0.1

1972 Spec Released

Powered by Rabbit 3.0.1

1998 First Compiler Implemented

Powered by Rabbit 3.0.1

Idea itself is not EnoughPowered by Rabbit 3.0.1

Provide Useful Implementation

Powered by Rabbit 3.0.1

Grow with Users

Powered by Rabbit 3.0.1

What is the Simplest Programming
Language?

Powered by Rabbit 3.0.1

SyntacticallyPowered by Rabbit 3.0.1

Lisp, FORTH, APL (1960s)

Powered by Rabbit 3.0.1

None Popular Now

Powered by Rabbit 3.0.1

If a language is simple, our software will
be more complex,because total amountof complexity is constant
Larry Wall (-ish)Powered by Rabbit 3.0.1

Simple is (not always) BestPowered by Rabbit 3.0.1

Since Human Mind is Complex

Powered by Rabbit 3.0.1

Follow the Mental-Model

Powered by Rabbit 3.0.1

Other Notable Languages

Powered by Rabbit 3.0.1

PL/IPowered by Rabbit 3.0.1

AdaPowered by Rabbit 3.0.1

Complexity is our Enemy

Powered by Rabbit 3.0.1

Creeping Featurism

Powered by Rabbit 3.0.1

Linear Complexity is Better

Powered by Rabbit 3.0.1

Than Exponential Complexity

Powered by Rabbit 3.0.1

Bigger (not always) the Better

Powered by Rabbit 3.0.1

PerlPowered by Rabbit 3.0.1

Perl1.0 (1986)

Powered by Rabbit 3.0.1

Perl5.0 (1993)

Powered by Rabbit 3.0.1

Perl5.38 (2023)

Powered by Rabbit 3.0.1

2000 "We are Bored" Event

Powered by Rabbit 3.0.1

361 RFCs

Powered by Rabbit 3.0.1

Perl6

Powered by Rabbit 3.0.1

Raku

Powered by Rabbit 3.0.1

Boring Pitfall

Powered by Rabbit 3.0.1

we are f**ed unless we can come up
with something that will excite thecommunity, because everyone's gettingbored and going off and doing otherthings

Powered by Rabbit 3.0.1

The Biggest Enemy of OSS

Powered by Rabbit 3.0.1

Or Any Project Driven by Motivation

Powered by Rabbit 3.0.1

OSS need to keep moving forward

Powered by Rabbit 3.0.1

We Need to Attract the Community

Powered by Rabbit 3.0.1

Second System Syndrome

Powered by Rabbit 3.0.1

When we re-create the system, we oftern
become too ambitious

Powered by Rabbit 3.0.1

to Solve Everything all at Once

Powered by Rabbit 3.0.1

"Scrap & Build" is a Bad Idea

Powered by Rabbit 3.0.1

We Should Evolve GraduallyPowered by Rabbit 3.0.1

Ruby

Powered by Rabbit 3.0.1

I Once Followed Perl6 Idea

Powered by Rabbit 3.0.1

Ruby2 (2003)

Powered by Rabbit 3.0.1

RFCs

Powered by Rabbit 3.0.1

I was too lazy to bookkeep

Powered by Rabbit 3.0.1

Ruby1.9 (2007)

Powered by Rabbit 3.0.1

YARV VM
M17N

Powered by Rabbit 3.0.1Ruby2.0 (2013)

Powered by Rabbit 3.0.1

Keyword Argument
Refinement
Module#prepend

Powered by Rabbit 3.0.1

Ruby3.0 (2020)

Powered by Rabbit 3.0.1

"Real" Keyword Argument
Pattern Matching
JIT
Heap Compaction

Powered by Rabbit 3.0.1

Ruby4.0 (2027/2030)?

Powered by Rabbit 3.0.1

Package System ?
Steering Committee ?

Powered by Rabbit 3.0.1

The FuturePowered by Rabbit 3.0.1

Lessons

Powered by Rabbit 3.0.1

Idea itself is not EnoughPowered by Rabbit 3.0.1

Simple is not always BestPowered by Rabbit 3.0.1

Bigger not always Better

Powered by Rabbit 3.0.1

Boring Pitfall

Powered by Rabbit 3.0.1

Motivation Matters

Powered by Rabbit 3.0.1

Second System Syndrome

Powered by Rabbit 3.0.1

We Need to Progress Step by Step

Powered by Rabbit 3.0.1

Survival

Powered by Rabbit 3.0.1

How to Survive

Powered by Rabbit 3.0.1

How to Keep Ruby Alive for Next 30 Years

Powered by Rabbit 3.0.1

Assumptions

Powered by Rabbit 3.0.1

Human Being Survive

Powered by Rabbit 3.0.1

Programming Survive

Powered by Rabbit 3.0.1

We Program in Languages

Powered by Rabbit 3.0.1

Upon Those Assumptions

Powered by Rabbit 3.0.1

We Need Community

Powered by Rabbit 3.0.1

Community needs new Blood

Powered by Rabbit 3.0.1

Attract Young Programmers

Powered by Rabbit 3.0.1

Job & Money

Powered by Rabbit 3.0.1

Keep Ruby Attractive for Companies

Powered by Rabbit 3.0.1

How Attractive?

Powered by Rabbit 3.0.1

Reliability
Productivity
Efficiency

Powered by Rabbit 3.0.1

To be Reliable

Powered by Rabbit 3.0.1

We need Community Assets

Powered by Rabbit 3.0.1

Tools, Gems, etc.

Powered by Rabbit 3.0.1

Textbooks, Tutorials, Schools, etc.

Powered by Rabbit 3.0.1

Use-cases, Blog Posts, Shared Experiences

Powered by Rabbit 3.0.1

To be Productive

Powered by Rabbit 3.0.1

Improve Ruby the Language

Powered by Rabbit 3.0.1

Improve Supporting Tools

Powered by Rabbit 3.0.1

Rubocop, RubyMine, Ruby-lsp,...

Powered by Rabbit 3.0.1

To be EfficientPowered by Rabbit 3.0.1

Improve Ruby implementation(s)Powered by Rabbit 3.0.1

Encourage Investment to Ruby

Powered by Rabbit 3.0.1

If Ruby is 10% Faster,Powered by Rabbit 3.0.1

It will Decrease Backend-cost by 10%

Powered by Rabbit 3.0.1

We Need more Investment

Powered by Rabbit 3.0.1

This is the Last Chance

Powered by Rabbit 3.0.1

Hype Cycle

Powered by Rabbit 3.0.1

Hype Cycle
Powered by Rabbit 3.0.1

Only Paranoid can Survive

Powered by Rabbit 3.0.1

Ruby is Wonderful

Powered by Rabbit 3.0.1

Come, Join Us

Powered by Rabbit 3.0.1

Create the Better FuturePowered by Rabbit 3.0.1

Otherwise,Powered by Rabbit 3.0.1

We will be forced to use...

Powered by Rabbit 3.0.1

Tipping Point

Powered by Rabbit 3.0.1

Only Paranoid can Survive

Powered by Rabbit 3.0.1

We will Keep Moving Forward

Powered by Rabbit 3.0.1

We will Lengthen Our Stride

Powered by Rabbit 3.0.1

We will Create Value

Powered by Rabbit 3.0.1

As a Community

Powered by Rabbit 3.0.1

Come, Join Us

Powered by Rabbit 3.0.1

Create the Better FuturePowered by Rabbit 3.0.1

That's the Power of Ruby

Powered by Rabbit 3.0.1

Thank you

Powered by Rabbit 3.0.1