{"type_of":"article","id":5,"title":"David Heinemeier Hansson on the Future of Rails","description":"\n\nThe Ruby on Rails framework has had an incredible impact since its creation a d...","readable_publish_date":"Jan 5 '16","slug":"dhh-on-the-future-of-rails","path":"/ben/dhh-on-the-future-of-rails","url":"https://dev.to/ben/dhh-on-the-future-of-rails","comments_count":2,"public_reactions_count":26,"collection_id":null,"published_timestamp":"2016-01-05T15:41:22Z","language":null,"subforem_id":null,"positive_reactions_count":26,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/http%3A%2F%2Fi.imgur.com%2FQb20fNn.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/http%3A%2F%2Fi.imgur.com%2FQb20fNn.jpg","canonical_url":"https://dev.to/ben/dhh-on-the-future-of-rails","created_at":"2016-01-04T17:55:09Z","edited_at":null,"crossposted_at":null,"published_at":"2016-01-05T15:41:22Z","last_comment_at":"2025-06-13T19:27:04Z","reading_time_minutes":5,"tag_list":"ruby, rails","tags":["ruby","rails"],"body_html":"\u003cp\u003eThe Ruby on Rails framework has had an incredible impact since its creation a decade ago, becoming the choice for some of today's mightiest tech companies. Patterns and concepts popularized by the framework have also had an indelible effect on the application architecture discussion. Rails is an open-source project which depends on innovation and good software design from its core team in order to maintain its direction and status. New paradigms are constantly emerging and Rails has done well to evolve and remain the go-to for many developers. \u003c/p\u003e\n\n\u003cp\u003eRails is an open-source project which depends on innovation and good software design from its core team in order to maintain its direction and status. So much of Rails' direction depends on the views of its opinionated creator and Basecamp CTO \u003ca href=\"https://twitter.com/dhh\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eDavid Heinemeier Hansson\u003c/a\u003e. I contacted David in order to glean some insight into the direction of Rails. David shared his vision of the future with Practical Developer. \u003c/p\u003e\n\n\u003ch2\u003eA lot has happened since Rails 4.0 was released in summer of 2013, particularly in the Node community. Where does Rails fit in now compared to the past? \u003c/h2\u003e\n\n\u003cp\u003eRuby on Rails has its eyes on the same prize its always had: Be the full-stack framework that makes building applications like Basecamp, Github, Shopify, Kickstarter, Airbnb, Zendesk and others possible and enjoyable for small teams. Programming never stands still, of course. We've seen Node, Elixir, Go, Rust, and all sorts of other languages and frameworks come, and that's wonderful. The more the merrier! The web is an amazing platform exactly because it puts all these approaches on a level playing field when it comes to generating HTML, JavaScript, CSS. On the web nobody knows whether your web server is running Ruby or Go or Node. For me, the projects I make, and the examples I listed above, though, I have yet to see anything that really gives Rails a serious run for its money.\u003c/p\u003e\n\n\u003ch2\u003eTurbolinks and API mode make for two very different approaches to developing the view. Are you and your team at Basecamp planning to make use of both of these design patterns? How has your personal position on client-side rendered apps changed over the last few years?\u003c/h2\u003e\n\n\u003cp\u003e\u003ca href=\"https://github.com/rails/turbolinks\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eTurbolinks\u003c/a\u003e has really been picking up steam. The early knee-jerk reaction has subsided and lots of people are giving it a second look and really liking what they see. We have a ground-up rewrite in Turbolinks 5 that takes this even further by focusing on integration with native iOS and Android wrappers. It's a big leap forward and its the technology that's enabled us to ship Basecamp 3 with amazing native clients without building huge native teams. I'm really excited to share all this progress and enable more teams to go native where it counts (mainly navigation and some peak UI fidelity areas) and then rely on their Rails app as the integrated system. The beautiful monolith.\u003cbr\u003e \u003cbr\u003eAt the same time, API mode broadens the appeal of Rails to everyone who's rocking the client-side MVC approach as well as 100% native mobile apps. There's no reason that we shouldn't be collaborating on improving Active Record, Action Pack, Action Mailer, Active Job, Action Cable, and all the other frameworks that Rails provides which aren't tied to HTML-view generation. The vast majority of Rails is as relevant to API-only apps as it is to full-stack apps. So making the size of our tent explicit is exciting.\u003c/p\u003e\n\n\u003ch2\u003eCould you sum up what you think \"The Rails Way\" represents in 2016?\u003c/h2\u003e\n\n\u003cp\u003eI'm actually working on a new mini-book called \u003cem\u003eThe Rails Doctrine\u003c/em\u003e at the moment that goes over all this in deep detail. But the short story is that the Rails mission is to equip small teams to tackle big projects. We're not here to make things slightly more efficient for the 500-person company, that's just a side effect. The allegiance for Rails is to make it possible for one, two, or a few programmers to create amazing apps that span web, email, mobile, native, API, and all the other platforms we need to cover in 2016. Delivering for the web is getting more complicated every day. There are a thousand vendors and peddlers of complexity who benefit when things get hard and compartmentalized. Rails is here to serve as a counter to that. To retain the beauty and simplicity of building for the web without needing an army of experts.\u003c/p\u003e\n\n\u003ch2\u003eHow do you think your \"Reconsider\" article affected the general perception of Rails?\u003c/h2\u003e\n\n\u003cp\u003eRails has been counter cultural from day one. Many of the basic tenets, from Convention over Configuration to The menu is Omakase remain deeply controversial. Rails stands for something, which means it's bound to alienate some people who are offended by that. \u003ca href=\"https://signalvnoise.com/posts/3972-reconsider\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRECONSIDER\u003c/a\u003e, the blog post I wrote lambasting the San Franciscan economic model, Venture Capital, and wet dreams of \u003cem\u003etotal market domination\u003c/em\u003e is just a natural continuation of believing in something. I doubt it's going to have much of an impact, really. As far as I can tell, much of the current crop of VC funded tech startups are already flocking to the latest tech buzz. For mostly better, and for scarcely worse, Rails is no longer the latest tech buzz. It's mainstream now, at least in terms of reach (despite the many tenets that continue to be counter cultural). I consider that a very good thing.\u003c/p\u003e\n\n\u003ch2\u003eWhich other programming trends are piquing your interest?\u003c/h2\u003e\n\n\u003cp\u003eThe rise of functional programming is wonderful. I've let my programming style inspire heavily by key concepts, without the need to throw out Ruby. Ruby is such a wonderful sponge for the best ideas in programming. It's explicitly not a single-paradigm language, just like Rails isn't a single-paradigm framework. We get to adopt and be inspired by the best ideas from functional programming without the need to give up the best ideas of procedural or objective oriented programming either. May we continue to be influenced in just such ways. The rich history of programming languages from decades past still has much to teach us.\u003c/p\u003e\n\n","body_markdown":"\u003cp\u003eThe Ruby on Rails framework has had an incredible impact since its creation a decade ago, becoming the choice for some of today's mightiest tech companies. Patterns and concepts popularized by the framework have also had an indelible effect on the application architecture discussion. Rails is an open-source project which depends on innovation and good software design from its core team in order to maintain its direction and status. New paradigms are constantly emerging\u0026nbsp;and Rails has done well to evolve and remain the go-to for many developers.\u0026nbsp;\u003c/p\u003e\r\n\u003cp\u003eRails is an open-source project which depends on innovation and good software design from its core team in order to maintain its direction and status. So much of Rails' direction depends on the views of its opinionated\u0026nbsp;creator\u0026nbsp;and\u0026nbsp;Basecamp CTO\u0026nbsp;\u003ca href=\"https://twitter.com/dhh\"\u003eDavid Heinemeier Hansson\u003c/a\u003e. I contacted David in order to glean some insight into the direction of Rails. David shared his vision of the future with Practical Developer.\u0026nbsp;\u003c/p\u003e\r\n\u003ch2\u003eA lot has happened since Rails 4.0 was released in summer of 2013, particularly in the Node community. Where does Rails fit in now compared to the past?\u0026nbsp;\u003c/h2\u003e\r\n\u003cp\u003eRuby on Rails has its eyes on the same prize its always had: Be the full-stack framework that makes building applications like Basecamp, Github, Shopify, Kickstarter, Airbnb, Zendesk and others possible and enjoyable for small teams. Programming never stands still, of course. We've seen Node, Elixir, Go, Rust, and all sorts of other languages and frameworks come, and that's wonderful. The more the merrier! The web is an amazing platform exactly because it puts all these approaches on a level playing field when it comes to generating HTML, JavaScript, CSS. On the web nobody knows whether your web server is running Ruby or Go or Node. For me, the projects I make, and the examples I listed above, though, I have yet to see anything that really gives Rails a serious run for its money.\u003c/p\u003e\r\n\u003ch2\u003eTurbolinks and API mode make for two very different approaches to developing the view. Are you and your team at Basecamp planning to make use of both of these design patterns? How has your personal position on client-side rendered apps changed over the last few years?\u003c/h2\u003e\r\n\u003cp\u003e\u003ca href=\"https://github.com/rails/turbolinks\" target=\"_blank\"\u003eTurbolinks\u003c/a\u003e has really been picking up steam. The early knee-jerk reaction has subsided and lots of people are giving it a second look and really liking what they see. We have a ground-up rewrite in Turbolinks 5 that takes this even further by focusing on integration with native iOS and Android wrappers. It's a big leap forward and its the technology that's enabled us to ship Basecamp 3 with amazing native clients without building huge native teams. I'm really excited to share all this progress and enable more teams to go native where it counts (mainly navigation and some peak UI fidelity areas) and then rely on their Rails app as the integrated system. The beautiful monolith.\u003cbr /\u003e\u0026nbsp;\u003cbr /\u003eAt the same time, API mode broadens the appeal of Rails to everyone who's rocking the client-side MVC approach as well as 100% native mobile apps. There's no reason that we shouldn't be collaborating on improving Active Record, Action Pack, Action Mailer, Active Job, Action Cable, and all the other frameworks that Rails provides which aren't tied to HTML-view generation. The vast majority of Rails is as relevant to API-only apps as it is to full-stack apps. So making the size of our tent explicit is exciting.\u003c/p\u003e\r\n\u003ch2\u003eCould you sum up what you think \"The Rails Way\" represents in 2016?\u003c/h2\u003e\r\n\u003cp\u003eI'm actually working on a new mini-book called \u003cem\u003eThe Rails Doctrine\u003c/em\u003e at the moment that goes over all this in deep detail. But the short story is that the Rails mission is to equip small teams to tackle big projects. We're not here to make things slightly more efficient for the 500-person company, that's just a side effect. The allegiance for Rails is to make it possible for one, two, or a few programmers to create amazing apps that span web, email, mobile, native, API, and all the other platforms we need to cover in 2016. Delivering for the web is getting more complicated every day. There are a thousand vendors and peddlers of complexity who benefit when things get hard and compartmentalized. Rails is here to serve as a counter to that. To retain the beauty and simplicity of building for the web without needing an army of experts.\u003c/p\u003e\r\n\u003ch2\u003eHow do you think your \"Reconsider\" article affected the general perception of Rails?\u003c/h2\u003e\r\n\u003cp\u003eRails has been counter cultural from day one. Many of the basic tenets, from Convention\u0026nbsp;over Configuration to The menu is Omakase remain deeply controversial. Rails stands for something, which means it's bound to alienate some people who are offended by that. \u003ca href=\"https://signalvnoise.com/posts/3972-reconsider\" target=\"_blank\"\u003eRECONSIDER\u003c/a\u003e, the blog post I wrote lambasting the San Franciscan economic model, Venture Capital, and wet dreams of \u003cem\u003etotal market domination\u003c/em\u003e\u0026nbsp;is just a natural continuation of believing in something. I doubt it's going to have much of an impact, really. As far as I can tell, much of the current crop of VC funded tech startups are already flocking to the latest tech buzz. For mostly better, and for scarcely worse, Rails is no longer the latest tech buzz. It's mainstream now, at least in terms of reach (despite the many tenets that continue to be counter cultural). I consider that a very good thing.\u003c/p\u003e\r\n\u003ch2\u003eWhich other programming\u0026nbsp;trends are piquing your interest?\u003c/h2\u003e\r\n\u003cp\u003eThe rise of functional programming is wonderful. I've let my programming style inspire heavily by key concepts, without the need to throw out Ruby. Ruby is such a wonderful sponge for the best ideas in programming. It's explicitly not a single-paradigm language, just like Rails isn't a single-paradigm framework. We get to adopt and be inspired by the best ideas from functional programming without the need to give up the best ideas of procedural or objective oriented programming either. May we continue to be influenced in just such ways. The rich history of programming languages from decades past still has much to teach us.\u003c/p\u003e","user":{"name":"Ben Halpern","username":"ben","twitter_username":"bendhalpern","github_username":"benhalpern","user_id":1,"website_url":"http://benhalpern.com","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1%2Fbabb96d0-9cd2-49bc-a412-2dc4caf94c2a.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1%2Fbabb96d0-9cd2-49bc-a412-2dc4caf94c2a.png"}}