New study catalogs 26 Clojure code smells, linters cover only 2
Clojure developers beware: 26 code smells identified, but existing tools catch just 2.
Get AI news that actually matters
One email a day. Zero fluff. Join 10,000+ professionals.
A new grey literature review by researchers Walber Araújo, José Truta, Lucas Vegi, Marco Tulio Valente, and João Brunet presents initial findings on code smells in Clojure, a modern functional language running on the JVM. Inspired by prior work on Elixir, the team manually inspected developer discussions via Google search and extracted quality concerns. They then had 44 practitioners evaluate the relevance of non-traditional smell candidates. The result is a catalog of 26 code smells: 12 are Clojure-specific, 9 are functional-style, and 5 are traditional Fowler smells adapted from object-oriented programming.
Perhaps the most striking finding is the gap in tool support: existing Clojure linters detect only 2 of these 26 smells. This means developers relying on automated tools are missing the vast majority of potential code quality issues identified by their peers. The paper provides an initial characterization of how Clojure developers discuss and perceive smells, a preliminary set of ecosystem-specific problems, and an early assessment of detection tooling. For functional programming communities, this work highlights the need for better linters and static analysis tailored to functional paradigms.
- 26 code smells cataloged: 12 Clojure-specific, 9 functional-style, 5 traditional Fowler smells
- Only 2 of 26 smells are detected by existing Clojure linters — a 92% coverage gap
- 44 practitioners validated the relevance of non-traditional smells via survey
Why It Matters
Exposes a critical blind spot in Clojure tooling; functional code quality needs dedicated detection tools.