As the implementor Rich, it's your
call as I said :))
If auto promotion brings in chaos
then lets drop it entirely.
If people want to eat elephants they can still choose to use directly
big number
implementations.
Luc P
Sent from my iPod
On 2010-06-22, at 10:46 AM, Rich Hickey <richhic...@gmail.com> wrote:
-----------
The claim that this primitive stuff is just for numeric-intensive
applications is outrageous and false, and ignores the implementation
of Clojure itself to an embarrassing degree. I've worked my tail off
to reduce the number of allocations inside things like sequences etc
to the absolute minimum. Now down to 1 per step, and with chunks
1/32 per step. Moving from 1 to 2 or 3 per step would result in a 2x
to 3x slowdown for every consumer of these fns.
Everyone has to realize the math you are advocating for the default,
on non-tagged architectures like the JVM and CLR, *must* do an
allocation on every +/-/* etc operation. And such ops are littered
throughout non-numeric data structure code, for indexes, offsets,
bounds etc. Allocating on every math op in something like the
persistent vector would make it completely unusably slow.
The languages being pointed to (Ruby, Python, Mathematica) write
their hard bits in C, or, for the J versions, Java.
Well, guess what, all of the things I've written in my career have
been hard bits. Those languages were unusable for any of my
production work, for performance reasons. I wrote Clojure so I could
stop writing Java and C#, not Ruby, because I couldn't have used
Ruby in the first place.
And, I think some people are considering moving from Ruby to
Clojure, for the hard bits of their systems, in part *because*
Clojure has a better performance profile, their alternatives being
Java or Scala, not Python or Groovy.
Now you're all sitting on the end of the food chain, eating gazelles
and saying, 'who needs photosynthesis to be easy'?
;-)
I do. And so do you if you appreciate fast gazelles. You wouldn't be
able to use a Clojure written in the default Clojure you are
advocating.
Rich
--
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
--
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