Ruby in Google Summer of Code 2021
We were delighted to act as fiscal sponsor for the Ruby organization as part of Google’s Summer of Code (GSOC) program. This year, the org was administrated by Ruby core team member Koichi Sasada. Read on to hear from two students who participated in this year.
王新宇 Wang Xinyu, a third year university student in software engineering at Tongji University, Shanghai, contributed to an event-based profiling tool inspired by Google Chromium. The profiler is designed to help analyze Ruby’s boot process and locate the bottleneck. The aim is to deliver faster gem loading for Ruby users, and provide a way to analyze Ruby VM performance intuitively for MRI developers.
The profiling tool won’t be delivered to Ruby app developers, but with a little bit of hacking, they should be able to use it to analyze their own C extensions.
Delton Ding is another GSOC student in the Ruby project this year. His work this summer focused on the fiber scheduler feature released with Ruby 3.0 last Christmas. “People like like Ruby on Rails because its syntax… is very easy to use, but the performance of that is very bad,” Ding shared. The fiber scheduler allows programmers to keep the syntax of [their] original Ruby code, but get performance that is “100 or 1000 times faster,” says Ding.
The project is still in its early phases, and Ding spent his summer experimenting with this part of the code.
GSOC allowed both Xinyu and Ding to become more integrated into the Ruby community, and learn how to most effectively move their projects forward.
One of the most exciting parts of the experience for Xinyu was the chance to connect with his mentor, Koichi Sasada. Sasada created the current Ruby VM (YARV). “I’ve learnt a lot Ruby internals and other programming knowledge from him,” says Xinyu. He also learned a bit of Japanese. “This is my first time to really touch Ruby… it’s mostly written by the Japanese team… and the documentation is English [laughs]… Sometimes I have to read Japanese… but, I’m Chinese.”
Luckily his mentor is a Japanese programmer and was able to help with the translation. “It’s a little bit challenging to let others know the exact idea we want to express, but so far it’s okay.”
A major part of Ding’s experience was also learning the communication process within the larger Ruby community. In particular he learned the importance of running his ideas by the maintainers of the code that he wants to change, before submitting a change request to Ruby itself.
“Once you submit the whole proposal then people are trying to review it instead of discussing it. In that case then, yeah, there may be a lot of, like, vulnerabilities or something for your project,” Ding explained.
More on Xinyu, Ding and all of the 2021 GSOC students’ final projects can be found here.
GSOC just wrapped its 16th year of student software development mentorships. The program was designed by Google co-founder Larry Page in 2005 to help students retain programming skills during their school breaks, and learn a broader range of practical software development knowledge most easily gained through participating in open source projects. Ruby, Bundler and RubyGems have all participated in the Ruby language project for GSOC many times since the program started, and this is Ruby Together’s 6th year as the fiscal sponsor for the Ruby project in GSOC.