Keynote Interview with David Heinemeier Hansson

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

https://railsconf.com/2020/video/david-heinemeier-hansson-keynote-interview-with-david-heinemeier-hansson

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
          • 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.
      • 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
        • Ruby has dialects. It’s a cultural treasure (Seattle Style)
          • You can write your own
          • ActiveSupport is the Rails dialect of 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