This is an argument that will probably go on for a long, long time, and I wonder if it might have to do with the way that people think and program. Personally, I tend to throw together lots of small experiments in the process of developing, and being able to use short symbols for common operations is absolutely what I prefer. It is less annoying than having to type long-function-names-that-describe-what-they-do, but much more importantly, they can be read easier. Short names for common operations means fewer lines that have to be broken, and eventually I think your mind can pick up common patterns, like (conj lst foo) in one glance, rather than having to read a method name and think about what it is doing. The number of characters required to accomplish any operation should correspond inversely to its frequency of usage. Hence the syntax for #(...) anonymous functions, maps being functions of their keys, etc. I agree, it does add a bit to the learning curve, but I bet within two or three evenings of watching screencasts and writing mini programs you have conj, assoc and more soft-wired into your neural fibers.
I was going to say, "hey, you can always just make your own macros, and it won't even have a speed penalty." But actually, that is a bad idea. In Common Lisp people made 9 million versions of everything, even common utility methods, which means lots of libraries and support code feel half done, half maintained and half annoying. Life was much easier in the Ruby community, where the ruby way, much defined by Matz but evolved by the community, seems more accepted and used throughout. Clojure is already building on possibly the worlds largest code-base, Java, but I hope a similar level of unity will be maintained in the pure clj ecosystem. -Jeff Robert Lally wrote: > One of the many things that I really like about Clojure is that it > abandoned Lisp tradition where it was pragmatic to do so. One of the > prime examples for me was the use of first and rest rather than car and > cdr. Sure, I can read code with car and cdr but it never really > communicated that well; I always had to go through a translation step in > my head. > > With this in mind it surprises me ( and disappoints a little ) that > there are still abbreviated function names in many places - aget, aset, > assoc, conj, coll?, comp, and so on. Is there any need for this in the > 21st century? The trade off between meaningful method names and number > of characters typed doesn't seem to be a good one from my perspective; > particularly as IDE support matures and you will only need to type > 'asso' to have the IDE expand the function name to 'associate' for you. > Using full words as function names leads to more readable code .. which > can only be a good thing. > > I'm not suggesting that terseness is bad, merely that I don't believe > the trade off is worth it in this case. I've shown Clojure to a number > of people and the Lisp derived syntax coupled with abridged names makes > it harder for people to comprehend, makes it less likely that on first > encountering a piece of Clojure code that they'll be able to understand > it, and so make it less likely that I'll get to write Clojure for a > living ... which makes me sad. > > Just some thoughts. > > > Rob Lally. > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---