Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
In this talk I'll discuss Rubyfmt, a work in progress Ruby autoformatter. Why I'm building it, and how it differs from Rubocop, the closest similar tool that you might be familiar with. I'll get deep in to the weeds on some of the technical challenges of building a system like this, and what the overall goals for the project are. Penelope Phippen makes Rubyfmt, and was previously a lead maintainer of the Rspec testing framework. She's been writing Ruby for just about a decade, and still remembers writing Ruby for 1.8.6. Welcome to the #NoRuKo conference. A virtual unconference organized by Stichting Ruby NL. #NoRuKo playlist with all talks and panels: https://www.youtube.com/playlist?list=PL9_A7olkztLlmJIAc567KQgKcMi7-qnjg Recorded 21th of August, 2020. NoRuKo website: https://noruko.org/ Stichting Ruby NL website: https://rubynl.org/
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
In this talk titled "Building Rubyfmt," Penelope Phippen discusses the development of Rubyfmt, a Ruby autoformatter she is creating. The primary focus is on how Rubyfmt differs from RuboCop, which is a popular tool for code linting and style checking in the Ruby community. The presentation highlights both the technical challenges involved in building Rubyfmt and its overarching goals. Key Points Discussed: - **Introduction of Rubyfmt**: Rubyfmt is an autoformatter designed to automatically format Ruby code with cleaner syntax, transforming poorly written code into semantically equivalent, well-formatted versions upon saving in the editor. - **Integration with Text Editors**: Rubyfmt is designed to work seamlessly within editors such as Vim, Emacs, and Atom, with plans for VS Code support. The core philosophy is to allow formatting during the editing process rather than in CI/CD pipelines. - **Performance**: Rubyfmt processes a 2,500 line file in about 60 milliseconds and can manage up to 30,000 lines of Ruby code per second, ensuring minimal disruption to the development workflow. - **No Configurations**: Unlike RuboCop, Rubyfmt has no style-related configurations to promote a uniform formatting style. This choice minimizes disputes over formatting styles during code reviews and improves consistency across projects. - **Design as a Unix Tool**: Rubyfmt operates like a Unix tool, accepting standard input and output, allowing it to integrate easily with other software tools and commands. - **Not a Gem**: Rubyfmt is not intended to be a Ruby gem; instead, it will be distributed via alternative channels like GitHub releases due to its operational design. - **Technical Complexity**: The talk outlines the complexities of Ruby’s syntax, which complicate the building process of Rubyfmt. The integration of Rust into the project improves performance, but the intricate nature of Ruby necessitates rigorous challenges and adjustments. - **Community Involvement**: Phippen expresses the importance of community feedback in refining Rubyfmt’s features and addresses the need to adapt quickly to Ruby's evolving standards. Key Examples and Case Studies: - Phippen discussed the impact of RuboCop and how it shifted discussions in code reviews without resolving underlying nitpicking issues. She articulated the benefits of Rubyfmt in promoting a less hierarchical coding culture. - She touched on the performance benefits witnessed by using Rust in combination with Ruby programming to facilitate smoother operations with less operational overhead. Conclusions and Takeaways: - Rubyfmt aims to set a standard for Ruby code formatting that reliably produces clean code while minimizing disputes over configuration preferences. - It serves as a solution to enhance productivity and collaboration by eliminating nitpicking around style differences in coding practices. Overall, Penelope Phippen’s talk showcases her commitment to delivering a high-quality Ruby autoformatter while addressing the community’s needs and feedback. For anyone interested in enhancing their Ruby coding experience, following Rubyfmt's development via GitHub and providing constructive feedback will be key for its evolution and success.
Suggest modifications
Cancel