@Jeff Klukas What is the concern about scala 2.11 vs 2.12? 2.11 runs on both java7 and java8
2016-06-16 14:12 GMT-07:00 Jeff Klukas <jklu...@simple.com>: > Would the move to Java 8 be for all modules? I'd have some concern about > removing Java 7 compatibility for kafka-clients and for kafka streams > (though less so since it's still so new). I don't know how hard it will be > to transition a Scala 2.11 application to Scala 2.12. Are we comfortable > with the idea of applications stuck on Scala 2.11 or otherwise unable to > update to Java 8 not having access to new client releases? > > On Thu, Jun 16, 2016 at 5:05 PM, Philippe Derome <phder...@gmail.com> > wrote: > > > I strongly support motion having difficulty running (Apache Kafka as > > opposed to Confluent) Stream examples with JDK 8 today. > > On 16 Jun 2016 4:46 p.m., "Ismael Juma" <ism...@juma.me.uk> wrote: > > > > > Hi all, > > > > > > I would like to start a discussion on making Java 8 a minimum > requirement > > > for Kafka's next feature release (let's say Kafka 0.10.1.0 for now). > This > > > is the first discussion on the topic so the idea is to understand how > > > people feel about it. If people feel it's too soon, then we can pick up > > the > > > conversation again after Kafka 0.10.1.0. If the feedback is mostly > > > positive, I will start a vote thread. > > > > > > Let's start with some dates. Java 7 hasn't received public updates > since > > > April 2015[1], Java 8 was released in March 2014[2] and Java 9 is > > scheduled > > > to be released in March 2017[3]. > > > > > > The first argument for dropping support for Java 7 is that the last > > public > > > release by Oracle contains a large number of known security > > > vulnerabilities. The effectiveness of Kafka's security features is > > reduced > > > if the underlying runtime is not itself secure. > > > > > > The second argument for moving to Java 8 is that it adds a number of > > > compelling features: > > > > > > * Lambda expressions and method references (particularly useful for the > > > Kafka Streams DSL) > > > * Default methods (very useful for maintaining compatibility when > adding > > > methods to interfaces) > > > * java.util.stream (helpful for making collection transformations more > > > concise) > > > * Lots of improvements to java.util.concurrent (CompletableFuture, > > > DoubleAdder, DoubleAccumulator, StampedLock, LongAdder, > LongAccumulator) > > > * Other nice things: SplittableRandom, Optional (and many others I have > > not > > > mentioned) > > > > > > The third argument is that it will simplify our testing matrix, we > won't > > > have to test with Java 7 any longer (this is particularly useful for > > system > > > tests that take hours to run). It will also make it easier to support > > Scala > > > 2.12, which requires Java 8. > > > > > > The fourth argument is that many other open-source projects have taken > > the > > > leap already. Examples are Cassandra[4], Lucene[5], Akka[6], Hadoop > 3[7], > > > Jetty[8], Eclipse[9], IntelliJ[10] and many others[11]. Even Android > will > > > support Java 8 in the next version (although it will take a while > before > > > most phones will use that version sadly). This reduces (but does not > > > eliminate) the chance that we would be the first project that would > > cause a > > > user to consider a Java upgrade. > > > > > > The main argument for not making the change is that a reasonable number > > of > > > users may still be using Java 7 by the time Kafka 0.10.1.0 is released. > > > More specifically, we care about the subset who would be able to > upgrade > > to > > > Kafka 0.10.1.0, but would not be able to upgrade the Java version. It > > would > > > be great if we could quantify this in some way. > > > > > > What do you think? > > > > > > Ismael > > > > > > [1] https://java.com/en/download/faq/java_7.xml > > > [2] https://blogs.oracle.com/thejavatutorials/entry/jdk_8_is_released > > > [3] http://openjdk.java.net/projects/jdk9/ > > > [4] https://github.com/apache/cassandra/blob/trunk/README.asc > > > [5] > https://lucene.apache.org/#highlights-of-this-lucene-release-include > > > [6] http://akka.io/news/2015/09/30/akka-2.4.0-released.html > > > [7] https://issues.apache.org/jira/browse/HADOOP-11858 > > > [8] https://webtide.com/jetty-9-3-features/ > > > [9] http://markmail.org/message/l7s276y3xkga2eqf > > > [10] > > > > > > > > > https://intellij-support.jetbrains.com/hc/en-us/articles/206544879-Selecting-the-JDK-version-the-IDE-will-run-under > > > [11] http://markmail.org/message/l7s276y3xkga2eqf > > > > > >