Ruby Community

Hot Takes Welcome: @searls

Hot Takes Welcome: @searls

by Justin Searls

In the presentation 'Hot Takes Welcome: @searls' by Justin Searls at the Keep Ruby Weird 2016 event, the speaker addresses the challenges faced by the Ruby programming language and its community. He adopts a provocative style reminiscent of a political rally, focusing on what he perceives as a failure of Ruby's leading figures, whom he refers to as 'heroes.' Throughout the talk, Searls argues that these heroes have not only failed to lead effectively but have also contributed to Ruby's decline in popularity and relevance in the tech industry.

Key Points Discussed:
- Leadership Failures: Searls criticizes the early leaders of Ruby, including Matz, Dave Thomas, and others, for ineffective strategies that hindered Ruby's growth, especially in its first decade.
- The Concept of 'Heroes': He argues that these so-called heroes have created a dependency culture, where developers look to a small, vocal minority instead of taking initiative.
- Shift in Language Popularity: The talk highlights the decline of Ruby's dominance as venture capitalists and developers transition to newer languages like Elixir and Rust, leaving Ruby in a precarious position.
- Call to Action: Searls proposes a radical approach: halting the migration of Ruby heroes to other languages until the community reinvigorates itself. He emphasizes a need for grassroots efforts to promote Ruby’s strengths, particularly in productivity and programmer happiness.
- Inclusivity and Community Engagement: He reminds developers to share their positive experiences with Ruby and engage in conversations about its merits, especially in environments like Hacker News where Ruby is often overlooked.
- The Future of Ruby: Searls calls for a collective effort to combat the narrative that Ruby is fading—a movement he refers to as making Ruby great again.

In conclusion, Searls emphasizes the idea that Ruby's future depends not just on its heroes but on the collective action of its community. He encourages attendees to champion Ruby, innovate, and actively participate in discussions that advocate for the language's continued relevance in an ever-evolving tech landscape, while also acknowledging the importance of empathy towards developers working in other programming languages. The presentation highlights a blend of humor and satire, calling for reflection on the Ruby community’s past while fostering hope for its future success.

00:00:07.429 One complication is that I'm not going to give this talk as myself; I'm going to give this talk as somebody else.
00:00:20.240 Alright, let's button this up and we're off! Whoo, what a great room! Austin is hands down one of my favorite cities. I was telling them on the plane how tremendous the crowds in Austin are.
00:00:37.260 Thank you, Brandon! He's a really nice guy, isn't he?
00:00:40.019 So yeah, everyone please live tweet your grievances to @searls, and I will retweet the most terrible things that you say.
00:00:52.710 If your team needs more developers, my company, Test Double, has the best of the best. I stand before you today to deliver a very simple message: Ruby heroes have failed you. Ruby is a spectacular language, but unlike every other language, Ruby has always been led by heroes. Today, they are ineffective and spineless. This weak leadership threatens the very survival of Ruby, and only we can save it. Together, we are going to take our language back.
00:01:33.090 This goes all the way back, folks, to how Ruby was first created. Now, in the beginning, there was Matz. Some people tell me that Matz is Japanese, which I think is fantastic. I'm told he’s very nice, but that was not enough for him to become Ruby's king.
00:01:50.250 Matz was so weak that it took a decade for Ruby to spread beyond Japan. Seriously, thanks to Matz's weak leadership, we became dependent on other Ruby heroes. First came Pragmatic Dave Thomas and Andy Hunt, who wrote a very long and very boring book about Ruby and pickaxes. This book showed how tremendous Ruby is, but Pragmatic Dave and Pragmatic Andy lined their pockets by building a corrupt publishing empire that is today the biggest source of biased technology books on the planet.
00:02:29.459 Later, Cheeky Chad Fowler and Jolly Jim Wyrick, so-called community organizers, went on to create a national Ruby conference. Together, they started a service called RubyGems so they could spread their lies and propaganda more easily. Jolly Jim went so far as to make a corrupt tool called Rake to force us to build gems how he wanted us to.
00:02:56.069 These corrupt heroes created RubyGems with totally open borders, letting in people like Wacky Y and D-list DHH, and they've been flooding in ever since. Well, I acted like the purpose of Ruby was to make art. He had no respect for the free market. He yanked all of his gems, which was totally unprofessional and not nice. Total disaster.
00:03:19.140 D-list DHH was so desperate to have an MVC framework written in Ruby that he ported Java Struts to Ruby on Rails. Personally, I prefer frameworks that weren't ported, but soon things settled down. The tyranny of heroes receded. Ruby entered its golden age. Developers were unbelievably productive, and in no time at all, we built hugely successful companies, including daily deal coupon sites, and it was all thanks to Ruby.
00:03:52.950 Ruby was winning. Every new startup was using Rails, even if their staff had no clue how to write Ruby. It didn’t matter—Ruby's poll numbers were through the roof! Every developer on earth was either writing Ruby or jealous of people writing Ruby.
00:04:20.489 Soon, however, the establishment venture capitalists wanted to change Ruby. They wanted scale; they wanted enterprise, and our feckless heroes were all too happy to oblige. Jumpy Joe's A-Value worked to make Rails thread-safe. The traitor, Ed Shaw, made the Mongrel server fast and concurrent.
00:04:36.630 Aloof Yehuda made Bundler a hostile takeover of your dependency management, and everyone's favorite chicken tender, Love, spent years of his life rewriting the slow and confusing Erol API for Rails as Active Record. This allowed people to create massive SQL statements so quickly that we didn’t even stop to ask if we should.
00:05:11.189 But now that Ruby is mature, your heroes got bored and deserted you for other languages. We’re left with B-tier heroes—too low-energy to switch languages, like Terrence Lee and Richard Schneemann. With our heroes gone, Ruby isn't winning anymore. It has become a loser language, and it's time to take action.
00:05:34.080 As a result, I, Justin Searls, am calling for a total and complete shutdown of Ruby heroes switching to Elixir and Rust until we can figure out what the hell is going on. We need to start planning for life without our heroes. If you support me, we can make Ruby great again. We need to move beyond the hero system, folks. Their phony loyalty to a language as delightful as Ruby is a disgrace.
00:06:01.409 And you know the worst part? Heroes have known this for years, and yet they didn’t do anything. Here’s what a left-wing Agile school calls extremist programming. They’re not willing to call it that; let’s be honest, it’s extremist programming.
00:06:21.389 Extremist programming has the same heroes working long hours to write buggy code to accomplish what others think is impossible in the time available. The result is unrealistic expectations by management, and inevitably it results in a death spiral as the whole team falls further and further behind.
00:06:40.469 Now some of our Ruby heroes are decent people. They’ve done good work for the language, but they’ve become greedy, addicted to retweets and cushy speaking fees. They closed the door on us. Ruby heroes became the ultimate insiders, and they shut us out. They hid behind shadowy acronyms to explain why we should use their gems instead of writing our own, they lied.
00:07:19.419 Later, they led our thoughts and told us we couldn’t be heroes, and then those same heroes abandoned us for newer, more attractive languages. Now, we’ve become helpless without them. That ends today.
00:07:53.580 By the way, somebody needs to say this, and I'm not afraid to say it: Ruby hero DHH is the worst abuser of SemVer in the history of programming, and Rails was a total enabler.
00:08:12.179 If Rails won't lock down their versioning, we should lock them down. The establishment venture capitalists that profited from Ruby are now shipping our jobs to other languages and frameworks. Nobody makes things in Ruby anymore; we need to send them a message. They’re afraid of your power. They know that I’m the only one who can bring jobs back to Ruby.
00:08:57.040 The venture capitalists in their ivory tower Silicon Valley open-plan offices have rigged the mainstream media against Ruby. If you open Hacker News, the entire front page will tell you to build your app in anything but Ruby.
00:09:30.950 So, to ensure Ruby's survival, these other languages must be defeated. It’s as simple as that. Our ineffective heroes have let these other languages walk all over us.
00:09:57.330 Some Ruby heroes are trying to distract from their dirty secret that they’re, in fact, only 1x programmers. They falsely claim that I have something to hide in my Ruby copper port. These are bald-faced lies. I promise you I will release my coal under bridge Rubicon reports, but unfortunately, I am currently under a code audit.
00:10:14.790 I would be foolish to release them while under audit. I will gladly release my Rubicon report as soon as I can. You know, genius returns to the 30,000 deleted emails that were lost because I didn’t CC at the end of a promise of change. Unbelievable!
00:11:00.540 JavaScript is a total lightweight. Like a lot of you, I simply fail to understand why JavaScript is so popular. You want my opinion? JavaScript is a four tops, maybe a five, if it loses the semicolon and dabbles with its typing.
00:11:43.560 But it has tremendous wealth. Like you wouldn’t believe! We have testing, we have conventions over configurations, and we have the path of least surprise, which, if you’ve never been there, is a beautiful path. Ineffective heroes foolishly tried to hide JavaScript from us for years.
00:12:22.279 Now, I propose we go to JavaScript and do what any good leader would do: negotiate a better deal so that Ruby can start winning again instead of continuing down D-list DHH’s failed policies of mixing JavaScript into our server-side HTML. I am going to build a wall between Ruby and Java.
00:13:07.470 Oh, don’t worry! We’ll make JavaScript pay for all the HTML Ruby will provide. But JavaScript is what created this mess in our Ruby web apps, and it will pay to fix it. We need to be tough on JavaScript.
00:13:28.320 But I’ll also be very, very fair—much more fair than JavaScript has been to us, let me tell you. Look what they did last time: we helped them by giving them CoffeeScript, and they totally turned around and their interpolation became a joke. Their arrow functions are a mess.
00:14:00.360 JavaScript’s secret cabal of language elites, the TC39, is a total disaster. Unbelievable! And now, some truly bad hombres complain that my ultimate goal is to transpile Ruby into JavaScript. These are heinous lies; nothing could be further from the truth.
00:14:34.380 You're all here, aren't you? Look around you in this room! You came to this rally today because you believe Ruby can be great. But it doesn't mean we should stop talking about Ruby anymore. If you're caught using Ruby in public, others will attack your First Amendment rights by disagreeing with you.
00:15:35.589 We can fight back! There’s a silent majority that stands with us. The establishment venture capitalists don’t want you to believe Ruby has a future. They want teams to build over-engineered, massively complex microservices and React websites—unproven startups to justify their pyramid funding schemes.
00:16:12.180 They know how productive Ruby development is, but they don’t want your team to be productive—they want it to be huge. Their entire empire is threatened by Ruby’s productivity. I'm in business; I know this better than anyone.
00:16:53.570 But these people are so desperate they’ve been digging through my old repositories. Horrible people! So my staff have asked me to make the following statement: I apologize for using domain-specific languages in a project from twelve years ago—it was a foolish decision, one that I regret. My use of Ruby DSLs has become an important distraction from the issues that really matter.
00:17:55.740 In truth, it was just locker-room code. Programmers were working on private source code servers, whose DSL are all the time. In fact, even the great Chicken Tender Love used RSpec on a project as recently as last year!
00:18:45.639 And I’ve got to tell you, I don’t believe the polls anymore; I think Ruby is still really, really popular. Everybody I talked to loves Ruby! Teams quietly use Ruby all around the world, but Ruby teams are just too busy being massively productive and making tons of money to stop working to comment about it on Hacker News.
00:19:21.120 And after all I’ve done, if you don’t help to save Ruby, this will have been the biggest monumental waste of time and energy in my life. You don’t say Ruby after this talk?
00:20:00.460 I’ll be honest: I’ll never forgive you. I’ll never come back. But regardless, I will totally and graciously accept the result of your team's election for its next programming language if it’s Ruby.
00:20:31.000 Now, it's hot up here, so let’s bring this back to reality. I co-own a serious company called Test Double, and I hope that you all understand what satire is, so there’s a good chance you’re very confused right now.
00:20:55.110 Do I think that the heroes who made Ruby great are bad people? Of course not! Some of my best friends are Ruby heroes. Okay, seriously, I'm done.
00:21:22.670 Now, I was like Trump obsessed with being validated by others, and I made it my five-year mission to become a Ruby hero myself. I wanted to see what it felt like to be on the inside, and overall it’s been a fantastic experience; it’s a lot of work. But when I hear that Ruby isn’t inclusive, it’s our outsider inside our system of thought leaders that always stood out to me as wrong.
00:22:03.540 Why is there this huge divide between the people who make gems and the people who consume them? Because we’re a very small pond in the grand scheme of things, and we’ve just stocked it with some relatively big fish.
00:22:38.520 I don’t think we’ve done the job of asking ourselves what problems our system of Ruby heroes has created. I’ve met dozens of teams and hundreds of developers in my travels, and I have seen the learned helplessness that comes from looking to a small, vocal minority as the solution to every problem.
00:23:02.520 We have this habit of appeals to authority. They’re very common in Ruby, and they train people not to be creative. Katie wanted to do this, but we told her no because Sandy’s books told us to do it that way instead. These sorts of arguments suck the joy out of programming.
00:23:40.640 As Ruby matured, a lot of our heroes left. Thought leaders run on retweets, and the maturity of Ruby is unknown. Retweet all you want, but the heroes moved on.
00:24:03.570 Early on, most people assumed that keeping Ruby relevant was going to be somebody else’s job. But now if we do nothing, I think eventually Ruby is going to be relegated to a cute little scripting language status, like Perl.
00:24:20.300 So even if we want to replace our heroes, I don’t think that’s going to work because Ruby is not the hottest language in the world anymore.
00:24:50.430 We actively need to showcase what we love about Ruby. Ruby still has meaningful things to say. We have tools and a culture optimized for programmer happiness and productivity, promoting obviously the path of least surprise, consistency through well-considered conventions.
00:25:39.560 We're already seeing a ton of legacy Node.js apps where project teams ask, 'What just happened?' How did we get to this big ball of yarn? Highly maintainable and understandable.
00:26:06.690 Ruby could be one potential answer for teams like that. But we have to show up, so my final plea is that if you do prefer Ruby for some reason, tell people about it! Blog about long-term maintainability.
00:26:42.020 If it’s a boring topic, compare Ruby to other ecosystems. Do screencast tutorials about design lessons you’re learning, even if other people have said them before.
00:27:20.008 Find an organization like Girl Develop It or Black Girls Code, and show them the gentle on-ramp of Ruby's syntax and community. And I don’t recommend ever visiting the failing Hacker News, but if you’re there, stand up for Ruby!
00:27:59.997 Hacker News drives a lot of decisions about the languages companies use, which is totally ridiculous but true! Ruby is rarely mentioned there anymore because it’s not new and trendy.
00:28:30.640 So the solution can't just be like tribalism; it’s not us versus them. Let’s all be polyglots. The only record we’re going to draw is outsiders.
00:29:09.540 So when you work in another language like JavaScript, empathize. Be kind. Don’t assume that others have had the same lessons you learned during Ruby. You have valuable things to teach them, just like they have valuable things to teach you.
00:29:49.990 So anyway, that’s what we try to do at my company, Test Double. We like Ruby a lot, but we also engage with people working in other languages because we want to help developers where they already are.
00:30:29.720 We’re looking for help, so if you want to work with us, know that Test Double is always hiring, always interviewing.
00:30:59.940 If you want to make Ruby great again or make JavaScript great for the first time, shoot us an email at [email protected]. You know, it’s a real easy conversation. We don’t start with a whiteboard exam; we just talk to you about who you are, what you like to do, how you like to work, and then tell you about how we work.
00:31:43.570 Also, I have stickers! I’ll be around all evening. I’ve got a bunch of Test Double stickers, and I also printed up a thousand 'Make Ruby Great Again' stickers.
00:32:15.210 So, still, I'm gonna be around, I hope I get a chance to meet all of you today. Thank you so much for keeping it weird!