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.

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

      • 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

  • END