Clojure is an amazing piece of work.
I'm interested in Clojure for the concurrency.
I'm also interested in the immutable data structure work.
Someone needs to write a paper about the performance
characteristics of immutable structures when the whole
structure changes. That is, what are the performance
comparisons of mutable/immutable for various sorts?
I'm using Clojure as a "console front end" to our
huge Java project. Rather than writing Java programs to
generate test or output I write Clojure.
Rich Hickey's insightful videos have caused me to stop
writing loops whenever possible. For me this is the same
level of "thinking-change" that happened when I moved to
using "Structured Programming" rather than GOTO (in Fortran).
Rich needs to write a paper called
"Loops considered harmful"
Common lisp, however, gives me precise machine-level to
massive function semantics, e.g. (car ...) is a machine
pointer and (integrate ...) is a huge function but I can
freely mix them in (integrate (car ...)). I don't feel the
same "one-ness" in Clojure/Java.
In general, I'm a common lisp bigot :-)
Tim Daly
rob levy wrote:
As an informal survey of people who use both Clojure and Common Lisp
for different projects, what do you see as the main determining
factors behind your choice to use either Clojure or Common Lisp for a
project, given the present state of Clojure. Let's only assume we
are talking about projects you completely own and have complete
freedom to do what you want with.
Common lisp:
Compiled on the processor, fast.
Reader macros.
Quality, not quantity of libraries.
Multi-paradigm programming with no nudging -- programmer has
freedom to be insane/bizarre in ways Clojure makes hard (see Let Over
Lambda for examples)
Downsides:
Hard to deploy. -- but not a problem as server side of web app
Can't run on on GAE. -- need to run a server or rent/maintain
virtual server.
Limited to native librares, though they tend to be awesome.
Clojure:
Neat concurrency stuff.
Better deployment.
Can run on Google App Engine. (maybe ABCL can too, but I wouldn't
want to use that personally).
Lots of Java libraries, many more than for CL.
Increasing a large number of awesome native libraries.
Downsides:
As server side of web app in apache, less straigtforward
requires Tomcat, Java crud.
Java interop is great-- but Java itself sucks! There is an
impedance mismatch of language semantics.
The nudging of paradigm/idiom makes many things easier in Common
Lisp.
Lots of cool benefits of Clojure (such as any/all GUI stuff for
example) depend on crufty Java nonsense you must contend with.
So, for me at this point, if I don't need interesting concurrent
stuff, and I do my own hosting, Common Lisp in Hunchentoot or mod lisp
still seems like a superior web development approach. On the other
hand if I am doing desktop apps, applets, want to use GAE, etc,
Clojure seems better. I feel like as time goes on we will be more
abstracted away from the pain of Java.
Any thoughts on how you make your decision for specific projects?
Thanks,
Rob
--
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
--
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