Keynote Interview with David Heinemeier Hansson
Speaker: DHH, Evan Phoenix
Source: RailsConf 2020
Summary: David and Evan talk about Rails, work, and the world.
Notes
HEY was supposed to launch the week before RailsConf 2020
Technology was not wrapped up for this talk, due to Covid
Launch was postponed
HEY on mobile:
Majestic Monolith at Basecamp:
It’s is for everything, not just web
10% native/90% Rails currently
Hey took similar approach, but they began with native mobile. It’s full native and uses web views (I think?) to pull in Rails views.
Ruby is great because you can know a little JavaScript and then jump to Ruby, understand it, and own the full stack.
One generalist at Basecamp can ship an entire feature to everyone on every platform at once.
37signals/Basecamp has been around 20 years. Looking back:
Things don’t change that rapidly.
Developer ergonomics in the early days 2004-2008–he’s holding onto that.
Even as CTO of 58-person company, DHH needs to program every week at least.
If being a Software Craftsman is toxic, sign me up for that
If you don’t know how to make it better, you’ll probably just mess it up by changing it.
Looking back over 20 years, the big change was the iPhone.
That change has almost petered out. High end phones are faster than many desktops now.
Silicon Valley money is partially to blame for development bloat
“That will be 15 people and 9 months plus tax”
He thinks the pendulum will swing back.
From Microservices back to Monoliths:
Bernie Sanders: the pendulum swung back to him. He was saying the same shit with more hair in the 70s.
The pendulum is swinging back towards us.
The amnesia is partially caused by so many new people entering the industry. They haven’t experienced it any other way.
Nothing stays the hot shit forever.
Your own intrinsic motivation is what matters.
Technology is not that fast. Over 60 years there are blips where shit happened.
Are there other technologies that you look at that seem interesting?
When he doesn’t know what to pick, he tries everything.
Ruby is still exciting
Especially because it’s dynamically typed
Modern JavaScript/ES6+ is probably DHH’s closest thing to a good time outside of Ruby
He’s an OO programmer, even though functional has influenced his programming style
Matz: if you’re listening, do not add types to Ruby. Let people play with that on their own.
We can have Sharp Knives (Programming) and safer knives in the same drawer.
Finding another language is not high on DHH’s list of hobbies.
How has DHH’s role w/ Rails evolved over the time? Who does he look for on the core team?
DHH writes the minority of Rails today. His role is now “biggest fan,” or “biggest user.”
He doesn’t care about how it’s implemented as much anymore.
It’s great when people you trust can take over caring about complicated things so you can put them out of mind to focus on other things.
Evan: DHH is the Rails “super fan”
DHH on his “executive privilege”
Sometimes he’ll open a PR to request a feature
Putting really shitty code out there knowing a bunch of people will make it better
His drafts are super rough now
What about choices of defaults?
We built the transpiler approach before it was cool.
Now it is
We don’t need to do it anymore.
Why not pipe all assets (CSS, images) through Webpack and get rid of asset pipeline entirely?
It’s not better!
It doesn’t need to be pure
Purity means nothing to DHH
Dogmatic purity is bad
JavaScript+Ruby is not bad
SQL+ActiveRecord is not bad
Remember
ActiveResource
?In those scars: Microservices are bad.
A method call is not the same thing as a service invocation.
No one writes SOAP apps anymore…
DHH believes the same will be true for Microservices
Syntax formatters. Do you like them?
DHH is grinning.
No quick thoughts.
“If there’s one thing I swear at the most in Ruby, it’s RuboCop”
Part of the beauty of Ruby is the incredible subtlety of syntax.
Ruby is poetry.
“Go is a newspeak kind of language”
Ruby would suck if there was something that said there’s only one way to say
if something
DHH hopes a formatted doesn’t get included in Ruby
Ruby has dialects. It’s a cultural treasure (Seattle Style)
You can write your own
ActiveSupport is the Rails dialect of Ruby
DHH tells himself every day: if you don’t want to go to work, you don’t have to.
Things he’s working on:
A unified theory of Basecamp-style apps is forthcoming
END