3 ms·
I know backward compatibility with Java 5 is important for the clojure world, but I would love to see streams and invoke dynamic implemented in a "Clojure 2.0".
by tsmarsh 11y ago
I know backward compatibility with Java 5 is important for the clojure world, but I would love to see streams and invoke dynamic implemented in a "Clojure 2.0".
I would love to do it myself, if someone would pay me to do it :)
- pron 11y agoStreams are an API built on top of the Spliterator[1] abstraction, which basically gives a collection the option of partitioning an iterator into two, allowing parallel traversal of both partitions and thus parallelization via fork/join. Clojure already does something very similar with reducers[2], which are pretty much the same as Java streams, but implementing the reducer protocol to employ spliterators should be rather simple. [1]: https://docs.oracle.com/javase/8/docs/api/java/util/Spliterator.html https://docs.oracle.com/javase/8/docs/api/java/util/Splitera... [2]: http://clojure.org/reducers http://clojure.org/reducers
- WalterGR 11y agoI know backward compatibility with Java 5 is important for the clojure world... Why is that? (I googled but didn't find anything relevant.)
- djpowell 11y agoSince Clojure 1.6, Java 6 is the minimum requirement. I'm sure there is a discussion somewhere, but I expect that there are quite a few people who run Java on commercial J2EE app servers and the like which don't officially support newer JDKs.