Idiomatic Lisp and the nbody benchmark
44 points by nemin
44 points by nemin
The word "idiomatic" is doing a lot of heavy lifting in this blog post. The thing is that "idiomatic" is really just another word for "fashionable", ie, what everyone else does, for Reasons.
The term has kinda been watered down, and unfortunately I think Rust is to blame. When it was new, the programming paradigms it forced you to follow were very unfamiliar to most people, so there was a lot of angst about "is this code idiomatic? am I doing something wrong? how am I supposed to do this?" We as a community now can give pretty good and succinct advice for how to write good Rust code, so this imposter syndrome seems to have mostly dissipated? But the scars have remained.
The article does explicitly talk about what idiomatic can even entail.
“Idiomatic code” in the context of programming means something like “representative of a fluent computer programmer” and “aligned with the peculiar characteristics of the language”. In some sense, idiomatic code in a particular language shouldn’t stand out amongst other code in that language, and idiomatic code should, in some sense, portray the identity of the language itself.
And then concludes that for Common Lisp
[...]what makes code “Lispy” is whether or not the programmer used Lisp’s metaprogramming and/or built-in multi-paradigm facilities to a reasonable degree to make the solution to their problem efficient and easy to understand in some global sense.
So, a funny thing happens: "idiomatic" in Lisp looks a lot like building small languages.