A New Sense of Purpose for Rails
I'm on the way back from this year's RailsConf, still digesting all of the talks I saw and conversations I had.
If I had one takeaway from this year, it's this: The way we develop web apps is changing. If Rails can embrace that, and make itself central to this shift, it can cement its relevance for another decade. I think Rails 5 can do that.
I worked at Apple from 2005 to 2011, first in the retail stores and then as an engineer on MobileMe and iCloud. I was very lucky to have been at Apple at that time, because I witnessed first-hand an underdog transform into a technology juggernaut.
The Mac was an amazingly innovative product, but Apple had let it stagnate. Towards the ends of the 90s, the tech press was pronouncing the end of the Mac. It was a time when portable electronics, like PDAs, digital cameras, digital camcorders, and more were becoming affordable, and Windows was ubiquitous. It was easy to imagine a world where Windows dominated business, and small, portable electronics dominated everywhere else.
Steve Jobs saw this coming, though, and the strategy Apple adopted cemented their place in the technology ecosystem for the next decade and beyond. They realized the Mac could be a digital hub: the central, easy-to-use experience that connected all of these amazing new devices.
I highly recommend this article by Pete Mortensen from 2010, posted on the eve of the iPad announcement, as a reminder of how rapidly Apple grew once it bet big on being the digital hub:
If you’ve never heard this term [digital hub] before, or its meaning has faded, take a look back at the video at the top of this piece. It’s the most important moment in the modern era of Apple. It’s not the day the iPod was announced, it’s not when the iPhone descended from the heavens … Instead, it’s the day that Steve Jobs defined what computing would mean in the next decade.
Up until this point, Steve’s focus had been on re-energizing the existing Apple fanbase with the iMac and other nicely designed products. But things didn’t take off until the company turned its gaze toward the ecosystem.
Today, Rails is a hugely, hugely popular framework. If it stays on its current course, it will remain popular for a very long time. It's obvious you can use it to build experiences that users love, with Basecamp as just one example.
We can either resist this change, or we can make Rails the most productive way to build a backend service for these disparate client platforms. If we do this, I believe Rails can cement its popularity and relevance for another decade.
On the server, however, we have total control of what tools we use. Indeed, this phenomenon is what allowed the web to win on the desktop despite the fact that browsers were so limited in their capabilities for so long.
That's why RailsConf 2015 was so exciting. The buzz among the community was about how to extend Rails to make all of this new stuff easy.
Most importantly, DHH's keynote announced two major new features for Rails 5: it will include built-in support for JSON APIs, via
rails new --api, and Action Cable, which makes real-time streaming to the browser as easy as the request-response programming model.
Projects like Turbolinks are a superb way to get more performance out of server-rendered web applications. I definitely don't think anyone who has made a significant investment in server-rendered web applications needs to tear everything down and rewrite.
But if you're a "prepper" (to borrow a term from DHH's
That's why I'm very happy to see Rails 5 embracing rather than fighting this shift. I love Rails, so much so that we bet our company on it by building Skylight. And I'm happy to see Rails continue to be a great framework for apps like Basecamp, GitHub, and Shopify that render their HTML on the server.
But, as DHH says, Rails is a big tent. A large number of products are built with Rails on the backend and Ember on the frontend, including Skylight, Discourse, Square, Heroku, Travis, Zendesk, Intercom, Twitch, HuBoard, Acorns, Ride and many more.
We've tried to bring the best lessons from Rails to Ember, particularly around convention over configuration, and Rails 5 is a perfect opportunity to make using these two tools together a first-class experience.
After this RailsConf, we're more confident than ever in our big bet on Rails. Here's to another decade of a vibrant community, and for building a big tent that houses every web developer, however they prefer to build their apps.