00:00:00.000
Hello, everyone. My name is Luca Guidi, and you can find me on Twitter as '@LucaGuidi'. I would love to continue the conversation after this talk, so feel free to reach out.
00:00:18.359
This edition of RubyDay has been wonderful, and I truly enjoyed all the talks I attended. I hope you did as well. We have seen a lot of interesting use cases for Ruby, and we discussed various algorithms this morning. It's exciting how Ruby can serve as a bridge to other systems, such as what we saw with the Opal lightning talk.
00:00:38.820
During this conference, we talked about different fields where Ruby is applicable. Of course, you are all aware of these topics, but today I want to focus on the future of the Ruby language. Thank you for being here and for being part of this community.
00:01:09.960
Even though we may not be seen as the 'cool' language anymore, I appreciate your continued support. I understand that there are newer languages out there that are gaining popularity due to their performance and features. Thank you for remaining part of this community despite the allure of those other languages.
00:01:40.020
Some developers are considering migrating to these new languages that have intriguing features. It's important for us to learn why people are leaving our community, especially when other languages are being viewed as 'cool' again. Even Java has adopted functional programming concepts and is regaining its popularity.
00:02:08.670
From here on, let's consider if Ruby can still be the language we use to build serious applications in our companies for the next decade. I want to ask—how many of you have ever wondered if Ruby might die? I'm relieved to see that I'm not the only one thinking pessimistically. I have asked myself this question many times.
00:02:54.590
First, this concern stems from my career, as most of my professional work has revolved around Ruby. I wanted to make sure that my skills would still be relevant in the coming years. The second reason is related to my work on Lotus, which is a significant commitment of time and resources. I want to contribute to open source in a language that remains meaningful for the future.
00:03:38.810
I believe that a language doesn't die—at least not completely. Think of languages like COBOL; they may no longer inspire many developers. We want to avoid Ruby becoming like COBOL, and it's crucial that we think seriously about what we can do today to ensure our language continues to thrive.
00:04:06.739
Before we leave this room today, I encourage you to look at the most recent programming language rankings. As of November 2015, Ruby is in ninth place among programming languages. While we may feel under attack from newer languages, it's important to acknowledge that we still hold a dominant position.
00:04:53.240
Now, envision the future of Ruby over the next five years. I see a polyglot landscape. Thanks to improved developer tools, we can choose the right language for each task. In the past, we relied heavily on Ruby for all development work, primarily because we had a Ruby development team.
00:05:34.220
The landscape has changed. Modern languages such as Go are becoming more developer-friendly with features resembling dynamic languages and efficient memory management, unlike the manual management required in C or C++. Additionally, as we shift towards cloud computing and containers, the relevance of comprehensive systems languages lessens.
00:06:55.060
I've seen companies, including the ones I work with, moving away from Ruby for performance-critical tasks. Increasingly, Go is the preferred choice due to its simplicity and performance. We might find that Ruby's adoption will decline in performance-sensitive sectors.
00:07:31.320
However, Ruby has a stronghold in building web applications. In fact, Ruby is particularly suitable for developing large web applications, as they often require frequent updates and dynamic features. Companies still need to deliver new capabilities quickly, and this is where Ruby excels.
00:08:02.950
In summary, I believe Ruby is here to stay. Don't be intimidated by new languages. However, we need to be careful not to pursue features where we may struggle to compete with these languages.
00:08:39.930
For instance, consider concurrency; Ruby was created during a time when single-CPU computing was the norm. Unfortunately, the modern landscape poses significant challenges for Ruby in this area, as newer languages have been developed with concurrency as a fundamental principle from the start.
00:09:05.950
When it comes to upcoming versions of Ruby, like version 3.0, there are initiatives being explored to update Ruby's concurrency model. However, such changes must be approached cautiously since they might disrupt existing applications and investments.
00:09:51.160
Instead of trying to replicate what other languages are doing, we should concentrate on refining Ruby's unique strengths and carving out a defined purpose. For example, if I were to create a command line application today, I would likely choose Go due to its speed and convenience compared to Ruby.
00:10:30.100
The challenge is to find scenarios where Ruby excels. For instance, we can look at current compelling uses of Ruby such as Homebrew, which is a package manager for macOS. Many might assume that the next version of Homebrew should be built in a low-level language like Go, but Ruby has proven effective and accessible.
00:11:11.200
What makes Homebrew successful is its ability to make contributions easy. The syntax of its formulas is so readable that even those unfamiliar with programming can contribute with minimal addressing of syntax.
00:12:34.430
Similarly, I want to emphasize that Ruby's expressive syntax allows us to build bridges across complex systems, such as the various libraries we see being developed today.
00:13:00.020
Through its expressiveness, Ruby can continue to fill niches in various domains. We should strive to make Ruby more approachable and encourage contributions to ensure our community continues to thrive.
00:13:40.570
Now, speaking of newcomers, it's vital that we welcome them into our community. Teaching tools such as 'Hello Ruby' can effectively introduce children to programming concepts using Ruby as the medium.
00:14:02.550
We're at a critical moment in shaping the future of Ruby. By fostering a welcoming environment for newcomers, we can help build a community that is robust and inclusive.
00:15:01.990
While we invest effort in nurturing fledgling developers, we also need to focus on enhancing our ecosystem to attract experienced engineers who can tackle the challenges that arise as our applications grow.
00:15:50.390
Next, let's discuss Rails. I've used Rails throughout my career and seen countless applications face similar challenges.
00:16:28.530
Particularly, I've observed that many applications fall prey to bloated controllers and models. With the historical growth of Rails, the framework itself hasn't adapted well to its evolution, which can discourage newer engineers from adopting it.
00:17:01.210
In modern education, we've observed a shift away from Rails towards lighter alternatives, such as Sinatra or Lotus. Many teachers have reported that with these simpler frameworks, students can progress more quickly and enjoyably.
00:17:46.900
In my work on Lotus, I wanted to create a framework that retains the best parts of Rails while being significantly more lightweight and efficient. I started it as an experiment three years ago, and through continued iterations, I've been able to develop a robust community around it.
00:18:40.510
Lotus aims to provide a powerful but minimal set of features, ensuring we strike the right balance between functionality and performance without overwhelming users.
00:19:20.590
I intend for Lotus to be both lightweight and capable of handling the various complexities encountered in real-world applications. Before launching Lotus 1.0 in a few months, I will focus on improving the API and simplifying the model.
00:20:05.640
The upcoming features will focus on including static assets while also supporting third-party gem integrations, ensuring the development processes are user-friendly.
00:20:50.380
Our development philosophy emphasizes making deployment simple and rapid without compromising performance. We recognize the importance of reducing deployment time while catering to modern HTTP standards.
00:21:35.510
As part of improving Lotus, experimental support for HTTP/2 will also be integrated, enhancing performance significantly. I have shared a few repositories related to these experiments for your feedback.
00:22:22.510
Moreover, as we consider future plans, I intend to simplify the processes further to promote Lotus within the Ruby community. Contributions are always welcome as we collectively improve this framework.
00:23:13.430
Finally, I'd like to invite each of you to try out Lotus, share your experiences, and participate in refining this project. Collaboration is welcome to help shape a vibrant ecosystem surrounding Ruby.
00:24:00.320
Thank you for your attention. Please feel free to reach out with questions, thoughts, or ideas as we work together to advance Ruby and its community.