00:00:15.719
Hello everyone! My name is Jason Charnes, and I want to talk to you about the last decade or so of Rails. But before we dive into that, I want to share a bit about myself. I flew in from Memphis, which is the home of Elvis Presley, the NBA's Memphis Grizzlies, and the world's only Bass Pro Shop located inside a pyramid.
00:00:24.480
Now, if you're not familiar with Bass Pro Shops, that's okay; just keep living your life. And if you are familiar with them, you probably have some questions that I would be glad to answer. By day, I work for a company called Podia, where I’ve been for five years as a Staff Product Developer. I work a lot with Rails, helping my coworkers fix their Rails applications.
00:00:41.000
I’m really grateful to work at Podia because they help me come speak at conferences like this. If you want to learn more about Podia, you can check out the website. Over the past five years, I've also been co-hosting a podcast called Remote Ruby, and I want to ask you something I’ve never done before: how many of you have listened to an episode of Remote Ruby? That’s pretty wild!
00:01:01.000
This conference is also special for me because it's the first time my wife has seen one of my talks in seven years. Although, I figured out that this is just an excuse for her to see an Aaron Patterson keynote after my talk. Along those lines, I want to be very open with you today and share an artistic side of myself that, no offense to my wife, she just doesn't understand. I hope you’ll appreciate my artistic expression: I spilled my name with mustard on a hot dog! This took me about 10 minutes, and I just need someone to acknowledge it.
00:01:58.840
Now that that's done, let me say it’s my first time in Europe, which is a lifelong dream for me, so I'm really glad for this opportunity. However, I have been struggling a bit because I've been telling people I'm coming to Amsterdam, and they keep mentioning this awesome traffic light museum that I can't seem to find. If anyone knows where it is, the locals told me it’s in the Red District, so come find me afterwards!
00:02:36.120
With that being said, for the rest of my time, I want to talk about a framework that is loved by many—a framework that has solidified its place as one of the best and continues to innovate. So, let’s discuss Rails. Over the past couple of days, we've had a variety of technical talks filled with excitement around Rails, and I want to take a moment to zoom out and reflect on the last 10 to 15 years of Rails and where we are today.
00:02:56.799
I was late to Ruby on Rails; in fact, Rails was already eight years old by the time I even knew what web development really was. I often say that in tech years, one year feels like seven—a sort of dog years. So by the time I learned Ruby on Rails, it felt like it was 63 years old! My first impression was that it was revolutionary. I didn't have real-world experience, but it felt groundbreaking for me as a computer science student.
00:03:06.760
Rails empowered me! A few years earlier, I'd learned HTML and CSS, but I always felt that writing server code was beyond my reach. Rails, however, made me believe that building web applications was possible for me. It showcased the joy of creating applications, and I still love the way Rails handles database connections and schemas. I remember smiling the first time I ran a scaffold command, as that simple concept sprang to life from just a few keystrokes. At that moment, I was hooked.
00:03:38.160
It may sound cliché, but Ruby on Rails truly changed my life. It gave me the confidence to dive into software development. Within just two years, I transitioned from selling musical instruments to getting paid full-time to work on a real-world Ruby on Rails codebase. This journey has afforded me many opportunities, friendships, and this moments like this to share with all of you. I believe Rails was revolutionary not just for me, but for the entire industry.
00:05:02.640
I can't speak firsthand about web development in 2003, but from my research, I gathered that it wasn’t particularly enjoyable back then. There seemed to be a lot of work involved just to get something up and running. This level of dissatisfaction was echoed in complaints found online. For instance, in the early 2000s, a healthcare company switched from Enterprise Java to Ruby on Rails, significantly reducing the amount of code needed to solve their problems.
00:05:35.640
So yes, Rails was revolutionary, although not everyone found it to be. In its early days, Rails faced some controversy, but it's unclear why anyone would have a negative view towards it. Some people didn’t share the excitement for the framework, and you can find plenty of this criticism online. For instance, some said that Rails was overhyped and simply a crud framework.
00:06:02.240
Despite the mixed feelings, Rails continued to thrive. Many small startups leveraged Rails to build their businesses, paving the way for the slogan found on their landing page: "Ruby on Rails scales from Hello World to IPO." Even after the release of Rails 1.0, there was a commitment to innovation. One noteworthy story from that period involved Rails merging with another Ruby framework called Merb, which helped shape the Rails we know and love today.
00:06:38.480
Before we knew it, Rails had stabilized and secured its place in web development. The challenging problems were solved, and developers were building and running businesses successfully on Rails. We were writing our backends in Ruby and our frontends with HTML, using unobtrusive JavaScript for enhancements. We employed jQuery for interactivity and used CoffeeScript instead of ES5.
00:07:16.399
By then, testing was becoming less of a focus; TDD seemed dead, and Rails was regarded as boring technology. However, during this time, Rails gave developers the freedom to build software quickly while still having fun in the process. Then, JavaScript came to dominate the ecosystem.
00:07:54.640
It became incredibly popular, leading to a surge of new applications, libraries, and tools made with JavaScript. We began to see single-page applications hailed as the one true way to build websites or web applications. Huge tech corporations invested in enhancing JavaScript, which made it a faster and better language.
00:08:33.200
ES6 brought significant improvements to JavaScript, incorporating many features from CoffeeScript—making the latter obsolete. Suddenly it felt like JavaScript was eating the world, promising capabilities that few other languages could offer. Why write Ruby when you could build your front end and back end using the same language? Why write Ruby when Node is so much faster? Developers began expressing exhaustion with the ever-changing JavaScript ecosystem.
00:09:10.360
At that point, Rails was becoming outdated, seen as the old guard in the face of all this excitement around JavaScript's rise. Conversations among developers shifted focus, and though the noise was loud, Rails began adapting to the new evolution of web development. In 2015, Rails shipped an API-only mode that allowed developers to utilize Ruby on the server without relying on Rails for client-side work.
00:09:45.440
For those of us still crafting full-stack web applications with Rails, Webpacker was introduced as a Rails wrapper for Webpack. While this caused mixed feelings, it was also exciting because it signaled our embrace of modern JavaScript tooling. We could use npm and harness ES6 features that browsers didn’t yet support.
00:10:24.679
On this note, I’d like to give credit where it's due. React Rails became a popular package that allowed us to use React components almost as first-class citizens in Rails applications. We use this package at Podia, and it has been a dream for us. I want to thank Justin Gordon and Shaka Code, as many of us have benefited from the various libraries and articles that helped us bridge the gap during this time.
00:11:02.239
Many people speculated whether Rails could adapt enough to stay relevant amid these changes. They declared that building applications on Rails was old school and that it was time to move on. But through all of this, Rails kept moving forward.
00:11:15.919
Some developers found solace in the Rails ecosystem, while others were filled with fear, uncertainty, and doubt. I fell into the latter group, concerned that I’d have to switch to a framework that I would have to learn from scratch. But life went on, and so did Rails. It was very much alive!
00:11:44.600
People were continuously launching new Rails applications, and new versions kept rolling out. There was noise, yes, but Rails was not dead. In fact, a shift occurred: people started realizing what some of the newer technologies lacked. Some developers began to miss that old Rails experience.
00:12:13.679
They longed for the productivity that Rails brought. I've also experienced the frustration of gluing libraries together for functionality that Rails had made simple. One blog post from 2019, titled 'Why I Miss Rails,' articulated a common sentiment: developers were spending an excessive amount of time rewriting basic functionalities that once came standard with Rails.
00:12:37.240
Despite the evolution of tools like React and GraphQL, many felt that the features and functionalities that Rails provided were hard to come by. Applications needed features like user accounts, password recovery, and various integrations that had become laborious in the new stack. Developers began reflecting on how easy it once was to achieve these tasks with Rails' built-in functionalities.
00:13:02.319
They highlighted how Rails helped simplify tasks like user authentication and file uploads, which now seemed time-consuming in the absence of a standard setup. This transition led to a sentiment that something akin to Rails was needed in the JavaScript ecosystem.
00:13:20.199
However, many developers still cherish Rails, asserting that it allowed a focused level of development and application building that is hard to find elsewhere. It remains an accessible option for many; Rails provides a structured approach, guiding users through the common tasks while hiding the complexities.
00:13:52.880
Up until now, I've mostly talked about Rails in the past tense, focusing on its historical impact. But let’s fast-forward to today and explore what Rails is doing now. I believe Rails is innovating; around the end of 2020, we began to see waves of fresh ideas and excitement.
00:14:28.679
Talks about Hotwire at this conference are a clear example of that! Hotwire represents an elegant approach to server-rendered applications that challenges the complexities of JavaScript front ends. In 2020, the announcement of Hotwire revitalized the community.
00:15:02.239
Rails also bid farewell to Webpacker, transitioning to two first-party packages: JS bundling and CSS bundling. Rather than enforcing a specific asset pipeline, Rails decided to allow developers to choose their tools, which has unlocked many new features. This flexibility is one of my favorite changes in the past few years.
00:15:37.360
Interestingly, the current trend seems to be leaning toward server-side rendering. While this is not a new concept for us, it’s fascinating to see it viewed as innovative two decades later. Just the other day, I attempted to install the latest version of Next.js, which was breaking because it insisted that I server-render everything.
00:16:10.920
We’ve come a long way since the original ideas surrounding this framework, and it feels like the ideas crafted in Rails are being re-evaluated and embraced again. Rails 7.1 was just released yesterday, bringing with it an array of new features, proving that the framework is alive and well.
00:16:36.599
This conference sold out in 45 minutes—an achievement that speaks volumes about the enthusiasm surrounding Rails. I’ve attempted to organize smaller conferences in the past, and I can tell you, getting 45 people to sign up took far longer than that!
00:17:11.680
With all this said, Rails feels alive, and the chatter about being 'dead' seems to have quieted down. Yes, Rails never died—it's continuously progressed, with various pushes in innovation. The Rails core team and contributors deserve immense gratitude for their steadfast commitment to the framework.
00:17:40.720
They’ve filtered out the noise and kept moving things forward. As we look at Rails’ upcoming 20th birthday, we must also consider how we, as a community, can play our parts in maintaining this excitement and joy within Rails.
00:18:12.040
A simple starting point would be to continue using our beloved tools. If you love Rails, keep using it! Build your side projects with it and test your ideas through its framework. However, I also encourage exploration of different technologies and ecosystems, as they hold remarkable ideas worth investigating. If something exciting emerges in another ecosystem, bring it back to Rails.
00:19:01.600
On that note, I want to address a concern I have with the state of front-end development. The React ecosystem has made building accessible and aesthetically pleasing front-end applications incredibly easy. I often feel frustrated that we have to reinvent the wheel to achieve similar results within Rails.
00:19:48.760
Here’s my plea: please, someone, build component libraries that make this easier! I’m willing to pay quality money for something like that. Beyond this, we can reach out to improve Rails applications by fixing bugs or contributing new features. There's plenty of room for everyone to participate in this project!
00:20:28.180
Moreover, let’s challenge the status quo. The world of web development constantly changes, and nothing is set in stone. New libraries and ideas continue to emerge, and Rails is re-evaluating what has been the norm within our workflows.
00:21:10.760
While not every challenge will succeed, we can’t find out without trying. So, share your insights with us! Whether you're a newbie or a veteran, your experiences and ideas are valuable and worth sharing.
00:21:43.440
This community has an insatiable curiosity for Ruby content. If you have something to share, don’t hesitate! Dust off that old blog and start posting about what you find interesting in Ruby on Rails, regardless of how common the topic may seem.
00:22:17.720
You could even venture into short-form content by sharing tips and tricks you're learning; that's still a popular medium. For example, we started Remote Ruby in 2018 without any expectations, and to our surprise, people listened. During the Afterparty, we’ll have a podcast booth, so anyone who wants to join us on the podcast is invited!
00:22:48.680
I can't stress enough how many opportunities the podcast has opened for us. If you feel you don’t have anything to contribute, I urge you to watch Aaron Francis’s talk at this year's LaRon, titled ‘Publishing Your Work,’ which covers how everyone has something worth sharing.
00:23:34.440
In conclusion, I wouldn’t call what we're experiencing today a comeback, because Rails never left nor did it die. However, if it were to be termed a comeback, I could scientifically argue that Ruby on Rails is back because it's become a topic of controversy again.
00:24:03.600
Thank you all!