What has Ruby madePossible?
HerokuRuby Association

Yukihiro "Matz" MatsumotoЮКИХИРО МАЦУМОТО@yukihiro_matz
Powered by Rabbit 2.1.9

Karoshi
過労死

Death by working too hard

Powered by Rabbit 2.1.9

Why did they work too hard?

Powered by Rabbit 2.1.9

Hard to understandPowered by Rabbit 2.1.9

We work to live, but some may
live to work

Powered by Rabbit 2.1.9

We often work too hard

Powered by Rabbit 2.1.9

Psychological tendency

Powered by Rabbit 2.1.9

Alpha syndrome

Powered by Rabbit 2.1.9

Computers are great!

Powered by Rabbit 2.1.9

Never be tired

Powered by Rabbit 2.1.9

Never be boredPowered by Rabbit 2.1.9

They are fast

Powered by Rabbit 2.1.9

We can be more productive
when we work with computers

Powered by Rabbit 2.1.9

ButPowered by Rabbit 2.1.9

Beware of ALPHA syndrome

Powered by Rabbit 2.1.9

ALPHA is a leader of a group

Powered by Rabbit 2.1.9

Order or hierarchy

Powered by Rabbit 2.1.9

Imagine your pet dog

Powered by Rabbit 2.1.9

Powered by Rabbit 2.1.9

You pet it

Powered by Rabbit 2.1.9

You work for it

Powered by Rabbit 2.1.9

You do everything you can for it

Powered by Rabbit 2.1.9

It assumes it is ALPHA

Powered by Rabbit 2.1.9

It starts to behave bad

Powered by Rabbit 2.1.9

ALPHA syndrome

Powered by Rabbit 2.1.9

Computers

Powered by Rabbit 2.1.9

They are efficientPowered by Rabbit 2.1.9

They are NOT perfect

Powered by Rabbit 2.1.9

They are far from perfect

Powered by Rabbit 2.1.9

You have to work for themPowered by Rabbit 2.1.9

You start to pay effort for themPowered by Rabbit 2.1.9

You start to think computers are
ALPHA

Powered by Rabbit 2.1.9

You gradually become their slave

Powered by Rabbit 2.1.9

reverse ALPHA syndrome

Powered by Rabbit 2.1.9

Remember you are the master

Powered by Rabbit 2.1.9

Don't work too hard

Powered by Rabbit 2.1.9

Be lazy

Powered by Rabbit 2.1.9

Let computers work for you

Powered by Rabbit 2.1.9

The principles behind Ruby

Powered by Rabbit 2.1.9

Productivity
Development efficiency
Programmer happiness
Focusing on humans

Powered by Rabbit 2.1.9

Ruby is an Object-orientedlanguage

Powered by Rabbit 2.1.9

Dynamic typing

Powered by Rabbit 2.1.9

Duck typing

Powered by Rabbit 2.1.9

Duck typing
Powered by Rabbit 2.1.9

Duck typing
Powered by Rabbit 2.1.9

If it walks like a duck

Powered by Rabbit 2.1.9

Quack like a duck

Powered by Rabbit 2.1.9

It is a duck

Powered by Rabbit 2.1.9

We assume it is a duck

Powered by Rabbit 2.1.9

Powered by Rabbit 2.1.9

Duck typing
Powered by Rabbit 2.1.9

Essence of OOP

Powered by Rabbit 2.1.9

Do not classify

Powered by Rabbit 2.1.9

Animal・Mammal・Human

Powered by Rabbit 2.1.9

Do not check type

Powered by Rabbit 2.1.9

Just ask

Powered by Rabbit 2.1.9

We don't care about inheritancePowered by Rabbit 2.1.9

We don't care about structure

Powered by Rabbit 2.1.9

We just care how it behave

Powered by Rabbit 2.1.9

So we can ignore inside detailPowered by Rabbit 2.1.9

So we ask computers to dispatch

Powered by Rabbit 2.1.9

So we don't have to work

Powered by Rabbit 2.1.9

Let computers work for you

Powered by Rabbit 2.1.9

Don't work too hard

Powered by Rabbit 2.1.9

Be lazy

Powered by Rabbit 2.1.9

DRYPowered by Rabbit 2.1.9

Don't Repeat Yourself

Powered by Rabbit 2.1.9

Avoid duplicatesPowered by Rabbit 2.1.9

Avoid redundancy

Powered by Rabbit 2.1.9

Avoid copy-and-paste

Powered by Rabbit 2.1.9

Because it's BAD

Powered by Rabbit 2.1.9

You spread bugs all overPowered by Rabbit 2.1.9

Besides thatPowered by Rabbit 2.1.9

We are lazy

Powered by Rabbit 2.1.9

We are too lazy to maintain
duplicatesPowered by Rabbit 2.1.9

In summary,Powered by Rabbit 2.1.9

Duck typing
DRY

Powered by Rabbit 2.1.9

Spirit of laziness

Powered by Rabbit 2.1.9

3 virtues of a GREAT programmer

Powered by Rabbit 2.1.9

Laziness
Impatience
HubrisPowered by Rabbit 2.1.9

Laziness

Powered by Rabbit 2.1.9

The quality that makes you go to great
effort to reduce overall energy
expenditure. It makes you write laborsaving programs that other people willfind useful and document what you
wrote so you don't have to answer somany questions about it.

Powered by Rabbit 2.1.9

Impatience

Powered by Rabbit 2.1.9

The anger you feel when the computeris being lazy. This makes you write
programs that don't just react to yourneeds, but actually anticipate them. Or
at least pretend to.

Powered by Rabbit 2.1.9

HubrisPowered by Rabbit 2.1.9

The quality that makes you write (andmaintain) programs that other people
won't want to say bad things about.

Powered by Rabbit 2.1.9

"Laziness is the most importantvirtue"

Powered by Rabbit 2.1.9

We should not work too hard

Powered by Rabbit 2.1.9

We have to be lazy

Powered by Rabbit 2.1.9

We have to enjoy what we doPowered by Rabbit 2.1.9

Enjoy programming

Powered by Rabbit 2.1.9

Remember Ruby principles

Powered by Rabbit 2.1.9

Productivity
Development efficiency
Programmer happiness
Focusing on humans

Powered by Rabbit 2.1.9

We need more power

Powered by Rabbit 2.1.9

To make us happy programmers

Powered by Rabbit 2.1.9

To avoid hard working

Powered by Rabbit 2.1.9

To avoid ALPHA syndrome

Powered by Rabbit 2.1.9

Ruby/Rails give power

Powered by Rabbit 2.1.9

That's our ultimate goal

Powered by Rabbit 2.1.9

Empowering programmers

Powered by Rabbit 2.1.9

I trust you

Powered by Rabbit 2.1.9

Great power comes with great
responsibility

Powered by Rabbit 2.1.9

I trust you will do great works if
you have power

Powered by Rabbit 2.1.9

More power to programmers

Powered by Rabbit 2.1.9

Power from computers

Powered by Rabbit 2.1.9

What has Ruby made possible?

Powered by Rabbit 2.1.9

Laziness

Powered by Rabbit 2.1.9

Productivity

Powered by Rabbit 2.1.9

Development happiness

Powered by Rabbit 2.1.9

Internatinalization

Powered by Rabbit 2.1.9

2001

Powered by Rabbit 2.1.9

First RubyConf

Powered by Rabbit 2.1.9

38 attendees

Powered by Rabbit 2.1.9

2006Powered by Rabbit 2.1.9

First RubyKaigi

Powered by Rabbit 2.1.9

RubyKaigi

Powered by Rabbit 2.1.9

Internatinalization

Powered by Rabbit 2.1.9

Ruby leads internatinalization ofJapanese engineers

Powered by Rabbit 2.1.9

I'm proud

Powered by Rabbit 2.1.9

Happy Hacking!

Powered by Rabbit 2.1.9