Scala Implicits are Everywhere: A large-scale study of the use of Implicits in the wild
Filip K\v{r}ikava, Heather Miller, Jan Vitek

TL;DR
This study analyzes the extensive use of implicits in Scala projects on GitHub, revealing their widespread adoption and impact on reducing boilerplate and enabling language features.
Contribution
It provides the first large-scale empirical analysis of implicits usage in real-world Scala codebases, quantifying their prevalence and patterns.
Findings
Implicits are used in over 8 million call sites.
There are 370,700 implicit declarations across analyzed projects.
Implicits significantly reduce boilerplate code in Scala.
Abstract
The Scala programming language offers two distinctive language features implicit parameters and implicit conversions, often referred together as implicits. Announced without fanfare in 2004, implicits have quickly grown to become a widely and pervasively used feature of the language. They provide a way to reduce the boilerplate code in Scala programs. They are also used to implement certain language features without having to modify the compiler. We report on a large-scale study of the use of implicits in the wild. For this, we analyzed 7,280 Scala projects hosted on GitHub, spanning over 8.1M call sites involving implicits and 370.7K implicit declarations across 18.7M lines of Scala code.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Parallel Computing and Optimization Techniques · Software Engineering Research
