Mike, I think that the whole issue about Lisp creates a big cloud about Clojure.
Choosing a Lisp like syntax for a new language is a good choice because of the expressiveness, it requires less code lines, yields a better design, easier to test, ... That's a choice between a number of options. If it was the only sane one then we would all be coding using Lisp like syntax. That's not the case obviously. Talk to Ruby people, they made different choices... If you sum up Clojure as being a Lisp because of what it look likes and use only this to compare it to other languages then you are missing the forest and looking at a single tree. If you code in a Lisp like language using setq or set! or alike then you can get very far away from functional programming and end up writing procedural code with parenthesis. You will eventually face the issues that Clojure avoids. Clojure takes a brutal approach, forget the left-right assignment that almost every language eventually supports, forget variable mutations visible to everyone, forget procedural code... Oups these are the real show stoppers independently of the syntax used. There's no escapes in Clojure while in other languages you can still cheat (setq/set! and similar). What I found non-trivial in Clojure were these "restrictions", no the syntax. As soon as I understood the decisions behind these choices, my mental blockage vanished. Immutable data structures, transparent iterations over a variety of structures, lazy sequences, a workable STM implementation, parallel processing capabilities ridiculously simple to use, huge set of Java librairies available, easy to use, ... These are the real features that make Clojure distinct from other languages. All the choices made are sound and the sum of these decisions is coherent. Nothing looks like it's been added late to fill a gap like a nose in a face. Syntax by itself is nothing, it never made a good language implementation. I have a few years of Lisp behind me, I started to use Lisp in the 1980s.I used to prototype software in Lisp that I had to deliver in a more "classical" language. The main reason of this being the lack of basic librairies and incompatible Lisp implementations plus the maintenance issue. After my Clojure learning curve, I removed LispWorks from my desktop. I do not see the use for it anymore. My 25 years of experience is not the same as "5 years" of Scheme, I experimented more stuff in software in various environments than the majority of today's average developer. I adhere to justified critics when a rationale has been exposed otherwise I call it (repeat "blablabla"). To expose some rationale it implies that you understand the subject you are talking about. If you don't then you should be cautious about what you state or you state it conditionally. The above does not mean that I will not ever critic Rich's bad decisions in the future. I do not see this likely to happen however given its present score... Luc On Thu, 2009-12-17 at 19:02 -0500, Mike Meyer wrote: > On Thu, 17 Dec 2009 10:26:03 -0800 (PST) > Santhosh G R <kusim...@gmail.com> wrote: > > > > You warn that you learn languages "just for the fun of it". I would be > > > curious to know how much time you spent learning Clojure... > > > > I have been working with Scheme for the past 5 years. > > I think this is a critical element! > > > Yep, I don't have 20+ years in development; neither 12+ months in > > Clojure. My learning of Clojure has been for the past 2-3 months. > > I expect that 5 years with Scheme is worth more than 20+ years with > C/C++/Java when it comes to learning Clojure. Clojure is, after all, a > LISP dialect. Once you've gotten your mind around the proper way to > write programs in LISPy languages - which is a non-trivial thing - > adopting to another one is fairly easy. I feel that mind-set coming > back after my absence from the language as I read through the > examples. The other unique features of Clojure should be relatively > straightforward to deal with once you've gotten past this. > > > > So either you are a genius and went through Clojure faster than we > > > could, learning all the features it offers, or you just skimmed the > > > surface. > > Neither a genius, nor did I skim through. > > Right. Just someone who was already familiar with programming in a > LISPy environment. > > > I completely miss this. As I said "I am not a clojure developer. I am > > a programming language enthusiast and have learnt multiple languages > > with different programming paradigms; just for the fun of it. > > Programming languages which I know are Java, Python, Scheme, okie- > > dokie PERL, C# which for me is Java with a different library and > > idiom, C, C++ including the (in)famous STL, COBOL & FORTRAN purely > > because it was in my syllabus, Javascript both in its prototype and > > functional forms. I have tried to be unbiased; if it exists it might > > be due to my stronger background in Java, Python, Scheme." > > Given that list of languages, I'd suggest taking a look at > Eiffel. It's imperative and statically typed, but it's a lot saner > than the C++/C#/Java languages. It has a high mechanism for dealing > with concurrency that make an interesting contrast to STM. It's the > source of the function pre/post condition facilities that Clojure has. > > <mike > -- > Mike Meyer <m...@mired.org> http://www.mired.org/consulting.html > Independent Network/Unix/Perforce consultant, email for more information. > > O< ascii ribbon campaign - stop html mail - www.asciiribbon.org > -- 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