Retail and Customer Experience : News & Best Practices

[Dreaming Bigger with Rails] David Heinemeier Hansson answers our questions about Hotwire

David Heinemeier Hansson​, the creator of Rails, agreed to talk with WizVille and the ​French Ruby on Rails community about ​Hotwire​ as an alternative approach to building modern web applications.
 
During an exclusive fireside chat with our co-founders, he answered your questions about the potential and upcoming improvements of this new technology. 
 
Here are some of the top highlights and DHH punchlines from this chat about Ruby on Rails and Hotwire :


What kind of problem did you want to solve with Hotwire?

It has been a problem we've been working on for about 15 years, which has been "how do we make web applications feel great and fast, without making the development experience feel like shit?". 

Hotwire is essentially : "Can we get the best of both worlds? Can we get the user experience that feels just as good, just as fast and fluid as the single page application and pair that with the best development experience for the web we can imagine?" That's the winning combination!

Hotwire user experience DHH


Why is Hotwire the future of modern web app building?

The interesting thing about Hotwire is, we've been using these techniques or similar techniques for a long time, but we never really shared them in a cohesive, complete fashion.

Hotwire is a combination of things that just fit together really nicely to the point that it can be for many applications the complete answer. You don't need anything else! You can take Hotwire and you can build a wonderful application that's on par with the likes of Basecamp or Github. You don't have to mix anything else in there and I think that's a major step forward.

Hotwire for web app building


Will it help developers save time?

F**k yeah! I'm going to save you time, as in "you can measure this on the clock", but also hopefully dramatically increase your satisfaction. It's hard to measure the satisfaction of having a job well done. The satisfaction I get out of writing Ruby all day and then thinking "Christ, I get paid to do this", is just amazing.

Hotwire as a time saver for developers


What kind of apps was Hotwire designed for?

I think the best way of looking at is is in the negative space, as in where would Hotwire not be a good fit? I think that Sigma had been one example of such an app. Things that we at Basecamp call "Super HI-FI UI" , as in it feels more like a desktop app like Photoshop than it does as Basecamp, as Github, as Shopify...If you're going to have really high interaction loops on the client-side, Hotwire's not going to solve that.

Where would hotwire not be a good fit


When is a Hi-Fi experience necessary?

Part of the ethos of Hotwire is..."just because you can, doesn't mean you should...". You are hurting the web when you are bathing it in unnecessary JavaScript. It's a progressive enhancement, it's a ladder...Most pages do not need all of that.A bunch of applications would be totally fine if the only thing you did was Turbo Drive. They'd already feel fast enough, they'd already be great

What you want to do is identify the 5 or 10% of your app where you really want the Hi-Fi experience, there you pay 100%, you build it and it takes more time. For the other 90 to 95%, you get it on sale.

Hi fi experiences


When you will release Strada?

I wish I had communicated better on this. Strada is the last sprinkle on top. It makes the communication between HTML and the native app a little more conventionalized, but there's nothing there that is essential.

The meat of developing  native apps with Hotwire is the native adaptors that we've released. They have everything you need to get off the ground. And by the time you need that last sprinkle, we will probably have released it and it will just be a level-up, you can just upgrade from there.

DHH on Strada and Hotwire


What could hold back wide adoption of Hotwire?

No matter how great the thing you make is, the timing is a huge part of it... But the bigger picture here is that I don't care. I'm making this for people who want this kind of experience.

You can have the best idea in the world, if there is not room in people's brains for that idea to be adopted, it doesn't matter, it just bounces right off. You need an open slot and that open slot requires timing and it requires other factors you have no control over.

DHH on timing when releasing hotwire


Who should join the Hotwire community?

If you have a particular affinity for a back-end language that is not JavaScript, you need to be part of the resistance. You need to build up the alternative to "let's write the entire application in JavaScript."

And this is a common cause: if you like PHP, this is something that's right up your alleyway, if you like Clojure, if you like Go, if you like Python, if you like all these other languages, we're sharing a mission here.

DHH on joining the javascript resistence


How easy will it be to hire Hotwire developers?

The great thing about Hotwire is that it's not a career.  Any developer can learn Hotwire in a weekend, it's not that complicated.

This is a huge difference with other technologies and much less complicated than with Ruby on Rails...If I'm hiring a Ruby on Rails developer, I'm going to hire someone who already knows Ruby, who already knows Rails. With Hotwire that's not at all required.

The fundamentals are so close to the base building blocks that everyone has to learn :  you have to know HTML to do anything anyway, you have to have some idea of basic JavaScript, and you can use those two things to build Hotwire. So it's almost no even a concern. You can hire a developer of any kind who has basic web development abilities, they'll be able to learn Hotwire in, if not a weekend, then a week at the very most.

DHH on hiring Hotwire developers


What about visual components?

Tailwind! This is how I would do it. I constantly think "What would I do if I had to do everything myself?" If I had to start tomorrow and I had to do it myself and I don't have a class A design team behind me, I would pick up Tailwind. 

Also, the thing is with the Hotwire platform, it doesn't all have to be Hotwire...you can dump other stuff in there. If you find a JavaScript component you really like that's fine, you can dump it in there, which isn't true the other way around.

So if the question is, "How would I start tomorrow?", I would start with Hotwire, I would start with Tailwind and I would start with Ruby on Rails because between those things, I'd have everything I needed.

DHH on technologies to start


Will Hotwire and Rails remain two independent projects?

Yes, Hotwire is its own thing and had its own identity, it's going to live as its own thing.  In large part because that's just how the technology works, but also because we want to attract people from other communities to make Hotwire stronger.

But...Rails 7 is going to default to Hotwire, which is also going to be a huge boost to Hotwire, in much the same what that Turbo Links has actually been used in a ton of Rails applications, because it was part of the default pack.
 

Rails 7 will default to Hotwire


Who's the core team behind Hotwire? And are you ever going to open it up?

Right now it's just Basecamp people who have commit, but there's already a ton of pull requests that have been made from outside the community.

I definitely want to open it up...but In the early stages of any new ecosystem, you really need to establish the conceptual model in such a way that we don't all end up going in 500 different directions.

This is why people like Ruby on Rails, because it has a strong direction. Hotwire also need a strong direction. So I don't wanna do it too soon.

Let's get a nice solid track and then we can get a bunch more developers to drive through it and get them added to a core team. We've already started that a little bit, there's a little informal group called Hotwire Friends with some people outside of Basecamp we've been chatting with. I want to formalize that, I think within a year, I'm quite sure that will have happened.

DHH on Hotwire and Open source


How would you say Hotwire is doing so far?

We've gone off to a much stronger start than Ruby on Rails. There's much more attention and focus, incredible activity already and most importantly not just from the Ruby on Rails community but also from the other communities.

Hotwire start versus Rails

Watch the full interview here