00:00:17.169
It's good to see you! You rock! Oh, I'm Matsumoto. My name can be a bit difficult to pronounce.
00:00:23.750
Sometimes, people mess up my name.
00:00:29.900
My family name is Matsumoto, and Yukihiro is my first name.
00:00:35.360
So, yeah, this is huge! I think it's the biggest ever, with 700 people.
00:00:42.170
I'm so glad to be here at Euruko 2017 in Budapest. This audience makes me nervous.
00:00:53.500
I wish you all could understand Japanese, but thank you. I will try.
00:01:00.559
Anyway, we have this huge conference. Last week, we had the Ruby Kaigi conference in Hiroshima, Japan.
00:01:11.380
Next week, we are going to have a Ruby conference in Jakarta, Indonesia.
00:01:18.280
Then, two months later, we are going to have this huge Ruby conference in New Orleans, US.
00:01:41.890
All of these conferences are so energetic. People are excited about learning and creating new technology in Ruby.
00:01:56.340
So who says Ruby is dead? Definitely not! Ruby may not be as trendy as it was a few years ago.
00:02:18.730
However, everyone is still trying to learn new technology. Actually, Ruby is not that new, though.
00:02:25.180
Ruby was the new kid on the block until a few years ago, but it remains quite popular.
00:02:30.940
We can earn a living using Ruby, and it has helped many developers improve their lives.
00:02:46.440
Ruby has survived for the last 25 years. I started developing Ruby in 1993.
00:03:00.379
Next year, we are going to celebrate the 25th birthday of the Ruby language.
00:03:14.870
It really is maturing; Ruby is stable. Compatibility matters.
00:03:24.680
We need compatibility because if I as the language designer change the language for no reason, everyone will scream.
00:03:31.160
Ruby has a lot of technical debt, and I'm sorry about that.
00:03:36.170
Unfortunately, in our pursuit of perfection, we made many mistakes in the past.
00:03:39.310
As you encounter drawbacks and mistakes in your design, your application, or even the language itself, you want to fix them.
00:03:51.000
However, fixing a language is more challenging than fixing typical applications because such fixes can break existing code.
00:03:59.150
And for popular software or languages, fixing does not always work.
00:04:06.380
In the past, we addressed many corner cases in Ruby 1.9 and had compatibility breaks between Ruby 1.8 and 1.9.
00:04:54.400
We're seeing something similar in other languages, like Python. Python 3 fixed numerous corner cases and historical drawbacks.
00:05:20.800
However, the Python community took a long time to migrate, and people are still using Python 2 years after it was declared dead.
00:05:35.500
We have to migrate the whole Ruby community to Ruby 1.9, and the division caused by version breaks can significantly affect the community.
00:06:39.310
For example, PHP 6 attempted to introduce extensive changes but faced rejection from the community, leading to its cancellation.
00:07:20.930
The same situation happened with ECMAScript; people sought compatibility rather than drastic changes.
00:08:12.240
The second system syndrome occurs when people become tempted to start fresh rather than fixing existing issues, and this tendency can be seen in various fields.
00:09:11.100
In software, we need to move step by step rather than trying to abandon everything and start from scratch.
00:10:00.830
Migration from Ruby 1.8 to 1.9 took about five years, comparable to the Python migration from Python 2 to 3.
00:10:57.640
The major contrast between Ruby and Python is motivation; Ruby 1.9 is significantly faster compared to 1.8 due to virtual machine improvements.
00:11:50.260
Ruby isn't designed primarily for speed, focusing instead on usability, productivity, and the joy of programming.
00:12:34.010
No one complains when Ruby gets faster, though.
00:12:43.060
Ruby is about productivity, flexibility, and joy, while performance remains important but not the primary goal.
00:13:25.690
In the last five years, we have made continuous incremental improvements, with new Ruby versions coming out every Christmas.
00:13:38.400
Each release runs five to ten percent faster, and we are proud of that.
00:13:54.420
Despite these improvements being small, they accumulate, thus Ruby's perception suffers as a result of relatively low performance.
00:14:50.870
Therefore, we coined the campaign 'Ruby 3x3,' aiming to make Ruby three times faster.
00:15:27.340
This goal is technically challenging due to the history of Ruby's 25 years and the need for significant improvements.
00:16:18.870
Our first rule of the 3x3 project is regarding memory usage; faster applications usually consume more memory, affecting memory tight environments.
00:17:07.320
The second rule emphasizes that Ruby should not depend on third-party software. After many years, Ruby is still serviceable without losing its stability.
00:18:39.920
Maintainability and continuous evolution are key to preventing stagnation in open-source projects.
00:19:14.820
Thus, our third rule is that the implementation should be simple for better maintainability.
00:20:09.020
Over the years, we've implemented various improvements to capitalize on the mechanics of garbage collection.
00:20:37.010
The fourth rule states comparisons should be made against Ruby 2.0 as a baseline.
00:21:39.780
Lastly, our benchmarks should reflect real-world performance rather than relying on micro-benchmarks.
00:22:01.750
Several community members have created standard benchmarks to reflect real-world behaviors.
00:22:45.500
We aim to improve Ruby's performance through these changes. Additionally, great strides are being made in benchmarking tools.
00:23:09.730
Project optimization is an ongoing discussion. We'll develop a well-defined benchmark repository for consistency.
00:24:10.449
All these combined will help the project leverage improvements.
00:24:58.390
As we build momentum, we’ll consistently aim for more optimization.
00:25:37.510
The concept behind developing EMJIT is to improve performance drastically while ensuring manageable memory use.
00:26:18.900
In closing, I want to thank everyone who has contributed to this community's growth.
00:27:05.600
We need coders and leaders at all levels of development to keep evolving.
00:27:51.420
Your passion fuels our mission to deliver what’s best for Ruby.
00:31:57.790
In conclusion, Ruby is no longer a solitary project. It’s a community effort; let's keep improving together.
00:41:36.540
Hello everybody, I was just wondering, the focus of the next versions!
00:41:45.360
Is there someone's community consideration for flexibility in the language?
00:42:02.520
Yes, while we’re focusing on performance, rest assured we also prioritize flexibility.
00:42:09.090
We’re enhancing features and adding new methods.
00:42:13.290
Our focus includes continuous improvement for the user community.