This is far preferable to typing e.g. "public static void ..." all the time
I have a hard time believing that the best choice of name for all of these operators just so happens to always be some 3 or 4 character string that's almost but not quite a word and seems to have dropped some vowels.
As for "public static void ...", that's a disease of another sort, equally as bad.
Do you think that every index variable in a loop should be called "index"?
`car', and `cdr' and replaced in clojure with `first' and `rest'.
Once you've spent ten minutes with the language, these names aren't going to trip you up.
user=> (macroexpand '(defn f [x] x))
(def f (.withMeta (clojure.core/fn f ([x] x)) (.meta (var f))))
[edit: clarified an ambiguous initial statement]Mathematics and natural languages take the same approach, assigning the most commonly used bits of the language the smallest words/symbols. It makes the document easier to parse, when done within reason.
Autocomplete:
http://stackoverflow.com/questions/4289480/how-to-do-automat...
Debugging:
http://clojure.org/getting_started
Plugins:
https://github.com/swannodette/textmate-clojure
http://code.google.com/p/counterclockwise/
http://plugins.intellij.net/plugin/?id=4050
Options:
[emacs is too hard on windows] http://clojure.bighugh.com/
[but I use a mac] http://aquamacs.org/
[but I write ###.NET] https://github.com/richhickey/clojure-clr https://github.com/jmis/vsClojure
You don't need any of that to program with Lisp (although Emacs and SLIME can help)
I wish monitor real estate progressed at the rate of Moore's law, but I suppose we'd need bigger rooms to put them in before too long.
a * b
would be replaced by: multiply(a, b)
which is much more self-documenting :-)