Ruby

Summarized using AI

Keynote

Mikel Lindsaar • February 20, 2013 • Earth

In a keynote address at RubyConf AU 2013, Mikel Lindsaar discusses the future of Ruby in Australia, focusing on the significance of community and developer happiness. The talk is structured into three parts, starting with an introduction where Lindsaar humorously engages the audience, followed by a deeper exploration of Ruby's strengths and challenges, and concluding with a strong call to action for developers.

Key Points Discussed:

  • Overview and Personal Journey:

    • Lindsaar introduces himself as a key member of the Ruby community and describes his contributions, such as developing the mail gem and running a web development shop.
  • Importance of Community Engagement:

    • He encourages audience interaction and highlights the necessity of building connections within the Ruby community for growth and collaboration.
  • Evaluation of Ruby:

    • Lindsaar argues that while Ruby may not be the fastest or most powerful programming language, its maintainability and flexibility are significant advantages.
    • He emphasizes developer happiness as a unique selling point of Ruby, noting that happy developers write better code.
  • Market Significance:

    • He explains the financial aspects of programming, noting that the demand for Ruby developers is substantial, which assures the language’s viability.
    • Lindsaar warns of potential complacency in the job market but stresses that maintaining high standards is crucial as competition increases.
  • Differentiating Ruby:

    • He highlights the importance of marketing Ruby’s strengths and distinguishing its community-driven aspects. Lindsaar notes that the goal of Ruby is to create happiness among developers, which in turn increases productivity and output quality.
  • Conclusion and Call to Action:

    • Lindsaar stresses the importance of providing real value through projects. He encourages developers to embrace Ruby’s unique qualities and strive for excellence in their work.
    • He concludes with a motivational message for maintaining high standards and contributing positively to the Ruby ecosystem, advocating for collaboration and community support.

Mikel Lindsaar's presentation reinforces the notion that Ruby's future in Australia is bright, thanks largely to its dedicated community and the underlying principle of optimizing for developer happiness, which yields better products for clients.

Keynote
Mikel Lindsaar • February 20, 2013 • Earth

RubyConf AU 2013: http://www.rubyconf.org.au

Mikel Lindsaar needs no introduction to the Australian Ruby community. He is the author of the Ruby E-Mail handling library, mail, and has worked extensively on the Rails ActionMailer component. Mikel is the only Australian member of the Ruby on Rails commit team.

RubyConf AU 2013

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!
Explore all talks recorded at RubyConf AU 2013
+25