-
Notifications
You must be signed in to change notification settings - Fork 40
Description
Howdy. Just wanted to suggest not promoting the use of :use.
As of Clojure 1.4, require serves both its original purpose and the purpose of use via the :refer modifier. For example
(ns foo.bar.baz
(:require [plumbing.core :refer :all]))If compatibility with pre-1.4 is not a requirement, this is generally a better way to go. It makes ns declarations far more consistent and uniform, and also means there is less code using use if it gets deprecated at some point in the future (which would not be entirely unsurprising).
My suggestion would be to replace the use uses (no pun intended) with require, but add a note about use for the unlikely event that the reader requires < 1.4 compatibility.
As a secondary thing, it isn't really great to promote these unqualified imports. In tests and such it is generally fine, but in actual code you almost always want to qualify things for readability and clarity. It seems to be trying to say this, but it doesn't feel clear enough. I'd be more aggressive in saying that it's almost always a bad idea to do unqualified imports. I don't know what plumbing.core is and whether or not it is a good example of an exception though.
Cheers!