Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Ruby has many standard libraries since Ruby 1.8. We are developing them with GitHub today using default and bundled gems mechanism. I plan to continue this process for Ruby 3.4 and future versions. However, some versions may encounter `LoadError` at `require` when running `bundle exec` or `bin/rails`, for example with `matrix` or `net-smtp`. We need to understand how they differ from standard libraries. In this presentation, I will explain how Ruby's `require` and `bundle exec` work with default/bundled gems. I will also suggest what users can do to load them successfully.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
The presentation titled 'Long Journey of Ruby Standard Library' by Hiroshi Shibata at RubyConf Australia 2024 explores the evolution and management of Ruby's standard libraries and ecosystem. Hiroshi, a member of the Ruby core and RubyGems teams, discusses the following key points: - **Introduction to Ruby Standard Libraries**: The presentation begins with a recap of Ruby's standard libraries since Ruby 1.8 and the necessity of using the `require` method to load them, contrasting immediate classes like `Time` and `String`, which do not require loading. - **Understanding RubyGems**: RubyGems has become the default package manager since Ruby 1.9, providing versioned libraries. This year marks the 20th anniversary of RubyGems, which has transformed Ruby's library management by offering metadata support and a reliable way to manage dependencies. - **Dependency Management with Bundler**: Hiroshi delves into how Bundler provides a mechanism for managing gem dependencies defined in a `Gemfile`, addressing its capabilities for ensuring that all required gems are available during runtime and its enhanced PGraph resolution engine. - **Key Features of Ruby's Load Mechanism**: A clear distinction is made between the original Ruby `require` method and the enhanced capabilities provided by RubyGems and Bundler. Key features of `require_relative` and how Ruby searches for required libraries are discussed. - **Performance Considerations**: The speaker highlights the performance trade-offs of using RubyGems versus the default `require`. RubyGems can be slower due to searching all installed gems, suggesting that developers should avoid automatically loading RubyGems unless necessary. - **Future Directions**: Hiroshi outlines future plans for Ruby 3.4, emphasizing improvements in library functionality, security, and community engagement. He notes the importance of user feedback in shaping enhancements and maintaining a robust ecosystem for developers. In conclusion, the talk underscores the continuous development journey of Ruby, its standard libraries, and the tools that support developers, reinforcing the community's engagement in Ruby's evolution. Hiroshi expresses gratitude for the audience's support in this journey, emphasizing the exciting future that lies ahead for Ruby developers.
Suggest modifications
Cancel