Joshua Wood Web Developer

Keynote Interview with David Heinemeier Hansson

Speaker: DHH, Evan Phoenix

Source: RailsConf 2020

Summary: David and Evan talk about Rails, work, and the world.


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

    • Many native views on iOS are rendered by Rails

    • 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.

  • 2 teams of 3 people (6 total) build and maintain iOS and Android apps.

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.

  • DHH’s early Rails code could show you how we’re building Rails apps today.

  • 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.

  • Shopify has different concerns from Basecamp, and may need types (much larger team size).

  • 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” :trollface:

    • 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?

  • Rails Asset Pipeline

    • 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

      • Remember ActiveResource?

        • In those scars: Microservices are bad.

          • A method call is not the same thing as a service invocation.

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.

    • This is why Python was not for DHH: “one way to do everything” is written into the language.

    • 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

    • Concession: after 15 years of Ruby, DHH realized that choosing between the subtlety of single vs. double quotes is more trouble than it’s worth.

DHH tells himself every day: if you don’t want to go to work, you don’t have to.

Things he’s working on:

  • HEY

    • It’s where abstractions for new things in Rails are currently coming from

    • Hopefully launching in December 2020

  • A unified theory of Basecamp-style apps is forthcoming