Transcript

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
> Brandon: Ok. While
00:27
Justin is setting up. This is Justin
00:30
Searls. Does everybody know Justin? Hi Justin!
00:33
> Justin: Hello.
00:36
Are you guys ready to hear a talk?
00:39
You believe that you're
00:42
ready for my talk?
00:45
Because I guarantee you are not.
00:51
> Brandon: Alright. So here is
00:54
the real fact about someone who is not Justin
00:57
This person, joined the Army
01:00
to rappel out of helicopters and shoot wire
01:03
guided missiles at tanks. It's a true
01:06
fact, but it is not true about Justin so far as I know
01:21
So, most people don't know this about Justin
01:24
But,
01:27
he tweets. On the Internet
01:30
This is a little know fact about Justin
01:33
Is that he says things on Twitter
01:36
> Brandon: And, he, umm
01:39
> Brandon: Alright, I have a fake
01:44
He once tweeted a rant so powerful that he made the
01:47
fail whale cry
01:50
> Justin: This is a young crowd. I don't know if
01:54
That was back when Twitter was written with Ruby
02:00
> Brandon: Everybody, Justin Searls, who is
02:03
really great.
02:09
> Justin: Alright, just gotta get set up here. It's a
02:12
complicated talk
02:15
One complication is that I'm not going
02:18
myself.
02:21
I'm going to give this talk as somebody else.
02:27
Alright, just gotta button this up
02:30
And, we're off!
02:33
Woo!
02:36
What a great room, Austin—hands down—
02:39
one of my favorite cities. I was telling
02:42
how TREMENDOUS the crowds in
02:45
Thank you Brandon, he's a really nice
02:48
Alright, please
02:51
live-tweet all of your grievance to
02:57
We good? Alright.
03:00
Oh No!
03:03
> Audience: You got a bum mic!
03:06
Oh, right, yeah
03:09
This is a
03:12
dongle conspiracy.
03:15
It's rigged, yeah!
03:18
Now it just fell out
03:21
We're going to start this one
03:27
Here, I'm going to try this way. Ok, so
03:30
let's just call that a do-over
03:36
I just ordered the new MacBook Pro, and so
03:42
It's just Apple calling to me
03:54
Woo, alright! Got all the nerves out
03:57
So, yeah, everyone please live-tweet
04:00
your grievances to @searls and I will
04:03
most terrible things that you say.
04:06
developers, my company, Test Double,
04:09
are the best of the best
04:12
I stand before you today
04:15
to deliver (It's okay, it's intentionally
04:18
I stand before you today
04:21
message. Ruby's heroes
04:24
Ruby
04:27
is a SPECTACULAR language, but
04:30
other language, Ruby has
04:33
But today their ineffective
04:36
threatens the very survival
04:39
who can save it. Together
04:42
our language back. This goes all
04:45
the way back, folks, to
04:48
Now in the beginning (unintentional black)
04:51
There was Matz.
04:54
Some people, tell me
04:57
Which, I think, is fantastic
05:00
The Japanese love me
05:03
I am told he's very nice, but that
05:06
for him to become Ruby King. Matz
05:09
weak it took a decade for Ruby to
05:12
Seriously! And thanks to Matz's weak
05:15
leadership, we became dependent
05:18
heroes. First, came pragmatic Dave
05:21
Thomas and Andy Hunt, who wrote
05:24
boring) book about Ruby and pickaxes
05:27
Now this book showed how
05:30
Ruby is, but Prag Dave and Prog Andy
05:33
lined their pockets building a corrupt
05:36
that today is the biggest source of
05:39
biased technology books on the planet
05:42
Later, "cheeky" Chad Fowler and
05:45
Weirich—so called "community
05:48
went on to create a national ruby
05:51
they started a service called RubyGems
05:54
spread their lies and propaganda
05:57
easily. "Jolly" Jim went so
06:00
far as to make a CORRUPT tool called
06:03
force us to build gems how
06:06
The corrupt heroes created RubyGems
06:09
open borders, letting in hippies like
06:12
Whacky _why and D-List DHH
06:15
And they've been flooding
06:18
_why acted like the purpose
06:21
to make art—he had no respect for
06:24
He yanked all of his gems, which was
06:27
totally unprofessional and NOT NICE
06:30
Total Disaster. D-List DHH was so
06:33
desperate to have an MVC
06:36
that he ported Java's Struts
06:39
And, personally, I prefer frameworks
06:42
that weren't ported
06:45
But soon, things settled down.
06:48
receded. Ruby entered its golden age
06:51
Developers were unbelievably
06:54
In no time at all we built hugely
06:57
companies (and also Daily Deal
07:00
Coupon Sites) and it was
07:03
all thanks to Ruby. Ruby was
07:06
winning. Every new startup was using
07:09
if their staff had no clue
07:12
didn't matter, Ruby's poll numbers
07:15
Every developer on earth was either
07:18
jealous of people writing Ruby. And
07:21
those days. I wrote a lot of
07:24
back then, let me tell you. In fact,
07:27
that my Ruby was the cleanest code
07:30
We need to get back to that Ruby
07:33
But soon, the establishment
07:36
wanted to change Ruby.
07:39
They wanted "Enterprise" and
07:42
weak-kneed heroes were all
07:45
"Jumpy" José Valim worked
07:48
thread-safe. The traitor, Zed Shaw,
07:51
made the Mongrel server fast
07:54
Aloof Yehuda made bundler, a hostile
07:57
takeover of your dependency
08:00
And everyone's favorite,
08:03
Spent years of his life
08:06
rewriting the slow and
08:09
for Rails's ActiveRecord,
08:12
create MASSIVE enterprise
08:15
so fast that we didn't
08:18
if we should. But now that Ruby
08:21
is mature, your heroes
08:24
you for other languages.
08:27
B-Tier heroes too low energy to
08:30
like Terence Lee and
08:33
With our heroes gone
08:36
Ruby isn't winning anymore
08:39
language and it's time to take action
08:42
As a result, I, Justin A. Searls am
08:45
calling for a total and complete
08:48
Heroes switching to Elixir
08:51
can figure out what the hell is going on
08:57
We need to start planning for
09:00
And if you support me, we can
09:03
Make Ruby Great Again
09:06
We have to look beyond
09:09
phony loyalty to a language
09:12
is a disgrace. And you know the
09:15
Heroes have known this for
09:18
Here's what a left-wing, agile
09:21
school called Extremist Programming
09:24
They're not willing to call it that
09:27
Extremist programming. Here's what
09:30
had to say. "Heroes go it
09:33
alone, working long hours
09:36
accomplish what others think is
09:39
The result is unrealistic expectations by
09:42
management and inevitably results
09:45
SPIRAL as the whole team falls further
09:48
and further behind. That's the ballgame
09:51
folks. Heroes knew that they
09:54
death spiral and yet they did nothing
09:57
Now some of our Ruby heroes,
10:00
are good people. Many did
10:03
decent work for the language,
10:06
addicted to your retweets
10:09
fees, they closed the door on us. Ruby
10:12
heroes became the ultimate insiders
10:15
Heroes hid behind shadowy
10:18
"The NIH" to explain why we should
10:21
gems instead of writing our own. They
10:24
led our thoughts, and they told us
10:27
that we couldn't be heroes too.
10:30
Those same heroes abandoned us for
10:33
newer, more attractive languages.
10:36
become helpless without them.
10:39
And by the way, somebody needs to
10:42
to say it. Ruby hero, D-List DHH
10:45
was the WORST abuser of SemVer
10:48
in the history of programming
10:51
And rails-core was a total enabler
10:54
let me be clear, if Rails won't
10:57
lock down their versioning,
11:00
them up.
11:03
The establishment
11:06
venture capitalists that once
11:09
are now shipping our jobs
11:12
nobody makes things in Ruby anymore
11:15
We need to send them a message
11:18
your power. They know that I'm the
11:21
bring jobs back to Ruby. The venture
11:24
capitalists in their ivory
11:27
open plan offices have rigged
11:30
the mainstream media
11:33
against Ruby, if you open a hacker
11:36
newspaper the entire front page
11:39
app in anything but Ruby
11:42
Elm, Clojure, Rust, and of course
11:45
Node.js and React. But for Ruby
11:48
to survive, these other languages
11:51
It's as simple as that. Our
11:54
have let these other languages
11:57
some Ruby heroes are trying to
12:00
secret that they are in fact only
12:03
That they falsely claim that I have
12:06
Rubocop report.
12:09
These are bald-faced lies
12:12
release my full, unabridged
12:15
But, unfortunately, I am currently
12:18
under a code audit, which
12:21
for some reason happens to me
12:24
I'd be stupid to release them until
12:27
the code audit is complete. Only
12:30
Rubocop report while under audit.
12:33
But I would gladly release
12:36
as soon as Node.js returns the
12:39
30,000 deleted e-mails that
12:42
says were lost because I
12:45
of a Promise chain
12:48
Unbelievable. Node.js
12:51
Such a nasty runtime.
12:57
Our heroes left us out in
13:00
guarantee I know more about
13:03
than all of Ruby's heroes put together
13:06
I'll go to the other languages and
13:09
Ruby can start winning again. In fact
13:12
I've learned that Ruby hero
13:15
is the founder of Elixir
13:18
And because he's a hero,
13:21
Totally shameless. Jumpy Jose
13:24
he has a secret plan to destroy Ruby
13:27
But, can anyone imagine
13:30
It doesn't look very productional to me
13:33
You know, I saw
13:36
some Elixir when I walked by a coworker's
13:39
It didn't feel as
13:42
free as Ruby. Ruby was great
13:45
We didn't need heroes to tell
13:48
age, we felt free to write whatever
13:51
wanted. And we need to realize
13:54
stranger together.
13:57
A lot of people don't know this,
14:00
weirdness. Our heroes' failed
14:03
weird reserves at historic lows
14:06
use code words like "mature"
14:09
creativity that they deem
14:12
like "Shady" Sandi Metz would
14:15
"Syntactically Correct" way to write
14:18
I talk to a lot of developers
14:21
of all of this syntactical correctness
14:24
Ruby heroes called our
14:27
creativity weird because
14:30
wouldn't need them anymore. They
14:33
We didn't need them. Anyone
14:36
gems. In fact, I made two
14:39
Tremendous gems. Code climate
14:42
loved them. If we're going
14:45
to save Ruby, we need to rediscover
14:48
first step: stop listening to
14:51
Other than me. Keep listening to me.
14:54
Some people are saying—and I'm not
14:57
I've been told—that we should
15:00
Heroes like Chicken Tenderlove,
15:03
Ryan Davis, Cranky Gary Bernhardt
15:06
And by the way, since Chicken
15:09
are the founding members of
15:12
Something needs to be said,
15:15
are too afraid to call
15:18
Radical Parenthetical Terrorism
15:23
It's just horrible More
15:26
omitted and killed by Rubyists in
15:29
in the world. And our heroes
15:32
did nothing. If you support me
15:35
I will deport Seattle.rb to
15:41
Without heroes, we'll all need
15:44
to make Ruby great again. Post
15:47
Record a screencast. Start a weird
15:50
And stop reading the lies in The
15:53
that tell you Ruby isn't great.
15:56
all of them. And I've been doing
15:59
Ask anyone, they will tell you
16:02
writes the wordiest blogs and
16:05
screencasts. And have you seen any
16:08
Nobody makes more slides at Ruby
16:11
than me, nobody. I build the most
16:14
But I'm just one person and
16:17
to slow Ruby's demise. We all
16:20
step up and say what's really
16:23
Write your own gem. You
16:26
publish on the blogs. And if you're
16:29
Argue about it with others
16:32
or on The Failing Hacker News
16:35
can't show that Ruby is a strong
16:38
languages will keep walking all over us
16:41
Back when Ruby was winning
16:44
If someone wanted to learn how to
16:47
assume that they should learn
16:50
to program computers and don't even
16:53
know. These smug, elitist
16:56
languages are ignoring you and
16:59
and to make Ruby great again, we
17:02
have to make deals with
17:05
Starting with the most popular:
17:08
JavaScript.
17:11
JavaScript is a total
17:14
lightweight. Like a lot of you, I
17:17
understand why JavaScript is
17:20
You want my opinion?
17:23
Tops.
17:26
Maybe a 5, if it loses the semi-colons
17:31
And JavaScript is very weak on types
17:34
Unbelievable how weak on types
17:37
two Dates? I will be very strong
17:40
on trade with JavaScript,
17:43
wealth. Wealth like you wouldn't
17:46
We have conventions over
17:49
the path of least surprise, which,
17:52
a beautiful path. The path of
17:55
Our weak and ineffective heroes foolishly
17:58
tried to hide JavaScript from us for years
18:01
RJS. Turbolinks. ActionCable
18:04
This weak, isolationist strategy
18:08
And is leading to Ruby dying out
18:11
And that's why I propose we go to
18:14
good leader would do: negotiate
18:17
Ruby can start winning again
18:20
Instead of continuing
18:23
policies of mixing JavaScript into
18:26
HTML, I am going to Build. A. Wall
18:30
Between our Ruby and our JavaScript
18:33
Oh, don't worry, we'll make JavaScript
18:36
pay for all the HTML.
18:39
Ruby will provide—quiet generously
18:42
APIs, but JavaScript is what
18:45
Ruby web apps and it will pay to fix it
18:48
We need to be tough on JavaScript
18:50
but I'll also be very very fair, much more
18:53
fair than JavaScript has been
18:56
Look what they did last time we
18:59
By giving them CoffeeScript
19:02
They stole all CoffeeScript's good ideas
19:05
And they totally choked!
19:08
is a joke. Their arrow functions
19:11
JavaScript's secret cabal
19:14
the TC-39, is a total disaster
19:17
Unbelievable. And now some
19:20
Have claimed that my ultimate
19:23
goal is to transpile Ruby into JavaScript
19:26
These are heinous lies and
19:29
from the truth. And, besides,
19:32
JavaScript wouldn't be my first choice
19:37
Nice try.
19:40
So people say that Ruby's dead,
19:43
Aren't you? Look around you in
19:46
today because you believe Ruby
19:49
But it doesn't feel safe to
19:52
If you're caught using Ruby
19:55
attack your first amendment rights
19:59
But we can fight back
20:02
There's a silent majority that
20:07
And the system is rigged, folks
20:09
The establishment venture capitalists
20:12
has a future. They want teams
20:15
massively complex micro Node.js
20:18
services and React web site apps
20:21
for their unproven startups in
20:24
their pyramid funding schemes.
20:27
They want to ensure that it takes
20:30
taxi car app. And numerous years to
20:33
sync a directory of files to a server
20:36
The establishment venture capitalists
20:39
development is, but they don't
20:42
They want it to be huge.
20:45
Their entire empire is threatened
20:48
I'm in business, I know this better
20:51
The VCs are so desperate that
20:54
old repos—horrible people.
20:57
And so my staff have asked me that I make
21:00
before we continue:
21:03
ahem I apologize
21:06
for using domain specific
21:09
project from 11 years ago
21:12
It was a foolish decision.
21:15
My use of Ruby DSLs has become
21:18
from the issues that really matter
21:21
In truth, it was just locker room code
21:24
That's all it was
21:26
Programmers when working on private
21:29
DSLs all the time. In fact, even
21:32
Tenderlove used RSpec on a project
21:35
as last year. Truly disgusting.
21:38
And I gotta tell you I don't
21:41
I think Ruby's still really, really popular
21:44
Everybody I talk to loves Ruby
21:47
use Ruby all around the world
21:49
But Ruby teams are just too busy
21:52
and making tons of money to stop
21:55
comment about it on Hacker News
21:58
And, if after all I've done, you
22:02
This will have been the biggest
22:05
energy in my life. If you don't save
22:08
Ruby after this, Austin, I'll be honest
22:11
I'll never forgive you.
22:14
But irregardless, I will totally and
22:17
graciously accept the result of
22:21
next programming language.
22:27
OK, hat's off!
22:30
Whew!
22:36
I can think so much
22:39
more clearly now
22:42
Let's bring it back to reality
22:45
Where I co-own a serious company
22:48
And which hopes that you
22:56
So there's a good chance that
22:59
Do I think that heroes who
23:02
Of course not. Some of my
23:06
Ok, seriously, I'm done.
23:10
I was—like Trump—obsessed with being
23:13
validated by others and I made it my
23:16
myself. I wanted to see what it felt
23:19
it's been a fantastic experience, if
23:22
But, when I hear that Ruby isn't
23:25
It's our outsider/insider system
23:28
that always stood out to me as wrong
23:31
Why is there this huge divide by
23:33
and the people who consume them?
23:36
in the grand scheme of things, and
23:39
relatively big fish. So, that
23:42
But, I don't think we've done the job
23:45
problems our system of Ruby heroes
23:48
Because, I can tell you, I've met dozens
23:51
in my travels, and I've seen what the
23:54
that comes from looking to a small,
23:57
solution to every problem can cause
24:00
Worse, we have this habit of
24:03
they're very common in Ruby and
24:06
"Katie wanted to do this, but we told
24:11
…to do it that way instead". These
24:14
suck the joy of programming. "Sam,
24:17
module of plain old Ruby objects,
24:20
deleting them and showing
24:23
Now Trump-Searls has a point
24:26
Because, as Ruby became mature
24:29
Thoughtleaders run on retweets and
24:32
maturity is a known retweet allergen
24:36
So they moved on. And early on,
24:39
assumed when they came to Ruby—
24:41
keeping relevant was going to be
24:44
do nothing, I think that eventually Ruby
24:47
cute-little scripting language status
24:50
So even if we want to to replace our
24:53
heroes with new heroes, I don't think
24:56
not the hottest language in the world
24:59
tons and tons of new talent. Today,
25:02
So we have to look within
25:04
Ruby has its work cut out for it
25:07
all become heroes than just select
25:10
So, it'll be a steep climb, but honestly
25:13
You look at languages like
25:16
have really fast async I/O, and that's
25:19
Rust and Go are just really fast, period
25:22
and that's something that Ruby could
25:25
popular languages, there are
25:28
we love about Ruby. Ruby still has
25:31
We have tools and culture that's
25:34
programmer happiness and
25:37
obviousness via the path of least
25:40
through well-considered conventions.
25:43
value-based test suites. All
25:46
that represents a niche that's
25:49
even if it's currently out of fashion,
25:52
application development is not
25:55
scale; if anything all of these
25:58
kind have taken Ruby's performance
26:01
Neither is the hardest problem having
26:04
In fact, dependency churn is this
26:07
on a lot of teams' productivity.
26:10
been long-term maintainability
26:13
suited, I think, to show
26:16
more maintainable applications. Ruby's
26:19
gives us a certain empathy
26:22
Ruby helps Rubyists create
26:25
tests. And the conventions are strong
26:28
portable from project to project
26:31
We're already seeing a ton of legacy
26:34
Project teams are asking
26:37
"How did we get to this big ball of
26:40
and understandable Ruby could
26:43
potential answer for teams like that
26:46
final plea is that if you believe
26:49
for some reason, tell people about it
26:52
maintainability, even if it's a boring
26:55
ecosystems. Screencast tutorials
26:58
Even if other people have said them
27:01
different. Find an organization like
27:04
Girls Code and show them the gentle
27:07
syntax and community. And I don't
27:10
the Failing Hacker News, but if
27:13
stand up for Ruby. Hacker News drives
27:16
the tech that companies use,
27:19
And Ruby is rarely mentioned there
27:22
anymore, because it's not new and
27:25
Turmp-like tribalism. It's not us-
27:28
-vs-them. Let's all be polyglots.
27:31
draw in outsiders. So when you work
27:34
empathize! Be kind. Don't assume
27:37
have had the same lessons that you
27:40
valuable things to teach them just like
27:43
So, anyway, that's what we try to do
27:46
at my company Test Double. We like
27:49
with people working in other languages
27:52
where they already are. And we're
27:55
So if you want to work with us, Test
27:58
always interviewing. If you want
28:01
or Make JavaScript Great For The
28:07
Shoot us an e-mail at
28:10
It's a real easy conversation. We
28:13
We just talk to you about who you are
28:16
And then tell you about how we work and see
28:19
you wanna do.
28:22
So I'll be around all evening. I got
28:25
a bunch of Test Double stickers and I
28:28
Great Again stickers, some are already
28:31
in the sticker table in the back, but I've
28:34
here, so I hope I get a chance to meet
28:37
Thanks so much for keeping it weird
28:47
> Brandon: Thank you Justin. That was
28:50
problematic.
28:56
I don't think I'm a millennial, because
28:59
bad at detecting the line where people
29:02
ironically co-opting populist
29:05
actually just using it.
29:08
Thank you Justin,
29:11
You're a good dude.

Searls referenced a number of historical figures and events specific to the Ruby community in the talk. The following is a collection of links leading to more information on many of them:

M

Hash An icon of a hash sign Code Name
Agent 000