Strange Loop

Type Checking Ruby

Dynamic languages like Ruby are powerful, flexible, and fun to program in. Sometimes, however, the lack of static types can be frustrating: Types help prevent certain mistakes when writing code, even before running a single test; they can make code maintenance and evolution easier; and they provide automatically checked documentation that is always in sync with the code. On the other hand, sometimes types can be heavyweight and can interfere with programming tasks.

In this talk, I will introduce rdl, a new library that adds types to Ruby in a lightweight, "get-what-you-pay-for" way. The key innovation of rdl is that it performs static type checking, but it does so at run time. This allows rdl to work in the presence of metaprogramming, which is heavily used in many frameworks including Ruby on Rails.

After introducing the core concepts of rdl, I will give a demonstration and discuss some of rdl's strengths and weaknesses. I will end by discussing future development plans.

Jeffrey Foster

Jeffrey Foster

University of Maryland, College Park

Jeff Foster is Professor and Associate Chair for Graduate Education in the Department of Computer Science at the University of Maryland, College Park. Jeff does research that aims to make software easier to write, more reliable, and more secure. And he's a big fan of Ruby!