‹Programming› 2018
Mon 9 - Thu 12 April 2018 Nice, France
Tue 10 Apr 2018 15:30 - 16:00 at Baie des Anges A - Session 3

While an integral part of all programming languages, the design of collection libraries is rarely studied. This work brie y reviews the collection libraries of 14 languages to identify possible design dimensions. Some languages have surprisingly few but versatile collections, while others have large libraries with many specialized collections. Based on the identified design dimensions, we argue that a small collection library with only a sequence, a map, and a set type are a suitable choice to facilitate exploratory programming. Such a design minimizes the number of decisions programmers have to make when dealing with collections, and it improves discoverability of collection operations. We further discuss techniques that make their implementation practical from a performance perspective. Based on these arguments, we conclude that languages which aim to support exploratory programming should strive for small and versatile collection libraries.