00:00:06.720
So first off, it's a real honor to be asked to come here and talk to all of you by Keith from Ruby Australia. It was quite unexpected. I feel like I'm standing, probably not on the shoulders, but a little bit to the side of Aaron, Corey, and Dave Thomas.
00:00:12.679
The good thing about doing a keynote is you don't have to get your talk checked, and you don't have to actually write a bio saying why people should let you talk. You get to talk about whatever you want, which is fun. So I thought I'd talk about the future of Ruby in Australia because I'm pretty invested in this, and you'll see why in a moment.
00:00:35.600
Let me just begin by saying that I actually managed to come to a keynote talk missing one critical thing, and that's an operating voice. I was actually in America all last week for three days, which is scientifically proven to be the amount of time you need to get over jet lag.
00:00:54.280
I flew back and landed here on Wednesday morning, thinking maybe it would all work out. But here we go, the voice is all sexy and husky today. So consider it a rare privilege. My girlfriend's quite upset; she misses out. But you all get to hear it.
00:01:18.400
This talk is divided into three parts. When I was writing this talk, I wanted to be a bit different, a bit revolutionary, and try something a bit off the rails. So the first part is going to be an introduction where I introduce the talk.
00:01:34.640
The next part will be the middle bit, which is where I delve deeper into the topic, and then, fin, we will have an end. I know, it's amazing! In the words of Apple marketing, I think I've completely revolutionized public speaking.
00:01:53.560
This is all new and completely redesigned. For the first time ever, you're going to achieve public speaking nirvana. It's funny because Apple owns this position in the market. You can search for all things 'all new Apple' and get over 1.3 billion results.
00:02:19.959
So without further ado, let’s not quite start yet. Let’s wake up because I know this is the morning after the night before. You might notice my voice is affected by it. For example, this morning when I woke up and tried to say good day, all that came out was.
00:02:40.319
I've also managed to OD on limp this morning. I had to show Aaron what limp was, and he thought it was pretty cool. What I want to do is create some communication, so yesterday in Patrick's talk, you were asked to introduce yourselves to someone.
00:03:13.840
What I want you to do is a speed drill. In five seconds, find three people in the room that you don't know. If you have to yell hello at them to get their attention, that's totally fine. But you need to do this within three seconds. Ready? Five seconds—go!
00:03:54.480
So this is RubyConf. Now let's actually do the beginning: Who am I? I've done some open source work, but I plan to change my title to Aaron Patterson or Cory Haynes, maybe even to a cat who's warm and fuzzy. I developed the mail gem, which was interesting because mail was my first attempt at serious programming in Ruby. I had done some small tasks and written a couple of websites in Rails, but everyone knows that’s not really serious programming.
00:04:56.470
I decided I would actually learn how to write Ruby because I had an app that needed sending mail. Michael Kowski mentioned that T-Il is a great spam filter because it was around before the mail gem and it's still around. I still maintain it, and T-Il has this wonderful property: if it encounters a malformed email, it just crashes.
00:05:57.480
So it was a really good spam filter because all spam needs to do is send an invalid email through it, and the spambler hopes it will crash your whole app. Aaron suggested a better way: begin-pass-email rescue it’s spam trash. This, however, resulted in losing all the Outlook emails that came into the system.
00:06:43.440
So I thought, how hard could this be? There are only a few RFCs for mail to follow. Two years later, we released mail. But here's the humbling part: it has been downloaded over 122 million times! There are about 300 forks and 200 contributors to that project, which really humbles you.
00:07:16.000
I also run Interactive, a web development shop. Most of my amazing team is here today—scattered around the room in their black t-shirts. Feel free to talk to them. We’re always looking for good people.
00:07:51.679
I also run Still Alive, which is referenced on your lanyard, by the way. There is a 50% off promo code on that lanyard, so if you sign up or even if you're an existing customer, put in that promo code and you'll get 50% off.
00:08:01.679
What Still Alive does is check the functionality of your website, and we’re launching Status Hub—this is a status page app for applications. Instead of using Tumblr, Twitter, or WordPress for updates, this will inform your users and manage all that information.
00:08:12.800
So now, let’s revolutionize the beginning again—I said three parts! We can’t have a fourth part. So we need to revolutionize it because that’s really not a new product; it’s only all new.
00:08:26.880
Who here has seen that Apple iPhone 4 parody ad? Isn’t it just incredible? If you haven’t seen it, Google it. It's called The Banned iPhone 4 Ad. Now, what is the future of Ruby in Australia, and why should you care? There are so many of you here; it’s not like Ruby is struggling for traction or like you guys are worried about your paychecks.
00:09:06.640
However, if there is someone here who is worried about that, please find one of the 45 recruiters hovering around this room, ideally Steve from Look Ahead. You won’t be waiting long. The positions for even beginning Ruby developers are plentiful.
00:09:41.800
But why should you care about this? If my voice really gives out, I'm just going to start doing interpretive dance, and I won’t take offense if you leave at that point because I’ve only been practicing interpretive dance for four years.
00:10:16.480
So, what determines the future? What determines the future of anything in this economy? Unfortunately, it’s cash—cold hard cash. Someone has to be willing to pay you to write Ruby, even if that’s not for profit. Someone is paying Aaron full-time to work on Rails; there must be a commercial reason behind that.
00:10:53.200
We cannot rely solely on cash; if we don’t get cash, we might all have to choose another profession. A profession, by definition, is something you do in exchange for a service. And your profession is not a dirty word.
00:11:19.560
Today, I’m going to talk about this issue. While you might think it’s solved—it looks like there are many Ruby developers in this room, and this event is sold out—please humor me. This leads us to the middle bit.
00:12:02.240
The market asks, 'Why should I use Ruby?' Why should they use Ruby? Why should your clients use Ruby? In this talk, when I refer to a client, I don't just mean someone that engages you as a freelancer who pays you money. A client could also be your boss, another business unit, or even an open-source community.
00:12:42.720
Now, is Ruby the most powerful language in the world? No, there are more powerful languages like assembly, Python, PHP, and XML. Yet power is subjective; it’s impossible to come to a consensus. Ruby handles many tasks well and is pretty good overall.
00:13:04.240
Speed? No, speed is not the reason you should use Ruby. There are faster languages out there, such as Java or assembly. However, JRuby and Rubinius are making incredible progress in this area, increasing Ruby's performance, almost to JVM levels.
00:13:35.160
But here's the thing: Ruby is an interpreted language, and it can never be as fast as compiled languages. Flexibility? Ruby is pretty flexible, but so is Lisp and many other languages. Maintainability? That's a strong point; it's easy to read and maintain.
00:14:04.359
You can impress clients in sales meetings about Ruby by showing them rake tests or RSpec and saying, 'See all those green dots? Those signify the tested features of your system.' It’s a good point.
00:14:37.200
So maybe maintainability is a key reason to choose Ruby, but that alone might not be sufficient. Developers? There are companies looking for Ruby developers everywhere. However, consider that there might not be enough developers in the short term, but that's a temporary issue.
00:15:07.040
What we need to be cautious of is if a surplus of jobs means developers might become lax in their work because jobs are easily available. This talk does contain some serious stuff.
00:15:54.440
So, why should I use Ruby? In fact, why should I continue to use Ruby? I recently had a prospect discuss hiring a Ruby developer, and they decided to rewrite all their Ruby code in Java because they couldn’t find a Ruby developer to fill that position.
00:16:24.640
Now, for them, it made sense to rewrite because they have a Java team and their lead Ruby developer left. It represented about 15% of their entire application, and it wasn’t worth the hassle.
00:17:03.240
So, we can’t just win ground and assume we’ll keep it automatically—we, as a community, need to ensure it’s maintained. The question becomes, why is Ruby better? What makes it the best language? But you know what? You shouldn't care.
00:17:34.800
Never claim you’re better; this leads to conflicting opinions. When someone claims they’re better, that prompts an instinctive reaction to rebel against that assertion. However, it is important to distinguish between better and different.
00:18:05.320
For example, you can go onto sites like Hacker News and make a statement claiming that language A is better than language B, and it could prompt a month-long discussion. What we should try to do as the Ruby community is to focus on difference—what makes Ruby unique compared to other languages.
00:18:37.720
The future of Ruby in Australia boils down to a marketing problem—not a technical one because the technical side of Ruby is solid. But we need to define how Ruby is unique, and we should market that uniqueness.
00:19:06.680
Perhaps it’s Matt, or DHH, who makes Ruby special, or even our community. Gems and Rails Girls also enhance its uniqueness. The real differentiator, however, is the goal of Ruby, which is to make programmers happy.
00:19:40.159
This is not just genius; it’s rather insane! I often use this point to explain why Ruby is great to clients. I believe that no other programming language has programmer happiness as a goal.
00:20:16.160
Here’s the catch: happy developers produce better code. This isn’t just philosophical talk; there’s actual research showing that improving developer happiness directly boosts productivity. It’s about autonomy, mastery, and purpose.
00:20:52.720
Developer happiness is fundamentally linked to production—if developers are productive, they feel valued. Matt’s vision with Ruby was to optimize for happiness and boost productivity. He had the around 20 years of data showing that this actually benefits organizations.
00:21:23.520
As developers, we also need to produce valuable outputs—real products for real users. If you’re producing efficiently but no one is using your product, it defeats the purpose. You need to get that product into the consumers’ hands.
00:21:54.159
What happens is, meaningful exchange happens when that produced item has real value attached to it, whether it's monetary, informational, or simply thoughtful. Remember, it’s not about delivering the neatest code; it’s about delivering an exchangeable product that fulfills a real need.
00:22:33.920
To illustrate, example exchanges of value can be: creating a website that earns money; earning the client's attention; or offering gratitude, showing that you’ve gone above and beyond while fulfilling the given contract.
00:23:14.680
This could be delivering a prototype that catches interest and even attracts funding or promoting the idea that builds a community around what you've developed. Therefore, make certain the products you create have a clear and robust value to clients.
00:23:57.320
Eventually, we arrive at the end of our three-part talk. Why will Ruby continue to thrive? Because it optimizes for developer happiness. Happy developers produce quality code in volume, and valuable final products yield satisfied clients.
00:24:38.440
So, give your clients what they truly need. Don't just deliver what they want; offer them a lot of it. Leverage the unique capabilities of Ruby and write code while enjoying it. Be your best developer, and very soon, you won’t want for work.
00:25:19.200
This brings us to a newly revolutionized end. Prepare yourself to defend the right to deliver an invaluable final product. If you take on a project that can’t be achieved within the given scope, don't jump in blind.
00:25:56.920
Negotiate from a position of power and clarify that you can attempt the project, or you can narrow down the critical aspects, but you can't compromise on quality. My teammates are great at seeing the whole perspective of a project, and they make my life as a manager much more enjoyable.
00:26:25.600
Let’s become known as a unique, productive, and happy language. We offer a welcoming community for developers, and I believe Ruby will continue to thrive as long as we collectively embrace our unique qualities.
00:27:02.960
Thank you very much for being here today!