Make Ruby Great Again

John Manoogian III
6 min readMay 27, 2016

--

An excerpt from Justin Searls’ killer talk at RailsConf 2016

Note: This talk gave me very strong feelings about open source, the Ruby community, the fickleness of crowds, the second coming of JavaScript, even my daughter. “Open Source and Feels,” as they say. I originally saw this talk as a video focused mostly on the specific topic of RSpec. I felt this section was important to a much broader audience, so I selected just that part of the transcript and am posting it here with minor re-formatting and light emphasis of the points that resonated with me. 100% of the content is Justin Searls.

Rails is pretty mature now. It’s been around for over 10 years. Solves the problems that it solves really well, and it’s pretty well known for what it’s good at and what it’s not. So people talk about Rails a little bit less. Especially all of us busy, getting-stuff-done building things — we’re not out there advocating Rails anymore, because we get to use Rails at work, which is itself fantastic.

However, when you look at jobs, Rails jobs are on the decline. They’re not just slowing down, it’s negative growth. There’s this other thing: The Technology That Shall Not Be Named™. Everyone’s talking about Node.js. Like it or not, 900% year-over-year growth in jobs on Indeed. There’s a lot of activity there and this is not a contest of who’s the better technology or who solves stuff better, it’s: what’s the front page of Hacker News?

So, my challenge is, thinking about this talk and why the hell we’re giving this talk and why we’re here. Because, the other option, if we’re not willing to get uncomfortable, is we’re going to see Ruby jobs start to dry up. And there might be fewer people at RailsConf 2018 than this year.

Another way to think about this is, if you’re not familiar with it:
RubyTogether is a non-profit that pays people to work on Ruby open source. Another way to think about this is to ask, “what were the conditions necessary in order for RubyTogether to seem like a necessary and good idea?”

When an ecosystem is popular, everything is easy, because there’s just wave-after-wave of Person On The Internet who’s going to write open source for free just for the ego boost, just for the fame to be attributed to the new popular thing.

Also easy: sponsored stuff, the way Oracle backs Java. Java’s not going to go anywhere, because Oracle’s incentivized for Java to be successful. Google is not going to drop Go… unless they feel like it. [drops mic]

JavaScript cannot die, because multiple vendors have staked their businesses on it. Every single browser. JavaScript is not going to go anywhere, so it’s a really safe bet.

We talk about RSpec, it’s mature at this point, and I don’t mean mature as a 4-letter word. Mature means “mostly done”. Bundler is mature. Rails is mature. Ruby is mature. They mostly do what they need to do to do their job well but that means as a result, when you maintain a popular gem like RSpec, it no longer makes you rich and famous, necessarily.

And the ecosystem, the stuff that they had to do just to make RSpec continue working with Rails 5 is almost all stuff that you don’t actually see. It’s all internals and legacy code refactoring. No one really wants to do that work. And so the reason RubyTogether needs to exist is that the energy and the funding to keep Ruby competitive isn’t there otherwise. And that is disconcerting. Because RubyTogether isn’t ever going to be big enough to solve that fundamental systemic problem.

So let’s talk about my real job: Sales. I spend a lot of time talking to business people about software solutions and building software apps and stuff, and entrepreneurs that I talk to are always talking about certain technologies that are advised to them, like the M.E.A.N. stack. Mongo, Express Angular, and Node.js. A lot of entrepreneurs are pushing this kind of stuff. Another one: a lot of people are just assuming, based on trendiness, that Node and React are just the way to go.

So you know who’s talking about Ruby and Rails nowadays out in the marketplace? Who has the ear of CTOs and directors of engineering? People spreading fear, uncertainty, and doubt, because they have their preferred upstart technology that’s faster or whatever. And what those businesses are hearing is that there aren’t enough Rubyists out there. That the Rubyists who do exist cost too much. That Ruby is slow and that Rails doesn’t scale — either at runtime or operationally.

Now if you’re in this room today, you’re like “Noo! No no no! Ruby’s fine, it’s okay.” Rails is still the best choice for entire classes of applications. But because we stopped saying it a few years ago, businesses stopped hearing it.

People only share new stuff that excites them, that’s novel. If you were to discover immortality today, it would drop off the front page of Hacker News after a week or two. People wouldn’t be talking about it. They’d find some new shiny thing. They’d be talking about React Native 1.0 and not that you just, you know, defeated death. Even though that thing is way more objectively better, it’s not novel after a certain bit of time.

So the dilemma is that Ruby is no longer new. Ruby is still good. We gotta do something so Ruby can remain relevant and we can keep working on Ruby at work. So what’s the “we do something” part?

Remember, Ruby is mature: it does its job mostly well. And one thing that I think our community of technologists needs to get comfortable with is that it is okay for tools to be mostly finished. It is okay for software to just mostly do it’s job and be good at what it does. In any other industry it would be ridiculous for us to say otherwise. Like, “oh, well, it’s clearly obsolete now because it’s not super active and they’re not adding new features.” At a certain point, it just does what it needs to do. Remember, I said the keys to our happiness were our tools — we all like Ruby, we all like Rails; that’s why you’re here ; and how we use them.

So maybe it’s time for us as a community to de-emphasize the tools and start talking more about how we use those tools to accomplish really cool stuff. Because there’s all of these evergreen problems in software. There are all these problems we’re never going to solve. We’re never going to solve testing. We’re just going to get asymptotically better each time. We’re never going to solve design. Because we’re always going to find new ways to design code. And human issues are never going to be solved either, right? How our code communicates its intent to its reader is never going to be solved. So we can tell stories that help people solve problems in ways that are more than just, “look at this new shiny bauble.”

And if you love Ruby, tell your story in Ruby and associate it back with Ruby so that Ruby remains known as a community of people who really get object-oriented design right, who get testing right, who get community and inclusiveness right. Being known for those things and having people talk about those things are enough to keep us relevant. And when you think about whose job this is, remember that most of the people who made Ruby so famous in the first place don’t write Ruby anymore. Their chapter is complete. Most of them have moved on to other ecosystems. Some of them are no longer even with us. And that means that keeping Ruby relevant is not somebody else’s job. I hate to break it to you, but the fact that you show up to a conference called “RailsConf” in a room that holds just a couple hundred people means that you’re one of the top couple hundred people whose job this is now to keep Ruby relevant.

So my message is: Make Ruby Great Again.

[Thunderous, sustained applause]

[Captioning provided by @searls, who was biased as to the sound of the applause]

[Whispers] Hashtag: #MakeRubyGreatAgain

And tell your story. We don’t have the time to talk about it today. Use this hashtag and tell me something that you could do to tell a story that might change something. That might have an impact on others and might convince them that Ruby is a better solution than The Technology That Shall Not Be Named for whatever it is that you’re doing.

And most importantly, thank you all so much for your time. I really, really appreciate it.

[original video, blog post with timed transcript. I have no rights over this content, but Medium doesn’t give me a licensing option to make that clear. If you want to use this for something, please consult Justin.]

--

--

John Manoogian III

“The mystery of wood is not that it burns, but that it floats.” —A. Michaels