RailsConf 2012: DHH Keynote

“Progress”

Over the past decade we’ve managed to keep a lot of people interested and active in the framework because we’ve been able to make almost constant progress.

Looking at some examples of past pain

  • Cobol
  • Java

Tell the Java programmers “Have You ever tried Shoes without Shoestrings” (Kanye sample)

We stay interested because “We make the kind of progress that makes people uneasy”

2002: REST
“I have to write routes now?”
Now we take it for granted that it’s just something that we do.

RUBY 1.9
This is the progress where we’re not even there yet
“What about all the software we have to rewrite? This is a hassle!”

BUNDLER
[chuckles and applause from audience]
When it was introduced by Yehuda and Carl, a lot of people were not happy
Removed the pain of app setup for DHH

RAILS 3
Upgrading to Rails 3 was hard.
It’s not just upgrading the gem.
“Why do we need Rails 3? Why do we need to change all these things?!”

It can get worse:
ASSET PIPELINE
One of the things that made DHH most interested in working on Rails in the last two years.
A huge step forward in managing assets
“Why do we need the AP? I already have my system of five gems hobbled together?
“What’s wrong with /public?”

When you talk about progress in the abstract, it’s very easy to say “YES”
When you talk about progress that affects your world, it’s harder to say yes.

Finally…
COFFEESCRIPT
Lots of people used to writing JavaScript in a certain way
“I am used to my semicolons!!” [chuckles]

It all boils down to:
“The old one was better!”

e.g. frustration with the trackpad scrolling direction in OS X

Not all forward movement is progress
“Plenty of things you can bolt on that just add drag” [image of cheesy spoiler on a car]

How are we measuring progress? If you only look at the stopwatch, it’s not everything, but it can be a good bellwether of what’s happening

Example:

Person.find(:conditions => {:name => "David"})

vs

Person.where(name:"David")

Ruby 1.9 plus improvements to ActiveRecord. Much better.

Skepticism is ok, but when you go from curious to suspicious about new things, this is where bad things happen.
Becomes a negative approach to technology
It’s not just black and white, but a graduate change

Look at when people started using rails and when they switched from curious to suspicious as a broad base.
Which “vintage” of Rails are you?

Two theories:
“A conservative is a liberal who got mugged”
“Everybody likes the cutting edge until they cut themselves”

Adopting a new piece of technology and lost data, introduced a bug, or upgrading took longer than expected.
Went from being all happy about new stuff to “oh fuck. new stuff.”

Devs get chewed out “If it ain’t broke don’t fix it”
Boss/client/mental berates you: “THIS CAN NEVER HAPPEN AGAIN”
Overreaction [Image of the TSA crotch grab]

The other reason people have issues with progress: “GETTING OLD”
Not old in regards to age.
This is about the mental pattern that happens in your brain that turns your brain old in the patterns of thinking
A few people hang on to their early ideals, but there aren’t many old hippies
You turn into “Mr. Mature” who has something to lose.
“I spent all my time learning programming languages. NOW I know. Don’t tell me how things are…”

That’s the flip side of nice things.
“Don’t rock the boat too much, it’s going just in the right direction”
IN real life the hippie to mr. mature takes about 30 years.
In technology, the half life is three to five years.
Once you go to suspicious, hard to go back to curious

“Loss aversion is the pillar of conservatism”
Not political terms, but mental frames of mind.

[Video of Bill Clinton saying he experimented with pot and didn’t like it]
“Now you’re Mr. Mature, so it doesn’t suit you to admit that fact”‘

“Won’t somebody please think of the children?”
Children => “Newbies”
We have the same tendency in Technology
“All this progress is just overwhelming. Their little brains are going to go POOF!”

That’s how you come up with products like “Easy bake”
Something where the kids won’t burn themselves
They can experiment and won’t hurt themselves
“Have you ever eaten a cake that came out of an Easy Bake? They’re fucking disgusting”

DHH’s wife wanted one and her mom said no
Because they had a real oven. It’s dangerous, etc.
She actually learned a valuable skill and by the time she was 11, she was actually baking.

We need to do the same thing for actual newbies.
Progress can be hard and frustrating.
“That’s OK. It’s supposed to be. You’re learning valuable life skills that you can take on and actually use for something.”

“If we dumb things down for the newbies, we just teach them to make crap cakes.”
No one is interested in that.

“The key thing you need to learn and understand in education is that there is no speed limit.”
Derek Sievers “There is no speed limit” post from a few years back.
If people set a high expectation, it’s a natural expectation to live up to that.
If you set a low expectation, people will only rise to that level.

DHH built rails not because he thought he could, but because nobody said “you can’t”
He was moving at the pace that Derek describes. It’s an intoxicating pace that is the peak of what you can do.
Too many people put others down to a low level, which slows down the learning process

Return to being a pioneer.
You don’t need to burn the nice stuff, but refocus and reframe your mind and approach.

“Great products are made by people who use them.”
“I only care about tools that I actually USE”
Think about that when the discussion arises to dumb things down to get people onto Rails (newbies)
In direct conflict to the actual users
Only way to get newbie tools done is to pay people to do them [sounds like commentary on the recent rails drama -ed]
The path forward is NOT to get two tracks and to dumb things down for newbies

Progress is painful
It’s hard to learn new stuff when you don’t know it.
It’s harder to learn new stuff when you have to throw out understood conditions
But it hurts less if you accept that progress and change is the constant

RAILS 4
Rails 4 will change and break things.

Invocation:
“I will not fear change, I will not fight progress”
Stay Young
Stay Curious
Stay Hippie, my friends. [dos equis guy]