I am David Heinemeier Hansson. Ask me anything.

DHH is the creator of Ruby on Rails, founder & CTO at Basecamp (formerly 37signals), best-selling author, Le Mans class-winning racing driver, public speaker, hobbyist photographer, and family man.

Ask David Heinemeier Hansson about:

  • Ruby on Rails
  • Setting up business
  • Basecamp
  • Public Speaking
  • Remote Work
  • Leadership
  • Anything else you may want to know
Ask a Question

105 discussions

Why are enterprise products and companies leaned towards ASP .NET and JAVA platforms so much? Why they don't opt for PHP, RoR, Python, Node.js etc.?

Do you see that changing anytime soon? I know that as of know people say that it is because of large ecosystems and because they are statically typed languages which supposedly helps in large codebases.

Enterprise pursuits are often about things much different than technical excellence. They're about things like cover-your-ass, long-term support contracts, and solutions sold not directly to end users but to managers far removed from it.

In such an environment, it's the old adage that "nobody got fired for buying IBM". The technical merits are far less important than the appearance of making a good choice. And what better appearance than having Oracle or Microsoft's stamp on the box.

This worldview then relates perfectly with the notion that programmers must be protected from themselves. And through statically typed analysis and restrictions, we can ensure that it's less likely that people hang themselves with the ropes of freedom.

Reply to this…

Hashnode is a friendly and inclusive dev community.
Come jump on the bandwagon!

  • 💬 Ask programming questions without being judged

  • 🧠 Stay in the loop and grow your knowledge

  • 🍕 More than 500K developers share programming wisdom here

  • ❤️ Support the growing dev community!

Create my profile

What do you think of the Node.js ecosystem? Do you try new languages/technologies on a regular basis?

I think the energy unleashed by material steps forward in the JavaScript language is awesome. I've really warmed up to JavaScript since ES6. It's so much less painful of a language than it used to be.

But I don't agree with a lot of the stuff that's going on in the ecosystem. Things like these massive transitive dependency trees to do the simplest things just seem nuts to me. So does the infatuation with ludicrously complicated architectural patterns like Redux as well.

I certainly wouldn't want to write all of Basecamp from scratch in Node, but I am very happy to see that all the energy is helping to level up JavaScript as a whole. Because we can't avoid working with JavaScript to some extent if we want to work with the web.

Reply to this…

What is your take on single page apps?

I think they're vastly overused, but that's to be expected. It's still novel that you CAN create an entire web application exclusively through presentation generated dynamically through JavaScript. I happen to think that's generally a huge waste of time and effort for a lot of domains that don't need that level of fidelity, but so it goes.

So I personally try to restrict our use of full-stack/client-side MVC type development to a few areas where it really matters. For example, we've written an entire WYSIWYG editor from scratch using that, and then we embed that concept on individual pages.

But for the bulk of Basecamp, we're far more productive by using Turbolinks to provide the feel and speed of a SPA, without actually going through the horror of, say, a full React+Redux architecture.

Reply to this…

Hi David,

This is a business question for you.

Some people whose businesses I like built platforms on which others can do work. Here are three examples:

  1. Matt built WordPress: A platform on which people can build a website or blog.
  2. You built Rails: A platform on which people can build web applications.
  3. Derek built CD Baby: A “platform” on which people could sell their CDs.

Do you think intending to create a platform is a wise idea on which to start a business? Or, is creating a platform something you stumble into as a side effect of making something else (like Valve creating Steam, you creating Rails to build Basecamp)?

I noticed Evernote tried, but failed to intentionally shift their product to be a big platform for developers. Maybe this is because the move came from Evernote, instead of customers requesting it.

Thanks. I appreciate your writing.

I think chasing platforms is completely overrated. I'm sick of fucking platforms. How about people just make something directly useful rather than just extract rents from others making things useful on top of the thing you're doing.

Of the three examples you mention, Rails is explicitly not a business. I don't want it to be a business. I don't want to be the toll keeper taking my cut on the way out. No thank you.

Reply to this…

How do you manage the time between various activities which are not related to each other?

( I get this one a lot to myself, and not able to answer yet)

By having reasonable boundaries, such as a baseline expectation that I won't spend more than 40 hours per week working. Then I have time to pursue other hobbies and interests without killing myself or my 8-9 hours of sleep every night.

Things also come and go in phases. Certain parts of the year are heavier on racing and then lighter on open source contributions. And vice versa.

Don't try to do it all at 100% at once. Doesn't work.

Reply to this…

Load more responses