On Aug 6, 2013, at 7:55 AM, Curtis Summers wrote:

> I agree that wildcards make it "easy" (in the nearness sense), but from a 
> long-term maintainability standpoint, I'd prefer to have explicit imports as 
> is.  When I'm reading your code a year from now and need to look-up the docs 
> on a class, wildcards make me (and anyone else in the future) have to do that 
> look-up every time.  It's almost the same argument as to why (:use) is a bad 
> idea--you're dumping a bunch of symbols into your namespace.  So, you're 
> trading some upfront ease for some long-term simplicity.

This makes perfect sense if long-term maintainability is one of your higher 
priorities, which it certainly should be in many programming contexts. But not 
in many others. 

I do realize that many (most?) programmers spend lots (most?) of their time 
reading and maintaining code rather than writing original code. But not every 
programmer is "most" programmers :-). For me and I suspect many other 
researchers/teachers/students/artists/etc. upfront ease is really valuable and 
in fact crucial, and I can worry about long-term maintainability if/when that 
becomes a relevant concern. If I have an idea then I want to try it out ASAP by 
writing just the code I need to try it out, and it's a total drag when a 
language/environment makes me engage in a time-consuming and distracting 
bureaucratic process -- doing stuff that the system could really do for me -- 
on the way to expressing and trying my idea. If something works well, and I 
want to build on it and/or share it, then yes, I should re-engineer it for 
readability and maintainability. But that doesn't mean I want to -- or should 
have to -- jump through lots of hoops to play with ideas in the first place.

FWIW if you find my perspective here to be crazy I think that it's close in 
some ways to ideas that Paul Graham has expressed much better in some of his 
essays about Lisp, language design and programming methodology 
(http://www.paulgraham.com/articles.html --  mostly the ones near the bottom of 
the list).

In other words, "don't use wildcards" may be an excellent rule for programmers 
in many contexts, but that doesn't mean that it's a good idea for a language to 
impose it on everybody all of the time. And more generally, it's probably not a 
good idea to impose rules on all users of a language just because they're good 
rules for some/most programmers to follow some/most of the time.

 -Lee

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to