Ruby Internals

Summarized using AI

How to Begin to Develop Ruby Core

Hiroshi Shibata • September 23, 2016 • Sofia, Bulgaria

In this presentation at EuRuKo 2016, Hiroshi Shibata, Chief Engineer at GMO Pepabo and member of the Ruby core team, discusses the essential aspects of developing the Ruby core. His talk focuses on the roles and responsibilities of Ruby maintainers, the evolution of Ruby versions, and the significance of community contributions. The key points of his presentation include:

  • Introduction to Ruby and its Implementations: Hiro highlights the well-known MRI Ruby interpreter developed by Yukihiro Matsumoto, along with other implementations such as JRuby and Rubinius. He discusses the transition from Ruby 1.8 to Ruby 1.9, which introduced the stable YARV VM.

  • Ruby Core Team Structure: Shibata describes the Ruby core team, comprising about 91 members, with a smaller active committee managing feature developments and maintaining the current stable branches of Ruby (2.3, 2.4, and addressing security for 2.1).

  • Contributions and Standard Libraries: The presentation emphasizes the collaborative nature of Ruby's ecosystem, where various authors maintain a rich collection of standard libraries, contributing to the language’s versatility and utility.

  • Documentation and Testing: Shibata discusses the critical role of documentation and testing in Ruby development. He encourages contributions focusing on clear documentation, example codes, and easy test integration to help new users and developers.

  • Security and Maintenance: The importance of effective handling of security notifications and the regular meetings of the core team to address issues, projects, and new feature requests are highlighted.

  • Future Directions for Ruby: He calls for collaboration and encourages developers to identify potential transition issues in upcoming Ruby versions while emphasizing maintaining a strong relationship with external libraries.

In conclusion, Shibata underscores the philosophy behind Ruby, which is focused on programmer happiness through readability and simplicity. He invites the community to engage in Ruby's ongoing development to enhance user and contributor experiences. Shibata closes with an open invitation for questions and contributions, emphasizing the importance of community in the Ruby ecosystem.

How to Begin to Develop Ruby Core
Hiroshi Shibata • September 23, 2016 • Sofia, Bulgaria

EuRuKo 2016

00:00:03.550 Our next speaker comes all the way from Japan. He is the Chief Engineer at GMO. Please welcome Hiroshi Shibata, who is going to tell us how to help with developing the Ruby core.
00:00:28.510 Hello everyone, how are you? I am excited to talk about developing the Ruby core, which contains the secrets of the Ruby ecosystem.
00:00:34.030 My name is Hiroshi Shibata, but please call me Hiro. My Twitter and GitHub account is HSBTW. I'm from Tokyo, Japan, which is a 15-hour flight away. I'm happy to talk at the European Ruby Conference, EuRuKo. This is my first time giving a technical talk outside of Japan.
00:00:49.120 In Japan, we have an internal conference called RubyKaigi, which was recently held. RubyKaigi has many speakers who deeply discuss Ruby topics, including concurrency and the garbage collector. In 2016, RubyKaigi was very impressive, with many discussions about Ruby's future.
00:01:37.900 As for myself, I am the Chief Engineer at GMO Pepabo, and I am also a member of the Ruby core team. I maintain RubyGems, Rake, a Doc, and Psyche, among others, and I contribute to many other libraries in the Ruby ecosystem.
00:01:55.690 Additionally, I help organize Ruby-related events in various cities such as Tokyo, Kyoto, and Nagoya. I support these events and the Ruby community in Japan. I would like to also introduce GMO Pepabo, as our CEO and CTO have been instrumental in supporting our participation at this conference.
00:02:50.099 At GMO, we provide shell hosting, server and domain registration, and e-commerce solutions in Japan. Now, let's begin my talk about the Ruby maintainer's roles and responsibilities.
00:03:11.860 There is a well-known implementation of the Ruby interpreter known as MRI, which was created by the original creator of Ruby, Yukihiro Matsumoto. There are also other implementations such as JRuby and Rubinius. Ruby follows various standards, and there have been significant differences between Ruby 1.8 and 1.9.
00:03:50.590 Ruby 1.8 was developed by Matsumoto, while Ruby 1.9 introduced the YARV (Yet Another Ruby VM), which remains the stable version used today. As Ruby continues to grow, it remains important to ensure that our implementations are robust and up-to-date.
00:04:17.919 In the Ruby core team, we have a dedicated group of individuals who are working hard to maintain and improve Ruby. We have around 91 members who actively contribute to the project daily. The active committee comprises about 10 to 20 people who focus on branches and managing feature developments for each Ruby version.
00:05:15.930 Currently, we have two major stable branches: the 2.3 and the 2.4 versions, while maintaining security for version 2.1. The maintenance is handled by a few dedicated members for platform-specific issues, including support for Linux, Windows, and macOS.
00:06:10.930 In terms of contributions, we also have an extensive collection of standard libraries that add significant value to Ruby. Each standard library is maintained by different authors, ensuring that our ecosystem remains rich and useful. There are also many upstream libraries that contribute to this ecosystem.
00:07:01.560 I am responsible for several web-related Ruby projects. We have options like RubyGems and RubyDoc, which provide essential resources for users. The Ruby language and its packages are available and regularly updated to ensure the best experience for developers.
00:08:28.669 Our goal is to make Ruby more accessible and user-friendly for all developers. We encourage translations into different languages and provide comprehensive documentation to support our community.
00:09:11.839 Documentation is a crucial part of the development process as it helps users understand how to effectively use the language and its libraries. We strive to improve the clarity and availability of our documentation.
00:10:22.630 Ruby's testing framework makes it easier for developers to contribute and maintain code quality. Testing is straightforward, and libraries like RSpec and Capybara provide powerful tools for writing tests.
00:11:35.610 If you encounter issues or missing test coverage, you can easily add tests and submit them. The community welcomes these contributions, as they help improve Ruby as a whole.
00:12:36.590 When contributing to Ruby, it is important to follow our guidelines. Creating a GitHub account to submit pull requests or patches is the best practice. Your contributions can range from documenting errors to adding new features.
00:13:27.900 Testing plays a fundamental role in maintaining the Ruby language. We have various commands to run tests, ensuring that the contributed code functions correctly and follows our coding standards.
00:14:08.190 In conjunction with testing, documentation and example codes are vital for the onboarding process of new contributors. By providing clear examples and tests, we make it easier for everyone to contribute.
00:15:26.710 The development process includes understanding coding conventions and how to handle submissions. Future Ruby releases will continue to enhance the user experience and functionality.
00:16:46.830 As a Ruby community, we also need to address security concerns. It is essential to handle security notifications effectively. Contributors are encouraged to report any vulnerabilities they come across.
00:17:58.620 The Ruby core team meets regularly to discuss ongoing projects, security issues, and requests for new features. We aim for transparency in our development process and hope to assist potential contributors in navigating the community.
00:19:07.030 As we continue to develop Ruby, understanding the structure and features of the language becomes even more crucial for collaborating effectively. This helps in maintaining a good relationship with external libraries and dependencies.
00:20:50.530 It is also vital to monitor packages and their compatibility with Ruby to maintain smooth integration. We encourage the use of standards and practices that ensure consistent quality across Ruby projects.
00:21:45.710 As we prepare for the upcoming versions, we want to ensure that the transition is seamless for users. Please help us identify potential issues that could arise during this process.
00:22:18.240 In conclusion, Ruby is designed with the programmer's happiness in mind. The emphasis on readability and simplicity has made Ruby enjoyable for many developers addressing a variety of use cases.
00:23:15.130 Thank you for your attention, and I look forward to seeing how we can work together to improve Ruby further. If you have any questions or suggestions for contributions, please feel free to reach out.
00:24:00.170 Thank you all for your time and enthusiasm towards Ruby development! Let's continue building a wonderful community together.
00:26:39.360 Thank you!
Explore all talks recorded at EuRuKo 2016
+23