Skip to main content

Few Versatile vs. Many Specialized Collections: How to design a collection library for exploratory programming?

Marr, Stefan and Daloze, Benoit (2018) Few Versatile vs. Many Specialized Collections: How to design a collection library for exploratory programming? In: Conference Companion of the 2nd International Conference on Art, Science, and Engineering of Programming. ACM-ICPS International Conference Proceeding Series . ACM, New York, USA, pp. 135-143. ISBN 978-1-4503-5513-1. (doi:10.1145/3191697.3214334) (KAR id:66605)

PDF Author's Accepted Manuscript
Language: English
Download (519kB) Preview
[thumbnail of px18-marr-daloze-few-versatile-vs-many-specialized-collections.pdf]
This file may not be suitable for users of assistive technology.
Request an accessible format
Official URL:


While an integral part of all programming languages, the design of collection libraries is rarely studied. This work briefly 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.

Item Type: Book section
DOI/Identification number: 10.1145/3191697.3214334
Uncontrolled keywords: Collection Libraries, Design, Implementation, Exploratory Programming
Subjects: Q Science > QA Mathematics (inc Computing science)
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Stefan Marr
Date Deposited: 03 Apr 2018 12:16 UTC
Last Modified: 09 Dec 2022 07:56 UTC
Resource URI: (The current URI for this page, for reference purposes)
Marr, Stefan:
  • Depositors only (login required):


Downloads per month over past year