The video above was recorded by a campaign tracker at the private Ruby fundraising event, Keep Ruby Weird on October 28, 2016, in the final days of the campaign.
The video depicts known JavaScript agitant Justin Searls, who spoke for approximately 27 minutes at the rally with a message that advocated restoring Ruby to its former prominence in the open source software community. While the content of the speech contained pointed populist rhetoric, it did not present any specific policy proposals.
Opponents to Ruby have raised concerns that the strong language used by Searls will only embolden Ruby’s most radical proponents to take action against JavaScript, the open, standards-based language of the Future™.
Sources in the campaign say that prominent JavaScript leaders are alarmed, fearing that the Ruby community’s counter-cultural message could attract developers frustrated by JavaScript’s slow-moving, deliberate standards bodies to move the web forward. Campaign officials worry that if a cohesive movement organizes around a non-JavaScript language, it could set back their goal of establishing a new world order in which 100% of new software across the world is finally written in JavaScript.
Test Double does not endorse the contents of this video and Searls has been placed on paid conference speaking leave, pending the outcome of an internal investigation.
[00:24.033] > Brandon: Ok. While
[00:27.033] Justin is setting up. This is Justin
[00:30.033] Searls. Does everybody know Justin? Hi Justin!
[00:33.033] > Justin: Hello.
[00:36.033] Are you guys ready to hear a talk?
[00:39.033] You believe that you're
[00:42.033] ready for my talk?
[00:45.033] Because I guarantee you are not.
[00:51.033] > Brandon: Alright. So here is
[00:54.033] the real fact about someone who is not Justin
[00:57.033] This person, joined the Army
[01:00.033] to rappel out of helicopters and shoot wire
[01:03.033] guided missiles at tanks. It's a true
[01:06.033] fact, but it is not true about Justin so far as I know
[01:21.033] So, most people don't know this about Justin
[01:24.033] But,
[01:27.033] he tweets. On the Internet
[01:30.033] This is a little know fact about Justin
[01:33.033] Is that he says things on Twitter
> Justin: hello…
[01:36.033] > Brandon: And, he, umm
> Justin: I'm a nice guy, I swear
[01:39.033] > Brandon: Alright, I have a fake
fact about Justin
[01:44.933] He once tweeted a rant so powerful that he made the
[01:47.933] fail whale cry
[01:50.933] > Justin: This is a young crowd. I don't know if
they remember who the fail whale was
[01:54.133] That was back when Twitter was written with Ruby
[02:00.133] > Brandon: Everybody, Justin Searls, who is
[02:03.133] really great.
[02:09.133] > Justin: Alright, just gotta get set up here. It's a
[02:12.133] complicated talk
[02:15.133] One complication is that I'm not going
to give this talk as
[02:18.133] myself.
[02:21.133] I'm going to give this talk as somebody else.
[02:27.133] Alright, just gotta button this up
[02:30.133] And, we're off!
[02:33.133] Woo!
[02:36.133] What a great room, Austin—hands down—
[02:39.133] one of my favorite cities. I was telling
them on the plane
[02:42.133] how TREMENDOUS the crowds in
Austin are
[02:45.133] Thank you Brandon, he's a really nice
guy isn't he? Thank you Brandon!
[02:48.133] Alright, please
[02:51.133] live-tweet all of your grievance to
@searls
[02:57.133] We good? Alright.
[03:00.133] Oh No!
[03:03.133] > Audience: You got a bum mic!
> Justin: I got a bum mic?
[03:06.133] Oh, right, yeah
[03:09.133] This is a
[03:12.133] dongle conspiracy.
I think it's weighing down on it
[03:15.133] It's rigged, yeah!
The dongle is rigged
[03:18.133] Now it just fell out
[03:21.133] We're going to start this one
just right over
[03:27.133] Here, I'm going to try this way. Ok, so
[03:30.133] let's just call that a do-over
[03:36.133] I just ordered the new MacBook Pro, and so
[03:42.133] It's just Apple calling to me
Alright, just gotta restart this now
[03:54.133] Woo, alright! Got all the nerves out
[03:57.133] So, yeah, everyone please live-tweet
[04:00.133] your grievances to @searls and I will
retweet the
[04:03.133] most terrible things that you say.
If your team needs more
[04:06.133] developers, my company, Test Double,
our developers
[04:09.133] are the best of the best
[04:12.133] I stand before you today
[04:15.133] to deliver (It's okay, it's intentionally
black)
[04:18.132] I stand before you today
to deliver a very simple
[04:21.132] message. Ruby's heroes
have failed you
[04:24.133] Ruby
[04:27.133] is a SPECTACULAR language, but
unlike every
[04:30.133] other language, Ruby has
always been led by heroes
[04:33.133] But today their ineffective
and spineless leadership
[04:36.133] threatens the very survival
of Ruby and only we
[04:39.133] who can save it. Together
we are going to take
[04:42.133] our language back. This goes all
[04:45.133] the way back, folks, to
how Ruby was first created
[04:48.133] Now in the beginning (unintentional black)
[04:51.133] There was Matz.
[04:54.133] Some people, tell me
that Matz is a Japanese
[04:57.133] Which, I think, is fantastic
[05:00.133] The Japanese love me
[05:03.133] I am told he's very nice, but that
was not enough
[05:06.133] for him to become Ruby King. Matz
was so
[05:09.133] weak it took a decade for Ruby to
spread beyond Japan
[05:12.133] Seriously! And thanks to Matz's weak
[05:15.133] leadership, we became dependent
on other Ruby
[05:18.133] heroes. First, came pragmatic Dave
[05:21.133] Thomas and Andy Hunt, who wrote
a very long (and very
[05:24.133] boring) book about Ruby and pickaxes
[05:27.133] Now this book showed how
tremendous
[05:30.133] Ruby is, but Prag Dave and Prog Andy
[05:33.133] lined their pockets building a corrupt
publishing empire
[05:36.133] that today is the biggest source of
totally
[05:39.133] biased technology books on the planet
[05:42.133] Later, "cheeky" Chad Fowler and
"Jolly" Jim
[05:45.133] Weirich—so called "community
organizers"
[05:48.133] went on to create a national ruby
conference. And together
[05:51.133] they started a service called RubyGems
so they could
[05:54.133] spread their lies and propaganda
more
[05:57.133] easily. "Jolly" Jim went so
[06:00.133] far as to make a CORRUPT tool called
Rake to
[06:03.133] force us to build gems how
he wanted us to
[06:06.133] The corrupt heroes created RubyGems
with totally
[06:09.133] open borders, letting in hippies like
[06:12.133] Whacky _why and D-List DHH
[06:15.133] And they've been flooding
in ever since
[06:18.133] _why acted like the purpose
of Ruby was
[06:21.133] to make art—he had no respect for
the free market
[06:24.133] He yanked all of his gems, which was
[06:27.133] totally unprofessional and NOT NICE
[06:30.133] Total Disaster. D-List DHH was so
[06:33.133] desperate to have an MVC
framework written in Ruby
[06:36.133] that he ported Java's Struts
as Ruby on Rails
[06:39.133] And, personally, I prefer frameworks
[06:42.133] that weren't ported
[06:45.133] But soon, things settled down.
The tyranny of heroes
[06:48.133] receded. Ruby entered its golden age
[06:51.133] Developers were unbelievably
productive
[06:54.133] In no time at all we built hugely
successful
[06:57.133] companies (and also Daily Deal
[07:00.133] Coupon Sites) and it was
[07:03.133] all thanks to Ruby. Ruby was
[07:06.133] winning. Every new startup was using
Rails, even
[07:09.133] if their staff had no clue
how to write Ruby. It
[07:12.133] didn't matter, Ruby's poll numbers
were through the roof
[07:15.133] Every developer on earth was either
writing Ruby or
[07:18.133] jealous of people writing Ruby. And
I remember
[07:21.133] those days. I wrote a lot of
skinny controllers
[07:24.133] back then, let me tell you. In fact,
people told me
[07:27.133] that my Ruby was the cleanest code
they'd ever seen
[07:30.133] We need to get back to that Ruby
[07:33.133] But soon, the establishment
venture capitalists
[07:36.133] wanted to change Ruby.
They wanted scale
[07:39.133] They wanted "Enterprise" and
our feckless
[07:42.133] weak-kneed heroes were all
too happy to oblige
[07:45.133] "Jumpy" José Valim worked
to make Rails 2
[07:48.133] thread-safe. The traitor, Zed Shaw,
[07:51.133] made the Mongrel server fast
and concurrent
[07:54.133] Aloof Yehuda made bundler, a hostile
[07:57.133] takeover of your dependency
management
[08:00.133] And everyone's favorite,
"Chicken" Tenderlove
[08:03.133] Spent years of his life
[08:06.133] rewriting the slow and
confusing ARel API
[08:09.133] for Rails's ActiveRecord,
which allowed people to
[08:12.133] create MASSIVE enterprise
SQL statements
[08:15.133] so fast that we didn't
even stop to ask
[08:18.133] if we should. But now that Ruby
[08:21.133] is mature, your heroes
got bored and deserted
[08:24.133] you for other languages.
We're left with
[08:27.133] B-Tier heroes too low energy to
switch languages
[08:30.133] like Terence Lee and
Richard Schneeman
[08:33.133] With our heroes gone
[08:36.133] Ruby isn't winning anymore
Ruby has become a loser
[08:39.133] language and it's time to take action
[08:42.133] As a result, I, Justin A. Searls am
[08:45.133] calling for a total and complete
shutdown of Ruby
[08:48.133] Heroes switching to Elixir
and Rust until we
[08:51.133] can figure out what the hell is going on
[08:57.133] We need to start planning for
life without our heroes
[09:00.133] And if you support me, we can
[09:03.133] Make Ruby Great Again
[09:06.133] We have to look beyond
the hero system, folks. Their
[09:09.133] phony loyalty to a language
as delightful as Ruby
[09:12.133] is a disgrace. And you know the
worst part?
[09:15.133] Heroes have known this for
years and yet they did nothing
[09:18.133] Here's what a left-wing, agile
[09:21.133] school called Extremist Programming
[09:24.133] They're not willing to call it that
but let's be honest, it's
[09:27.133] Extremist programming. Here's what
an extremist programmer
[09:30.133] had to say. "Heroes go it
[09:33.133] alone, working long hours
writing buggy code to
[09:36.133] accomplish what others think is
impossible in the time available
[09:39.133] The result is unrealistic expectations by
[09:42.133] management and inevitably results
in a DEATH
[09:45.133] SPIRAL as the whole team falls further
[09:48.133] and further behind. That's the ballgame
[09:51.133] folks. Heroes knew that they
were creating a
[09:54.133] death spiral and yet they did nothing
Truly disgusting
[09:57.133] Now some of our Ruby heroes,
I assume,
[10:00.133] are good people. Many did
[10:03.133] decent work for the language,
but they got greedy
[10:06.133] addicted to your retweets
and cushy conference speaking
[10:09.133] fees, they closed the door on us. Ruby
[10:12.133] heroes became the ultimate insiders
and they shut us out
[10:15.133] Heroes hid behind shadowy
acronyms like
[10:18.133] "The NIH" to explain why we should
use their
[10:21.133] gems instead of writing our own. They
[10:24.133] led our thoughts, and they told us
[10:27.133] that we couldn't be heroes too.
And then poof
[10:30.133] Those same heroes abandoned us for
[10:33.133] newer, more attractive languages.
And now we've
[10:36.133] become helpless without them.
That ends today.
[10:39.133] And by the way, somebody needs to
say this and I'm not afraid
[10:42.133] to say it. Ruby hero, D-List DHH
[10:45.133] was the WORST abuser of SemVer
[10:48.133] in the history of programming
[10:51.133] And rails-core was a total enabler
[10:54.133] let me be clear, if Rails won't
[10:57.133] lock down their versioning,
we should lock
[11:00.133] them up.
[11:03.133] The establishment
[11:06.133] venture capitalists that once
profited off Ruby
[11:09.133] are now shipping our jobs
to other languages and frameworks
[11:12.133] nobody makes things in Ruby anymore
[11:15.133] We need to send them a message
They're afraid of
[11:18.133] your power. They know that I'm the
only one who can
[11:21.133] bring jobs back to Ruby. The venture
[11:24.133] capitalists in their ivory
tower Silicon Valley
[11:27.133] open plan offices have rigged
[11:30.133] the mainstream media
like The Failing Hacker News
[11:33.133] against Ruby, if you open a hacker
[11:36.133] newspaper the entire front page
will tell you to build your
[11:39.133] app in anything but Ruby
Elixir, Go
[11:42.133] Elm, Clojure, Rust, and of course
[11:45.133] Node.js and React. But for Ruby
[11:48.133] to survive, these other languages
must be defeated
[11:51.133] It's as simple as that. Our
ineffective heroes
[11:54.133] have let these other languages
walk all over us, and
[11:57.133] some Ruby heroes are trying to
distract from their dirty
[12:00.133] secret that they are in fact only
1x programmers
[12:03.133] That they falsely claim that I have
something to hide in my
[12:06.133] Rubocop report.
[12:09.133] These are bald-faced lies
I promise you I will
[12:12.133] release my full, unabridged
Rubocop reports
[12:15.133] But, unfortunately, I am currently
[12:18.133] under a code audit, which
[12:21.133] for some reason happens to me
every single year, I get audited
[12:24.133] I'd be stupid to release them until
[12:27.133] the code audit is complete. Only
an idiot would release their
[12:30.133] Rubocop report while under audit.
[12:33.133] But I would gladly release
my Rubocop report
[12:36.133] as soon as Node.js returns the
[12:39.133] 30,000 deleted e-mails that
Stack Overflow
[12:42.133] says were lost because I
didn't call catch at the end
[12:45.133] of a Promise chain
[12:48.133] Unbelievable. Node.js
[12:51.133] Such a nasty runtime.
[12:57.133] Our heroes left us out in
the cold, but I
[13:00.133] guarantee I know more about
defeating these other languages
[13:03.133] than all of Ruby's heroes put together
[13:06.133] I'll go to the other languages and
negotiate better deals so that
[13:09.133] Ruby can start winning again. In fact
[13:12.133] I've learned that Ruby hero
Jumpy José Valim
[13:15.133] is the founder of Elixir
[13:18.133] And because he's a hero,
people turn a blind eye
[13:21.133] Totally shameless. Jumpy Jose
founded Elixir and
[13:24.133] he has a secret plan to destroy Ruby
[13:27.133] But, can anyone imagine
using Elixir? No way.
[13:30.133] It doesn't look very productional to me
[13:33.133] You know, I saw
[13:36.133] some Elixir when I walked by a coworker's
screen. I wasn't impressed.
[13:39.133] It didn't feel as
[13:42.133] free as Ruby. Ruby was great
because it was free
[13:45.133] We didn't need heroes to tell
us how to code. In Ruby's golden
[13:48.133] age, we felt free to write whatever
weird code we
[13:51.133] wanted. And we need to realize
that we are
[13:54.133] stranger together.
[13:57.133] A lot of people don't know this,
but Ruby runs on
[14:00.133] weirdness. Our heroes' failed
policies left Ruby's
[14:03.133] weird reserves at historic lows
Our heroes
[14:06.133] use code words like "mature"
to discourage
[14:09.133] creativity that they deem
too weird. Heroes
[14:12.133] like "Shady" Sandi Metz would
rather show you the
[14:15.133] "Syntactically Correct" way to write
Ruby, but
[14:18.133] I talk to a lot of developers
and they are sick and tired
[14:21.133] of all of this syntactical correctness
[14:24.133] Ruby heroes called our
[14:27.133] creativity weird because
they were afraid we
[14:30.133] wouldn't need them anymore. They
were right to be afraid
[14:33.133] We didn't need them. Anyone
can make their own
[14:36.133] gems. In fact, I made two
gems just today
[14:39.133] Tremendous gems. Code climate
[14:42.133] loved them. If we're going
[14:45.133] to save Ruby, we need to rediscover
its weirdness and the
[14:48.133] first step: stop listening to
our remaining heroes
[14:51.133] Other than me. Keep listening to me.
[14:54.133] Some people are saying—and I'm not
saying this—but some people
[14:57.133] I've been told—that we should
unfollow these heroes
[15:00.133] Heroes like Chicken Tenderlove,
Ruthless
[15:03.133] Ryan Davis, Cranky Gary Bernhardt
[15:06.133] And by the way, since Chicken
Tenderlove and Ruthless Ryan
[15:09.133] are the founding members of
Seattle.rb
[15:12.133] Something needs to be said,
folks. Most Rubyists
[15:15.133] are too afraid to call
Seattle.rb what it is
[15:18.133] Radical Parenthetical Terrorism
[15:23.033] It's just horrible More
parentheses are
[15:26.033] omitted and killed by Rubyists in
Seattle than anywhere else
[15:29.033] in the world. And our heroes
stood by and
[15:32.033] did nothing. If you support me
[15:35.033] I will deport Seattle.rb to
Vancouver Canada
[15:41.033] Without heroes, we'll all need
to step up
[15:44.033] to make Ruby great again. Post
on the blogs
[15:47.033] Record a screencast. Start a weird
newsletter
[15:50.033] And stop reading the lies in The
Failing Hacker News
[15:53.033] that tell you Ruby isn't great.
They're liars
[15:56.033] all of them. And I've been doing
this for years, by the way
[15:59.033] Ask anyone, they will tell you
that Justin Searls
[16:02.033] writes the wordiest blogs and
records the longest
[16:05.033] screencasts. And have you seen any
of my other talks?
[16:08.033] Nobody makes more slides at Ruby
conferences
[16:11.033] than me, nobody. I build the most
tremendous slides
[16:14.033] But I'm just one person and
that's not good enough
[16:17.033] to slow Ruby's demise. We all
need to
[16:20.033] step up and say what's really
on our minds. So if you have an idea
[16:23.033] Write your own gem. You
learn something terrific?
[16:26.033] publish on the blogs. And if you're
angry about something
[16:29.033] Argue about it with others
on Twitter dot com
[16:32.033] or on The Failing Hacker News
comment section, because if we
[16:35.233] can't show that Ruby is a strong
language, the other
[16:38.233] languages will keep walking all over us
[16:41.233] Back when Ruby was winning
[16:44.233] If someone wanted to learn how to
make a new web app, people would
[16:47.233] assume that they should learn
Ruby, but now people learn
[16:50.233] to program computers and don't even
know what Ruby is, they simply don't
[16:53.233] know. These smug, elitist
people from other
[16:56.233] languages are ignoring you and
your hard work
[16:59.233] and to make Ruby great again, we
[17:02.233] have to make deals with
the other languages
[17:05.233] Starting with the most popular:
[17:08.233] JavaScript.
[17:11.233] JavaScript is a total
[17:14.233] lightweight. Like a lot of you, I
simply fail to
[17:17.233] understand why JavaScript is
so popular
[17:20.233] You want my opinion?
JavaScript is a 4
[17:23.233] Tops.
[17:26.233] Maybe a 5, if it loses the semi-colons
[17:31.033] And JavaScript is very weak on types
[17:34.033] Unbelievable how weak on types
it is. Have you ever tried to compare
[17:37.033] two Dates? I will be very strong
[17:40.033] on trade with JavaScript,
because Ruby has tremendous
[17:43.033] wealth. Wealth like you wouldn't
believe. We have good testing
[17:46.033] We have conventions over
configuration. We have
[17:49.033] the path of least surprise, which,
if you've never been there, is
[17:52.033] a beautiful path. The path of
least surprise. The best path.
[17:55.033] Our weak and ineffective heroes foolishly
[17:58.033] tried to hide JavaScript from us for years
[18:01.033] RJS. Turbolinks. ActionCable
[18:04.933] This weak, isolationist strategy
totally failed
[18:08.933] And is leading to Ruby dying out
[18:11.433] And that's why I propose we go to
JavaScript and do what any
[18:14.433] good leader would do: negotiate
a better deal so that
[18:17.433] Ruby can start winning again
[18:20.433] Instead of continuing
D-List DHH's failed
[18:23.433] policies of mixing JavaScript into
our server-side
[18:26.433] HTML, I am going to Build. A. Wall
[18:30.033] Between our Ruby and our JavaScript
[18:33.033] Oh, don't worry, we'll make JavaScript
[18:36.233] pay for all the HTML.
[18:39.233] Ruby will provide—quiet generously
[18:42.233] APIs, but JavaScript is what
created this mess in our
[18:45.233] Ruby web apps and it will pay to fix it
[18:48.233] We need to be tough on JavaScript
[18:50.633] but I'll also be very very fair, much more
[18:53.633] fair than JavaScript has been
to us, let me tell you
[18:56.533] Look what they did last time we
helped them
[18:59.533] By giving them CoffeeScript
[19:02.533] They stole all CoffeeScript's good ideas
[19:05.233] And they totally choked!
Their interpolation
[19:08.233] is a joke. Their arrow functions
are a mess
[19:11.233] JavaScript's secret cabal
of language elites,
[19:14.233] the TC-39, is a total disaster
[19:17.233] Unbelievable. And now some
truly bad hombres
[19:20.233] Have claimed that my ultimate
[19:23.233] goal is to transpile Ruby into JavaScript
[19:26.233] These are heinous lies and
nothing could be further
[19:29.233] from the truth. And, besides,
[19:32.233] JavaScript wouldn't be my first choice
as a transpilation target, let me tell you
[19:37.733] Nice try.
[19:40.133] So people say that Ruby's dead,
but you're all here
[19:43.133] Aren't you? Look around you in
this room. You came to this rally
[19:46.133] today because you believe Ruby
can be great
[19:49.133] But it doesn't feel safe to
talk about Ruby anymore
[19:52.133] If you're caught using Ruby
in public, others will
[19:55.133] attack your first amendment rights
by disagreeing with you
[19:59.833] But we can fight back
[20:02.833] There's a silent majority that
stands with Ruby
[20:07.433] And the system is rigged, folks
[20:09.833] The establishment venture capitalists
don't want you to believe Ruby
[20:12.833] has a future. They want teams
to build over-engineered
[20:15.833] massively complex micro Node.js
[20:18.833] services and React web site apps
[20:21.633] for their unproven startups in
order to justify
[20:24.633] their pyramid funding schemes.
[20:27.033] They want to ensure that it takes
thousands of developers to build a
[20:30.033] taxi car app. And numerous years to
figure out how to
[20:33.033] sync a directory of files to a server
[20:36.033] The establishment venture capitalists
know how productive Ruby
[20:39.033] development is, but they don't
want your team to be productive
[20:42.033] They want it to be huge.
[20:45.033] Their entire empire is threatened
by Ruby's productivity
[20:48.233] I'm in business, I know this better
than anyone
[20:51.233] The VCs are so desperate that
they've been digging through my
[20:54.233] old repos—horrible people.
[20:57.233] And so my staff have asked me that I make
the following statement
[21:00.233] before we continue:
[21:03.233] ahem I apologize
[21:06.233] for using domain specific
languages in a
[21:09.233] project from 11 years ago
[21:12.233] It was a foolish decision.
One that I regret
[21:15.233] My use of Ruby DSLs has become
an unfortunate distraction
[21:18.233] from the issues that really matter
[21:21.233] In truth, it was just locker room code
[21:24.233] That's all it was
[21:26.033] Programmers when working on private
source code servers use
[21:29.033] DSLs all the time. In fact, even
the great Chicken
[21:32.033] Tenderlove used RSpec on a project
as recently
[21:35.033] as last year. Truly disgusting.
[21:38.033] And I gotta tell you I don't
believe the polls anymore
[21:41.033] I think Ruby's still really, really popular
[21:44.033] Everybody I talk to loves Ruby
Teams quietly
[21:47.033] use Ruby all around the world
[21:49.333] But Ruby teams are just too busy
being massively productive
[21:52.933] and making tons of money to stop
working so they can go
[21:55.533] comment about it on Hacker News
[21:58.533] And, if after all I've done, you
don't help to save Ruby
[22:02.233] This will have been the biggest
monumental waste of time and
[22:05.233] energy in my life. If you don't save
[22:08.233] Ruby after this, Austin, I'll be honest
[22:11.233] I'll never forgive you.
I'll never come back
[22:14.933] But irregardless, I will totally and
[22:17.933] graciously accept the result of
your team's election for its
[22:21.533] next programming language.
If. It's. Ruby.
[22:27.333] OK, hat's off!
[22:30.333] Whew!
[22:36.333] I can think so much
[22:39.333] more clearly now
[22:42.333] Let's bring it back to reality
[22:45.333] Where I co-own a serious company
called Test Double
[22:48.733] And which hopes that you
all understand what satire is
[22:56.833] So there's a good chance that
you're very confused right now
[22:59.833] Do I think that heroes who
made Ruby great are bad people?
[23:02.833] Of course not. Some of my
best friends are Ruby heroes
[23:06.333] Ok, seriously, I'm done.
That was the last one
[23:10.233] I was—like Trump—obsessed with being
[23:13.533] validated by others and I made it my
five year mission to become a Ruby hero
[23:16.533] myself. I wanted to see what it felt
like to be on the inside. Overall,
[23:19.533] it's been a fantastic experience, if
a lot of work
[23:22.533] But, when I hear that Ruby isn't
inclusive
[23:25.533] It's our outsider/insider system
of thoughtleaders
[23:28.533] that always stood out to me as wrong
[23:31.133] Why is there this huge divide by
the people who make gems
[23:33.633] and the people who consume them?
Because we're a very small pond
[23:36.633] in the grand scheme of things, and
we've just stocked it with some
[23:39.033] relatively big fish. So, that
makes us unusual
[23:42.033] But, I don't think we've done the job
of asking ourselves what
[23:45.033] problems our system of Ruby heroes
has created.
[23:48.033] Because, I can tell you, I've met dozens
of teams and hundreds of developers
[23:51.033] in my travels, and I've seen what the
learned helplessness
[23:54.233] that comes from looking to a small,
vocal minority as the
[23:57.733] solution to every problem can cause
[24:00.733] Worse, we have this habit of
appeals to authority
[24:03.733] they're very common in Ruby and
they train people not to be creative
[24:06.933] "Katie wanted to do this, but we told
her no because Sandi's book says
[24:11.433] …to do it that way instead". These
sorts of arguments
[24:14.433] suck the joy of programming. "Sam,
built his own…
[24:17.433] module of plain old Ruby objects,
but we fixed it by
[24:20.433] deleting them and showing
him the Rails Way"
[24:23.433] Now Trump-Searls has a point
[24:26.433] Because, as Ruby became mature
a lot of our heroes left
[24:29.633] Thoughtleaders run on retweets and
[24:32.633] maturity is a known retweet allergen
[24:36.033] So they moved on. And early on,
most people
[24:39.033] assumed when they came to Ruby—
because of all these heroes that
[24:41.633] keeping relevant was going to be
somebody else's job, but now if we
[24:44.433] do nothing, I think that eventually Ruby
is going to be relegated to
[24:47.433] cute-little scripting language status
like Perl has
[24:50.433] So even if we want to to replace our
[24:53.433] heroes with new heroes, I don't think
that's going to work, because Ruby's
[24:56.133] not the hottest language in the world
anymore. Passively attracting
[24:59.133] tons and tons of new talent. Today,
that language is called JavaScript.
[25:02.133] So we have to look within
to chart Ruby's future
[25:04.633] Ruby has its work cut out for it
and I'd rather that we
[25:07.633] all become heroes than just select
a handful arbitrarily
[25:10.633] So, it'll be a steep climb, but honestly
I don't think it's insurmountable
[25:13.633] You look at languages like
Node.js & Elixir, they
[25:16.633] have really fast async I/O, and that's
something Ruby could do better
[25:19.633] Rust and Go are just really fast, period
[25:22.633] and that's something that Ruby could
do better. But if you look at all the other
[25:25.333] popular languages, there are
opportunities for us to showcase what
[25:28.333] we love about Ruby. Ruby still has
meaningful things to say
[25:31.533] We have tools and culture that's
optimized for
[25:34.533] programmer happiness and
productivity. Promoting
[25:37.533] obviousness via the path of least
surprise. Consistency
[25:40.533] through well-considered conventions.
Carefully-designed
[25:43.533] value-based test suites. All
[25:46.533] that represents a niche that's
really valuable
[25:49.533] even if it's currently out of fashion,
so the hardest problem in
[25:52.533] application development is not
achieving performance or physical
[25:55.533] scale; if anything all of these
innovations we've seen in DevOps
[25:58.533] kind have taken Ruby's performance
concerns off the table
[26:01.533] Neither is the hardest problem having
billions of packages to depend on
[26:04.533] In fact, dependency churn is this
under-appreciated tax
[26:07.533] on a lot of teams' productivity.
The hardest problem has always
[26:10.533] been long-term maintainability
and Rubyists are well
[26:13.533] suited, I think, to show
the world how to build
[26:16.533] more maintainable applications. Ruby's
focus on programmer happiness
[26:19.533] gives us a certain empathy
for future maintainers
[26:22.533] Ruby helps Rubyists create
thoughtful designs, thoughtful
[26:25.533] tests. And the conventions are strong
enough that your skills are
[26:28.533] portable from project to project
even over years
[26:31.533] We're already seeing a ton of legacy
Node.js apps
[26:34.533] Project teams are asking
"What just happened?"
[26:37.533] "How did we get to this big ball of
yarn?" Highly maintainable
[26:40.533] and understandable Ruby could
be one
[26:43.533] potential answer for teams like that
but we have to show up, so my
[26:46.533] final plea is that if you believe
that you prefer Ruby
[26:49.533] for some reason, tell people about it
blog about long-term
[26:52.533] maintainability, even if it's a boring
topic. Compare Ruby to other
[26:55.533] ecosystems. Screencast tutorials
about design lessons you're learning
[26:58.533] Even if other people have said them
before, how you say it will be
[27:01.533] different. Find an organization like
Girl Develop It or Black
[27:04.533] Girls Code and show them the gentle
on-ramp of Ruby's
[27:07.533] syntax and community. And I don't
recommend ever visiting
[27:10.533] the Failing Hacker News, but if
you're there
[27:13.533] stand up for Ruby. Hacker News drives
a lot of decisions about
[27:16.533] the tech that companies use,
which is totally ridiculous but true
[27:19.533] And Ruby is rarely mentioned there
[27:22.533] anymore, because it's not new and
trendy. So the solution just can't be
[27:25.533] Turmp-like tribalism. It's not us-
[27:28.533] -vs-them. Let's all be polyglots.
The only way we're going to
[27:31.533] draw in outsiders. So when you work
in another language, like JavaScript
[27:34.533] empathize! Be kind. Don't assume
that others
[27:37.533] have had the same lessons that you
learned doing Ruby. You have
[27:40.533] valuable things to teach them just like
they have valuable things to teach you
[27:43.533] So, anyway, that's what we try to do
[27:46.533] at my company Test Double. We like
Ruby a lot, but we also engage
[27:49.533] with people working in other languages
because we want to help developers
[27:52.533] where they already are. And we're
looking for help.
[27:55.533] So if you want to work with us, Test
Double's always hiring,
[27:58.533] always interviewing. If you want
to Make Ruby Great Again™
[28:01.533] or Make JavaScript Great For The
First Time™
[28:07.233] Shoot us an e-mail at
join@testdouble.com. You know
[28:10.233] It's a real easy conversation. We
don't start with a whiteboard exam
[28:13.233] We just talk to you about who you are
What you like to do, how you like to work
[28:16.433] And then tell you about how we work and see
whether or not that sounds like something
[28:19.433] you wanna do.
Also I have stickers.
[28:22.433] So I'll be around all evening. I got
[28:25.433] a bunch of Test Double stickers and I
also printed out a thousand Make Ruby
[28:28.433] Great Again stickers, some are already
[28:31.433] in the sticker table in the back, but I've
got a whole bunch in my bag
[28:34.433] here, so I hope I get a chance to meet
all of you today.
[28:37.433] Thanks so much for keeping it weird
[28:47.533] > Brandon: Thank you Justin. That was
[28:50.533] problematic.
[28:56.533] I don't think I'm a millennial, because
I actually am really
[28:59.533] bad at detecting the line where people
switch back and forth between
[29:02.533] ironically co-opting populist
rhetoric and
[29:05.533] actually just using it.
[29:08.533] Thank you Justin,
[29:11.533] You're a good dude.
Footnotes
Searls referenced a number of historical figures and events specific to the Rubycommunity in the talk. The following is a collection of links leading to moreinformation on many of them:
- Fail Whale
- Brandon Hays
- Test Double & Ruby
- @searls
- @testdouble
- Ruby
- Matz
- Dave Thomas (programmer)
- Andy Hunt (author)
- The Pickaxe Book
- PragProg
- Chad Fowler
- Jim Weirich
- RubyConf
- RubyGems
- Rake
- why the lucky stiff
- why pulling his gems
- DHH
- Struts
- Ruby on Rails
- Daily Deal Coupon Sites
- Fat models, skinny controllers
- José Valim
- Zed Shaw
- Mongrel web server (web_server)
- Tenderlove
- ARel API
- Terence Lee
- Richard Schneeman
- Elixir
- Rust
- Make Ruby Great Again
- Extreme Programming
- NIH
- SemVer
- rails-core
- Go
- Elm
- Node.js
- React
- Rubocop
- Forgetting catch() at the end of a Promise chain
- Sandi Metz
- Code Climate
- Ryan Davis
- Gary Bernhardt
- Seattle.rb
- "Seattle-style" Ruby
- The Failing Hacker News
- JavaScript
- JavaScript without semicolons
- JavaScript type comparison
- RJS
- Turbolinks
- ActionCable
- Building a wall between Ruby and JavaScript
- CoffeeScript
- TC39
- Transpiling Ruby to JavaScript
- Medium thinkpieces on Ruby's demise
- Domain-specific language
- RSpec
- Appeals to authority
- Perl
- Programmer happiness
- DevOps
- Donald Trump
- Tribalism
- Joining Test Double