One major internal change in Ruby 3.2 was the introduction of object shapes. In this post, we’ll try to cover why they were introduced, how they work, and what their limitations are. How object instance variables are stored Because of how dynamic Ruby is, an operation as simple as accessing an instance variable is a lot of work. In most cases, Ruby objects store their instance variables in an arra