Am 03.01.2011 21:45, schrieb pavelludiq:

On Jan 3, 11:24 am, Jozef Wagner<[email protected]>  wrote:
Some of my arguments are:
- Clojure has no custom reader macros, makes it easier to read others code
- Protocols and the way clojure handles data helps to explicitly formulate
specifications and designs
- Fresh syntax which improves readability
- Easy integration with familiar technologies thanks to JVM
- Modern collection types, not just lists

I've been playing a lot with common lisp these last few months, I'll
just share my oppinion on these points:

- Reader macros. How often are they used in common lisp anyway? And
how many of these uses are abusive or inappropriate? I don't believe
this has such a great impact on clojures popularity.

I also don’t think that the lack of RMs is what made Clojure popular.


- Im no expert in neither clojure protocols or CLOS, and I'd love for
someone more knowledgeable to confirm or deny my suspicions, but
aren't clojure protocols a variation on lisp generic functions, made
to fit the jvm better and give better performance? What, other than
absence of inheritance, do they give you over GFs? You can write java-
like code in CLOS, but the way I've been using it is very similar to
the way i use protocols in clojure.

Yes, you are right. Protocols are a special case of Clojures GFs, which
cover, say, 90% of all cases and do so more efficiently.
In principle they are syntactic sugar for hand written dispatch code.
From that perspective
Protocols < CLs GFs < Clojures GFs < Pattern Matching


- If by fresh syntax you mean reader support for vectors and hash-
tables, i agree, it's very convenient to have it built in, in common
lisp I'd have to write my own reader macros to do it. And i'd have to
document it, and tell everyone on my team to use it and not to get
confused.

Unfortunately all code that is already written does not use those RMs.
It is of high value that Clojure enforces these RMs on all its users,
and being able to reproduce this in CL does not make up for it.
If you wish to end up with a modern and readable version of CL you would
have to make it look like Clojure. But then one could take the original
right away…


- I don't believe i understand this completely, do you mean library
support? If so, i agree.

ABCL, a CL implementation has the same support for libraries. It can
even use Clojures persistent data structures.


- Yes, clojures persistent collections are a huge win, and i miss them
in common lisp

There is fset. Not as nice as what Clojure offers, but still better than
nothing. Also, if ABCL meets your requirements you can add Clojure as a
dependency and use it as a lib.


In my opinion, and im sure some might disagree, even though clojure
has a lot of technical advantages over other lisp dialects, and is
generally a very well designed language, its popularity is mostly the
result of exceptionally good marketing.

I could believe that more if other Lisps had not a few more decades of
time to develop/evolve a better marketing strategy. There were big
amounts of money in, Apple tried to do Dylan, and as mentioned tons of time.
I can agree that Rich’s marketing skills are involved in Clojures
success, but I doubt that they are the main reason.

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
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

Reply via email to