We report on our experiences in redesigning Scala's collection libraries, focussing on the role that type systems play in keeping software architectures coherent over time. Type systems can make software architecture more explicit but, if they are too weak, can also cause code duplication. We show that code duplication can be avoided using two of Scala's type constructions: higher-kinded types and implicit parameters and conversions.
@InProceedings{odersky_et_al:LIPIcs.FSTTCS.2009.2338, author = {Odersky, Martin and Moors, Adriaan}, title = {{Fighting bit Rot with Types (Experience Report: Scala Collections)}}, booktitle = {IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science}, pages = {427--451}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-939897-13-2}, ISSN = {1868-8969}, year = {2009}, volume = {4}, editor = {Kannan, Ravi and Narayan Kumar, K.}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.FSTTCS.2009.2338}, URN = {urn:nbn:de:0030-drops-23386}, doi = {10.4230/LIPIcs.FSTTCS.2009.2338}, annote = {Keywords: Programming languages, scala, avoiding code duplication, higher-order kinds, type systems, polymorphism, collections library} }
Feedback for Dagstuhl Publishing