I will consider and conduct a survey about the data structures appropriate to the operations used in Ruby, and combine their merits by dynamically selecting the moderate implementation from types of data structures.
Ruby is beloved by its simplicity and productivity. It is common to implement optimized data structures when working in C, but it should not impose users of the high level languages like Ruby to the task of implementing optimized data structures by themselves. However, it is necessary to select appropriate data structures in order to achieve efficient access to the data structures.
It seems possible to offer some implementations per data structure in Ruby, and select it implicitly in order to offer desirable performance without difficulty to the users.
For example, List is a basic structure for programmers, but Ruby does not offer it. Instead, Ruby programmers use Array. In fact, Array offers List like methods such as insert, delete, push back and more. Hence, it is easy to use, but the performance of these methods like insert and delete are not executed at a constant time, while they in List run at a constant time. (Similar ideas would be possible on String and Hash.)