Talks
Speakers
Events
Topics
Search
Sign in
Search
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
search talks for
⏎
Suggest modification to this talk
Title
Description
Slides: https://sorbet.run/talks/RubyKaigi2018/ At Stripe, we believe that a typesystem provides substantial benefits for a big codebase. They : - are documentation that is always kept up-to-date; - speed up the development loop via faster feedback from tooling; - help discover corner cases that are not handled by the happy path; - allow building tools that expose knowledge obtained through type-checking, such as "jump to definition". We have built a type system that is currently being adopted by our Ruby code at Stripe. This typesystem can be adopted gradually with different teams and projects adopting it at a different pace. We support And and OrTypes as well as basic generics. Our type syntax that is backwards compatible with untyped ruby. In this talk we describe our experience in developing and adopting a type system for our multi-million line ruby codebase. We will also discuss what future tools are made possible by having knowledge about types in the code base. RubyKaigi 2018 https://rubykaigi.org/2018/presentations/DarkDimius
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 the presentation titled "A practical type system for Ruby at Stripe," speakers Paul Tarjan, Dmitry Petrashko, and Nelson Elhage discuss their development and implementation of a type system for Ruby, specifically at Stripe. The talk emphasizes the significant benefits a type system can bring to a large codebase, especially in enhancing developer productivity. Key points discussed in the presentation include: - **Context of Stripe**: Stripe is a major platform for developers to process payments, relying heavily on Ruby for its codebase, with millions of lines of Ruby code. - **Developer Productivity**: The company invests in tools that improve developer productivity, and the type system is a part of this initiative, aiming to function as up-to-date documentation and enhance feedback during development. - **Design Principles of the Type System**: The type system is designed to be explicit yet not burdensome, encouraging developers to appreciate the value of adding type signatures. Key principles include compatibility with existing Ruby syntax and allowing gradual adoption across different teams. - **Functionality of the Type Checker**: The type checker is developed to be user-friendly, providing helpful error messages and supporting common Ruby practices, such as nil-checking, which helps identify bugs that often remain hidden. - **Implementation Experience**: The type system's rollout internally has led to the identification of latent bugs, correcting errors through type-checking while ensuring that existing Ruby idioms are respected. - **Performance Metrics**: The type checker operates efficiently at approximately 100,000 lines per second, markedly faster than some alternative languages and frameworks. - **Community Engagement and Future Directions**: There are plans for the type system to be open-sourced after further validation and internal testing. The speakers encourage collaboration and feedback from the developer community to refine the type checker further. In conclusion, the team's experience with the type system reflects a commitment to improving Ruby's usability in large-scale applications, fostering a beneficial environment for developers that prioritizes transparency and documentation. The presentation encourages interaction through a live demo and highlights the ongoing need for effective type-checking solutions within the Ruby ecosystem.
Suggest modifications
Cancel