Talks

Panel: 30 years of Ruby

Panel: 30 years of Ruby

by James Bell, Steven Baker, Carla Urrea Stabile, Hana Harencarova, Hiroshi Shibata, and Yukihiro "Matz" Matsumoto

The panel titled '30 years of Ruby' held during Euruko 2023 engages a discussion among prominent figures in the Ruby community, reflecting on the programming language's evolution and future prospects. Facilitated by James Bell, the discussion included Hiroshi Shibata, Yukihiro Matsumoto (Matz), Steven Baker, Carla Urrea Stabile, and Hana Harencarova, centering on the significance of Ruby’s 30th anniversary.

Key Points Discussed:

  • Origins of Ruby: Matz emphasizes that Ruby was created for fun and aimed at simplicity and productivity when he pioneered it in 1995. He acknowledges that Ruby was initially not designed for web applications.

  • Panelists’ Journeys with Ruby: Each panelist shared their unique introduction to Ruby. Stephen Baker, first influenced by comparisons to Perl and Smalltalk, began using Ruby around 2000. Carla Urrea started with Ruby in 2014 while working on a Rails API. Hana discovered Ruby through a women's course, excelling in her programming journey since 2015. Hiroshi engaged with Ruby during his university years.

  • Testing Evolution: The panel reflected on how testing culture has matured in the Ruby community, with a collective awareness now commonplace, contrasting this with their experiences in other programming languages.

  • Impact of Rails: Matz and the other panelists discussed the pivotal role of Ruby on Rails in establishing Ruby's professional stature and popularity. Rails helped to legitimize Ruby for larger application development and attracted a broader developer audience.

  • Changing Learning Landscapes: Hiroshi provided insight into the shift in programming languages preferred by students in Japan, noting a trend towards Python and TypeScript over Ruby despite its ongoing use in industries.

  • Future Perspectives: Matz shared his hopes for Ruby's evolution over the next 10 to 20 years, emphasizing the importance of maintaining security, simplifying dependency management, and ensuring backward compatibility to keep Ruby relevant and robust.

  • Community and Dependency Management: The panel reflected on the significant growth of the Ruby community over the past three decades. Hiroshi discussed ongoing challenges with dependency management in Ruby and highlighted initiatives like RubyGems and Bundler aimed at easing these issues.

In conclusion, the panel celebrates Ruby's history while also anticipating its future in a rapidly evolving technological landscape, with an emphasis on community support and continuous improvement in tools and practices within the Ruby ecosystem.

00:00:10.280 Okay, great! Let's get started. Thank you, everyone, for coming. My name is James Bell, and I am a co-organizer of the Scottish Ruby User Group. I have been asked today to facilitate a panel reflecting on what Serge mentioned at the beginning of Euruko. It's 30 years of Ruby and 20 years of Euruko, and we thought it would be interesting to have some people come together to discuss what that means. We're joined by four panelists, and all the way from Japan, we have Matz on a video call. Hi Matz, you're on screen! Thank you for joining us live and for your keynote.
00:00:44.480 What I'm going to do is introduce the panelists, and then I have some questions to help us think about Ruby throughout its history and perhaps a little about its future. Let's start with the speakers you'll recognize here. Starting from my left, Stephen, could you introduce yourself and tell us when you first came into contact with Ruby?
00:01:02.559 Okay, so I first came into contact with Ruby around 2000. I was developing web applications with Perl when a friend told me I should try Ruby, describing it as 'object-oriented Perl.' I wondered why I would want that. About a year later, another friend recommended it, comparing it to Smalltalk and mentioning that it could actually be used to interact with the rest of the world. That caught my attention, and I've been enjoying Ruby ever since.
00:01:48.439 Carla, hello everyone! You might remember me from my disdain for passwords. My first contact with Ruby was quite by accident in 2014 when I started as an Android developer for a startup. Due to the nature of startups, I found myself doing many things, including building a Rails API to serve the application. That was how I got my start.
00:02:25.599 Hana, hello! I work at Kidub. I stumbled upon Ruby by chance while looking for some meetups. I discovered Ruby Monsters, a free course for women teaching Ruby. I stuck around for two years, went through the curriculum, started working with Rails, and now I coach there. My introduction to the community was wonderful thanks to those who started this initiative in 2015, and I now spend most of my day writing code, which I absolutely love.
00:03:08.560 Hiroshi, hello everyone! My Ruby experience started at 25, when I was a student. I got into the Ruby language and developed a simple blog application. I’m still developing in Ruby today, utilizing version 3.3.
00:04:06.159 Matz, let’s turn the question to you. When did you first come into contact with Ruby? During a Q&A from your keynote, you mentioned that Ruby was not originally designed for web applications. Can you elaborate on the guiding principles behind building Ruby and what you initially intended it for?
00:04:49.639 Ruby was created for fun. Back in 1995, it wasn't very popular, and many of us didn’t know it existed. At that time, I used shell scripts often. So, I aimed to create a fun programming experience. We prioritize simplicity and productivity, which is what I think attracted people to Ruby.
00:06:01.479 Stephen, you spoke about RSpec and your great love for it, as well as your contributions. How has testing changed since you first entered the community? I think the main difference today is maturity. Everyone is at least aware that testing exists, which hasn’t always been the case in other programming language communities. In Ruby, there’s a sense of guilt if one isn’t writing tests; that’s meaningful. The tooling has matured significantly. I often struggle when people ask where RSpec should go next since for years it seems the tooling has reached a point where we don't need excessive new features. However, there’s still room for fun improvements.
00:07:25.240 Carla, considering your background in Android, how did you find the differences in testing between those two communities? Well, at the startup, we had to work fast. Testing wasn’t mandatory. In my early days with Android, I wanted to include tests but had many other responsibilities. It was only when I transitioned to Ruby and Rails that I properly embraced Test-Driven Development (TDD). It was a completely different experience that really changed my development approach.
00:08:35.440 Hana, during your learning at Ruby Monsters, how much did testing feature in your curriculum? Yes, we have a bunch of coaches who develop the materials. While I was there, we tried to improve and adapt the exercises, including mini-tests even in the early lessons. For instance, we teach students how to make code fail before they implement it correctly. We return to these concepts throughout the course, emphasizing that TDD is essential.
00:09:30.440 Hiroshi, your development tasks require a lower-level focus compared to many in this room. How does testing fit into your development? [Translation needed].
00:10:47.279 Thank you, Matt, for the translation. I appreciate that live translation is a challenging task, especially in this format!
00:11:01.040 Matz, when you first saw Rails, what impact did it have on the broader Ruby landscape and your perspective on Ruby development? Upon seeing Rails, I was surprised by how attractive it was for building applications. It did a great job presenting productivity effectively. Rails also helped legitimize Ruby for many developers, including myself.
00:12:04.959 I think Rails significantly impacted my relationship with Ruby, giving it a professional stature. I was already using Ruby for my daily tasks, but Rails made it more acceptable to suggest using it in the workplace. It is the reason why I can now earn a living writing Ruby code.
00:13:17.599 For those who arrived later to Ruby, it’s notable that Rails served as an entry point for many developers to begin understanding the Ruby ecosystem. Unlike the early days when Rails was a secondary consideration, it’s now seen as essential, particularly for web development.
00:14:10.920 There’s a fine balance in teaching. It’s important to ensure newcomers understand Ruby without overwhelming them with Rails magic initially. Starting with Ruby before diving into Rails helps achieve clarity on what Ruby really is and how it relates to web development.
00:15:15.959 Hiroshi, you learned Ruby in university. How has the learning landscape changed in Japan over the years? It's a complex situation. Many new students now gravitate toward Python or TypeScript. Despite many companies still using Ruby on Rails, it is challenging to attract new developers considering the industry choices.
00:16:40.320 Matz, how do you perceive the change in the ruby community over the last 30 years? The community began small, but it has grown and evolved significantly. The emergence of the AI era is also bringing new considerations for Ruby developers.
00:17:54.919 Hiroshi, could you tell us about dependencies management? You’ve worked on RubyGems and Bundler. Dependency management is a challenging problem. I aim to simplify the process for developers so that upgrading Ruby versions or resolving conflicts won't feel overly daunting. We’ve made progress, but there's much more to do.
00:19:14.960 Stephen, do you have any memorable stories about dependency management from your early days with RSpec? Early on, we faced many issues, especially when projects depended on RSpec but weren’t necessarily aware of all implications regarding the libraries they were using. The landscape was chaotic with many tools competing for managing dependencies, and I'm grateful for the maturity we've achieved with more standardized tools.
00:20:35.040 Matz, looking to the future of Ruby, what are your hopes for its evolution in the next 10 to 20 years? Maintaining security and improving the ease of upgrading will be paramount. Ensuring newer libraries extract from older versions will streamline dependency management and make Ruby more approachable.
00:21:58.040 Carla, in your blog post about 30 years of Ruby history, what notable insights did you discover? One of the biggest revelations was realizing Ruby is actually 30 years old. Additionally, I was intrigued to learn about significant features introduced in Ruby 3, such as Ractors and performance improvements.
00:23:32.000 Matz, time for a final reflection. You created Ruby 30 years ago; where do you hope it will be in another 30 years? I hope to see Ruby alive and thriving within a supportive community. Dependency management will still be a challenge, but I believe we can achieve significant progress within the ecosystem.
00:25:31.799 Thank you all for participating in the panel. Let's give a round of applause to our esteemed panelists, particularly Matz for joining us from Japan. I hope to see you all next year!