Not that Clojure ever deprecates anything, but are struct maps “deprecated”?
The announcement of defrecord said something about how it was intended to replace most use of struct-map. defrecord is clearly ideal when the fields are meaningful and known to the programmer. struct-map seems useful in cases where the programmer has no interest in the number or meaning of fields.
The only times I've heard about defstruct is from #C053AK3F9 that think "how do I do a struct in clojure... and why doesn't clj-kondo support this syntax" (it now does)
I only came across it when I wrote https://github.com/multiplyco/pathling, and started testing it on various things. I think it was https://github.com/clojure/clojure/blob/4a4a6e7717d411679820c4a3ce735a77aef45cc3/src/clj/clojure/xml.clj#L20 that made me aware of its existence.
Concretely, I’m considering whether to throw if you try to transform a key on a struct map, or whether I should “upgrade” it to an ordinary map, and just document that it does so if required. The latter might be less surprising in practice.
The early Clojure books talked about structs, of course. So the infos about structs are still out there.
ah, memories. 🙂