00:00:14.100
Good morning, everyone! Thank you for being here.
00:00:19.510
I always feel nervous before you every year. This is Ruby, after all, the canonical Ruby conference, and this is the 19th conference.
00:00:28.119
Thank you for coming. I am very glad to see so many first-timers. Welcome!
00:00:37.180
I’m here to talk about Ruby. This is a Ruby conference, and as you know, Ruby is quite a popular programming language. It ranks 11th in the TIOBE index out of 150 programming languages, and 8th in the Red Monocle index. It remains quite popular.
00:00:54.280
However, nothing lasts forever, and we must be vigilant about potential extinction. So what makes Ruby great? I believe the best aspect is the pleasure of programming. In the 1990s, programming language designers focused heavily on efficiency, as computers were relatively slow back then. However, as a hobby programmer, I started creating Ruby in 1993, emphasizing a focus on humanity.
00:01:20.709
Most programming languages at the time prioritized machine performance over human enjoyment. I was a professional programmer with a hobby of designing programming languages, which led me to create Ruby just for fun. I didn’t expect such a large audience for it.
00:01:40.049
Since Ruby was a personal project without customer requirements or specifications, I was free to focus on what I enjoyed. I enjoyed implementing Ruby and designing the language, and in that way, I think I catered to enthusiastic programmers.
00:01:54.930
Creating Ruby as free software allowed others to use it freely without cost. People began using it for scripting, gaming, building desktop applications, and increasingly for web applications. During its early years, Ruby's framework, Ruby on Rails, gained significant popularity.
00:02:15.349
Ruby stands out as a pure object-oriented language that is modular, powerful, and often more readable than Perl. The productivity seen in Ruby programming can largely be attributed to the joy it brings to its users.
00:02:44.520
That joy leads to motivation, which drives productivity. While Ruby has many convenient features that aid productivity, the essence of Ruby’s success lies in how it fosters this motivation through enjoyment.
00:03:04.589
Moreover, we have a wealth of resources at our fingertips thanks to the Ruby community, where countless libraries, frameworks, and gems have been created. The Ruby community is truly the key to its success and popularity.
00:03:28.250
Ruby does exist alongside other programming languages like Erlang, which is also well-designed. However, the community surrounding Ruby is even more crucial because without community support, a great programming language can flounder.
00:03:48.250
It’s essential to attract new members to our community; welcoming newcomers is a significant indicator of Ruby's health and success. To nurture this, we need to ensure we have good technology, job opportunities, and a welcoming atmosphere.
00:04:17.660
The open-source community is like a shark; we must keep pushing forward because we can’t expect people to stay loyal for free. Most of you are here at this conference because you felt that Ruby was worthwhile and wanted to learn more.
00:04:49.560
However, you could easily explore alternatives such as Python, PHP, or JavaScript at any time. Therefore, it’s crucial for us to continuously attract and retain our audience with good technology, community engagement, and opportunities.
00:05:09.380
We pride ourselves on being an open community. While Ruby is often recognized as an open-source language, I personally align with the free software ideology, though I appreciate the welcoming nature implied by the term 'open'.
00:05:31.140
As a community, we collaboratively shape the future of Ruby, and it’s not solely my effort that dictates that future. Speaking of future versions, I'd like to talk about Ruby 2.7 and the upcoming Ruby 3.0.
00:06:13.750
As a Christmas gift, we plan to release Ruby 2.7 next month, and our commitment is to ensure that Ruby 3.0 launches next year.
00:06:27.300
Although some members of the development team, myself included, have concerns about meeting release deadlines, we are determined to make this happen unless extreme circumstances arise.
00:06:57.070
In the eventuality that we can't meet the release date, we might have to forgo certain announced features, but rest assured, Ruby 3.0 will indeed arrive next year.
00:07:10.620
Next month, Ruby 2.7 will introduce some nifty features. Ruby 3.0 will not be a revolutionary leap, but it promises enhancements.
00:07:45.990
One new feature is pattern matching, similar to what many functional programming languages offer. It can be particularly useful for destructuring data structures like JSON.
00:08:10.990
Currently, in Ruby, retrieving the children of a person requires verbose calls, but pattern matching will allow you to express this in a more concise manner.
00:08:30.650
Although I must admit the initial implementation of pattern matching in Ruby 2.7 may be slow, it is still an experimental feature that I encourage you to try out.
00:08:52.370
We also plan to refine keyword arguments. I acknowledge that previous designs had their challenges, particularly around optional arguments and hash arguments.
00:09:11.370
This means we’ll be making changes to simplify the behavior of keyword arguments to enhance clarity and ease of use.
00:09:31.820
New features in Ruby 2.7 will include improvements to number parameters and arguments forwarding, while ensuring compatibility with previous Ruby versions.
00:09:49.270
Additionally, we'll introduce enhancements to the garbage collection process to manage memory better, leading to reduced consumption.
00:10:12.910
These improvements will be manual, allowing developers to compact memory when necessary. This aligns with the ongoing focus on performance.
00:10:38.950
We’re also enhancing IRB (Interactive Ruby), introducing features to allow for multiline editing and improved usability when working with references.
00:11:06.600
Furthermore, the Ruby community will benefit from a faster fiber handling and improvements to the JIT (Just-In-Time) compiler.
00:11:28.300
Improvements overall will allow for aspiring high-performance applications while continuing to add useful methods to the Ruby language.
00:11:51.250
Now, while Ruby won't have a piping operator like F# or Elixir, we remain committed to refining Ruby's behavior while considering community expectations.
00:12:10.130
Additionally, we are investigating the introduction of a method reference operator while ensuring that we retain the character of Ruby as a programming language.
00:12:29.410
The future endeavors will play a significant role in how we shape concurrency and performance in Ruby, enabling us to keep pace with evolving technology.
00:12:46.860
We will explore concurrency models to enable better performance across single-core and multi-core systems, improving Ruby's adaptability to various use cases.
00:13:07.420
As we plan forward, we aim to introduce features that promote robust error handling and make it easier for developers to write clean, maintainable code.
00:13:26.090
Static analysis is also a vital focus, allowing for type checking without needing annotations, leading us closer to a more efficient development process.
00:13:43.210
Ultimately, the aim is to enhance the current Ruby experience while keeping the language simple, joyful, and productive.
00:13:58.420
As a community, we must continuously improve Ruby; if we stagnate, we risk losing our relevance. Together, we can continue to make Ruby a better language.
00:14:16.460
I encourage everyone to stay engaged, to keep being Rubyists, and to work together towards a happier future for Ruby.
00:14:34.760
Thank you for your participation and let’s continue to evolve Ruby together.