00:00:11.629
Well, good morning, everyone.
00:00:25.699
I’m Yukihiro Matsumoto, the creator of the Ruby language. I'm very happy to be here because EuRuKo is one of the most diverse Ruby conferences. People come from many countries, and we all have different native languages like I do in Japanese. Most of you do not speak Japanese, and yet here we are, coming together with different backgrounds, histories, and preferences; but we share a love for Ruby.
00:00:48.200
Today, we celebrate the 25th anniversary of Ruby. I started developing Ruby on February 24, 1993. On that day, I named it Ruby. The name is quite important; software is some kind of virtual entity, and I wanted the name to reflect that concept. That’s a bit of background. I first conceived of Ruby for fun because I had a great interest in programming languages since I was a kid. I actually started programming when I was fifteen.
00:01:25.709
Most of my friends had a desire to create software like games or applications, but rather than wanting to create software, I wanted to design my own programming language. However, back in the 1980s, we had a problem: there was no internet. We could only learn from books and magazines.
00:01:38.129
Knowledge was very limited for high school students, so I couldn't create my language. Instead, I attempted to write ideas for my programming language on paper. Ten years later, I studied computer science at university. After graduation, I worked as a software developer, where I honed my skills. In 1993, I decided to create my own programming language, hoping to create a language like Perl but better.
00:02:14.129
The reason I created Ruby wasn’t specific; I just wanted to create a language. I had significant experience with C programming, so I wanted to build something unique. It’s nearly impossible to create a language that surpasses C due to its dependencies on operating systems and target architectures. Instead, I focused on to scripting, utilizing languages like shell and Perl.
00:03:01.889
I aimed to develop a better scripting language that I could use for my tasks. I wanted to dogfood my product, combining concepts from Perl and Lisp to create Ruby. At the time of the Ruby's initial release, there was just one user: me. However, by December 21, 1995, I made Ruby available on the Internet.
00:03:38.129
A few weeks later, I created a mailing list to discuss the language, and many people joined. Within two weeks, we had over two hundred members. By the year 2000, the number of Ruby users had surpassed ten thousand.
00:04:13.770
In 2001, we held the first RubyConf in Tampa, Florida, with over thirty attendees. Fast forward to last year as we had RubyConf in New Orleans, USA, hosting around 700 attendees, and this year I'm unsure how many we have, but I hope it’s even more.
00:04:54.530
I wish I could speak several languages, including German. I’m not sure how many attendees we have, but it’s at least a few hundred. The total number of Ruby users worldwide is probably over a million.
00:05:06.100
We went from just one user to over a million users! Ruby has become popular and is now used everywhere—from small projects to large enterprises. The numerous publications about Ruby have made it stable. As a language designer, I’ve made mistakes, just like many others in this field. I want to fix those mistakes, and over the years, I’ve made significant changes.
00:05:56.670
For example, over ten years ago, I introduced Ruby 1.9, which was not compatible with Ruby 1.8. Other languages, like Python, have experienced similar issues; Python 3 is significantly different from Python 2, leading to struggles with adoption. The same happened with PHP, which faced challenges with PHP 6, leading them to reset to PHP 7. Major programming languages sometimes see shifts that don’t gain traction.
00:06:47.800
The community surrounding Ruby must continue to grow, as any minor change can cause major backlash. Imagine if your application crashes due to a new Ruby version. Users want compatibility to keep their applications running, and despite improvements, maintaining backwards compatibility is crucial to prevent alienating the user base.
00:08:09.589
We cannot operate under an expectation of loyalty as it's an open-source community. Users choose Ruby for various reasons, but they can easily transition to a better alternative if they find one. Therefore, as creators, we must keep the community engaged. If we don’t, users may shift to other languages, and we risk losing our community.
00:08:48.070
We must keep moving forward with Ruby. Progression is essential otherwise; the language and its community will not survive. It’s a contradiction to keep compatibility without hindering progress. As a community, we can't stop swimming; we must continuously progress to stay relevant.
00:09:47.900
Once again, we face challenges like those seen with other programming languages during transitions, such as Python 2 to Python 3, where many users remained on the older version despite the improvements. Creating and maintaining a programming language is intricate; we must not let our users down with sudden changes or incompatibilities that might vastly affect their applications.
00:10:54.360
As we strive for stability and enhancements, Ruby must balance between adding new features and catering to existing users. Our goal in development is to ensure that users don’t feel punished for those changes. Sometimes, fixing errors can inadvertently affect users negatively, which is not ideal. It’s vital for us to maintain compatibility and nurture the community.
00:11:56.630
In terms of performance, Ruby isn't the fastest or the most powerful language, but it's good enough for most cases. We often use Ruby because it's comfortable—thanks to its user-centric design. Being nice brings power, so I encourage everyone to be supportive and consider the experience of potential users.
00:12:58.210
Looking forward, we need to focus on portability and improvements in performance and productivity for the Ruby language. However, compatibility remains paramount—not because we fear change but because it fosters progress.
00:14:02.460
Our community isn’t just about the language; Ruby is also about the libraries, gems, and applications constructed upon it. By working together, we can make Ruby even better. In summary, let’s strive to be nice to each other, as it can create a stronger and more supportive community.
00:32:49.430
I see you're doing a great job, but I have some bad news: the break is short, just 10 minutes instead of 15, so please be quick.
00:33:11.520
You can drink from the tap here in Vienna; it's perfectly safe. Please use reusable cups to help save the world. See you later!