00:00:20.439
If you don’t know what it does, Lucian goes on Twitter, Mastodon, and other sources to compile a summary of what happened during the past week in the Ruby community. It’s incredible because, you know how on Twitter everything is ephemeral? Everything goes away after you read it and forget it. Well, you can find it in his newsletter, so it’s amazing. Therefore, I think he’s the best person to speak about the state of the Rubyverse. So, please give it up for Lucian!
00:01:13.759
Hello. I mean, I’m still doing the newsletter for myself, and I’m glad that you enjoyed it. I’m not sure I’m the absolute best at this; probably there are people with more experience than I have. I just want to lower expectations a bit regarding this presentation.
00:01:34.079
So, who am I? This is me. I look pretty much the same; I always wear the same kind of cut. You can find me on various social media platforms, and that’s my email there. I will pass through this quickly but want to set the stage about what I’m going to present and provide some disclaimers or notes beforehand.
00:01:57.320
The thing is that I’m compiling a variety of items happening in the community, which I will categorize. However, there may be things I missed, and there are certainly projects that should be here but I didn’t include. This is not a top list, nor is it based on popularity or the number of downloads. I want to share what excites me about the Rubyverse. I aim to spark conversation and encourage discussions on future directions we might explore. Additionally, I want to clarify that my criteria for inclusion was that each project has at least one commit this year. This does not mean that projects with no recent commits are not actively maintained; it may just indicate that they are stable.
00:02:59.239
Lastly, I want to make it clear upfront that I don’t intend to convince you to change anything, nor will I make judgment calls about which projects are better. I will simply state what is happening differently. Now, what I’m going to talk about includes Ruby implementations, web frameworks, the Gems category, developer experience, and artificial intelligence encompassing large language models and machine learning.
00:03:45.159
Let’s start with the multiverse of Rubies. I want to give a brief definition of what I mean by 'Rubies.' This term refers to interpreters, compilers, or virtual machines that work with Ruby syntax in some manner. I will mostly focus on compilers, interpreters, and virtual machines. Before diving into this, let’s engage a bit. Raise your hands if you know at least one Ruby implementation. Okay, so I see at least one. Now, who knows more than two? More than three? More than four? More than five? More than six? Wow! I see some hands there—this talk is definitely not for you; you already know these.
00:04:41.039
However, for those who might not be familiar, when you work with Ruby and use web frameworks, I assume you’re mostly working with CRuby. It’s the standard implementation. Initially known as MRI, the term we commonly use now is CRuby because it’s written in C. The 3.3 preview release recently included some new features.
00:05:40.200
I’m not going to explain everything here. My goal is to show some interesting developments that are happening. My sense is that we are evolving; things are moving forward in this universe.
00:06:07.999
I want to briefly touch on the developer engagement aspect because I might show you code you may or may not agree with. The purpose of this isn't to convince you but to share my passion for adopting new features, libraries, and developments. I learned Ruby back in 2007, and at the time, it felt strange. It challenged how I wrote code, which introduced emotions and discussions about Ruby not scaling effectively.
00:06:55.560
This emotional connection remains. Some people still claim that Ruby doesn't scale, often based on personal experiences. You may also have noticed that learning a new programming language influences how you perceive problems. The language we learn reflects and shapes our thought process, influencing how we code.
00:08:07.580
Since Ruby 2.7, numerous new features have been ongoing. However, some organizations are slow to adopt them despite having rules in place to enforce their use. We must embrace these changes; otherwise, we cannot establish better practices concerning them.
00:09:13.360
A recent and notable feature is 'Data Classes'—immutable objects similar to structs but without setters. Additionally, we have features like 'Hash Literal Omission' that allow for cleaner code by omitting redundancy. I noticed some debate around this topic. Some developers are still hesitant about using new methods, but I encourage experimentation.
00:10:15.520
We have also seen developments surrounding pattern matching, enabling more complex coding techniques. As you can see, there is a focus on speed, especially since Ruby 3.0 introduced significant performance improvements. Another exciting development includes new Just-In-Time (JIT) compilers that promise faster execution times.
00:11:12.760
Now, what else is present in the Ruby ecosystem? We see implementations like CRuby, Fullstack Ruby, JRuby (which runs on the Java Virtual Machine), and Truffle Ruby, which emphasizes performance. Not to mention M Ruby, aimed at embedded systems; this brings an entirely new worldview to how we can utilize Ruby.
00:12:12.240
I found some fascinating projects utilizing M Ruby for real-world applications, stretch far beyond web apps into various sectors like POS systems and robotics.
00:12:49.880
Now shifting to web frameworks, let’s see how many of you know more than one web framework in Ruby? Let me see some hands again. If you’re familiar with Ruby on Rails, I won’t delve into it much today; it has an overwhelming amount of documentation covering its advancements.
00:13:53.680
However, I want to mention some significant updates, such as Hotwire, which has been a game-changer in creating web applications, improving our ability to make real-time updates with little overhead. Another exciting release is Hanami 2, which offers a simpler structure and has gained popularity among companies.
00:14:50.440
Sinatra is also worth mentioning, an older framework known for its elegant DSL. Sinatra maintains relevance with smaller releases that keep up with modern web development practices.
00:15:52.560
To explore other frameworks, we have Roda which offers complex routing patterns. This veteran still stands strong and has been recognized for its performance in benchmarks. Meanwhile, we have grown interesting projects such as Bridgetown, a site generator that now offers server-side rendering capabilities as well.
00:16:54.320
Grape stands out as a REST API framework, fulfilling common needs like versioning and different formats pre-configured. Companies like GitLab are utilizing it effectively in production.
00:17:33.960
There are also unique and fun frameworks like Camping, created by why the lucky stiff—a nostalgic return to simplicity and alignment with core Ruby principles. Cuba is another micro-framework focused on providing minimalism and flexibility.
00:18:28.880
Among the lesser-known is Ruby on Jets, which aims to simplify Ruby usage on AWS, showcasing how Ruby continues to expand its horizons.
00:19:24.040
As we explore projects beyond web frameworks, artistically creative efforts are making strides in desktop applications with tools like Shoes, rebuilt as Scarpe, reinforcing Ruby's position in building GUI-based applications.
00:20:26.160
Moreover, Ruby is also venturing into the security space with Ronin—a versatile toolkit for security researchers. Experience with Ruby continues to blossom with various explorative projects, fostering an evolving narrative surrounding its capabilities.
00:21:12.880
When discussing database technologies, the integration with SQLite has garnered interest. The effort to optimize Rails for SQLite is ongoing, which raises intriguing possibilities for production use cases.
00:22:28.960
I encourage all of you to explore newer gems and tools emerging in the Ruby space, especially around AI and machine learning. OpenAI and Langchain are recent examples showcasing how Ruby can effectively interface with modern AI technology.
00:23:11.840
Tools like AI Reflector, which allow the translation of scripts to different test frameworks, represent just a fraction of the innovations occurring with Ruby integration into modern AI.
00:24:00.440
Finally, I’d like to highlight how Ruby continues to move forward amidst the evolving landscape in developer experience. Effective debugging tools and syntax improvements are coming to light, making Ruby increasingly user-friendly and adaptable.
00:25:02.880
In summary, the landscape of Ruby is vast and full of possibilities, from implementing new frameworks and AI integrations to enhancing developer experience. I hope I've provided insight into the richness of what makes Ruby more than just a language, but a community.
00:26:14.640
I invite each of you to engage with the Ruby community by sharing your experience and insights, whether through blog posts, discussions, or even presentations. Your unique perspectives contribute significantly to the evolution of our community.
00:27:28.120
Thank you for listening to my presentation on the state of the Rubyverse. If you have any questions or remarks, I’d be happy to discussion and hear your thoughts. Let's continue promoting and advocating for our wonderful Ruby language.