Keynote Interview with David Heinemeier Hansson
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.
- Majestic Monolith at Basecamp:
- 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.
- Now it is
- 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
- A method call is not the same thing as a service invocation.
- In those scars: Microservices are bad.
- We built the transpiler approach before it was cool.
- Rails Asset Pipeline
- 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
- Ruby has dialects. It’s a cultural treasure (Seattle Style)
- 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 is grinning.
- 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
- HEY
- END
0 likes and retweets