Few versatile vs. many specialized collections: how to design a collection library for exploratory programming?

Stefan Marr, Benoit Daloze

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

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 dis- coverability of collection operations. We further discuss techniques that make their implementation practical from a performance per- spective. Based on these arguments, we conclude that languages which aim to support exploratory programming should strive for small and versatile collection libraries
Original languageEnglish
Title of host publicationProceeding Programming'18 Companion Conference Companion of the 2nd International Conference on Art, Science, and Engineering of Programming
EditorsJennifer B. Sartor, Stefan Marr
PublisherACM New York, NY, USA
Pages135-143
Number of pages9
ISBN (Print)978-1-4503-5513-1
DOIs
Publication statusPublished - Apr 2018

Fields of science

  • 102 Computer Sciences
  • 102009 Computer simulation
  • 102011 Formal languages
  • 102013 Human-computer interaction
  • 102022 Software development
  • 102024 Usability research
  • 102029 Practical computer science

JKU Focus areas

  • Computation in Informatics and Mathematics
  • Engineering and Natural Sciences (in general)

Cite this