kafka-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Davison <ben.davi...@7digital.com>
Subject Re: [DISCUSS] Java 8 as a minimum requirement
Date Thu, 16 Jun 2016 20:59:39 GMT
+ 1

On Thursday, 16 June 2016, Craig Swift <craig.swift@returnpath.com.invalid>
wrote:

> +1
>
> Craig J. Swift
> Principal Software Engineer - Data Pipeline
> ReturnPath Inc.
> Work: 303-999-3220 Cell: 720-560-7038
>
> On Thu, Jun 16, 2016 at 2:50 PM, Henry Cai <hcai@pinterest.com.invalid>
> wrote:
>
> > +1 for Lambda expression.
> >
> > On Thu, Jun 16, 2016 at 1:48 PM, Rajiv Kurian <rajiv@signalfx.com
> <javascript:;>> wrote:
> >
> > > +1
> > >
> > > On Thu, Jun 16, 2016 at 1:45 PM, Ismael Juma <ismael@juma.me.uk
> <javascript:;>> 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
> > > >
> > >
> >
>

-- 


This email, including attachments, is private and confidential. If you have 
received this email in error please notify the sender and delete it from 
your system. Emails are not secure and may contain viruses. No liability 
can be accepted for viruses that might be transferred by this email or any 
attachment. Any unauthorised copying of this message or unauthorised 
distribution and publication of the information contained herein are 
prohibited.

7digital Limited. Registered office: 69 Wilson Street, London EC2A 2BB.
Registered in England and Wales. Registered No. 04843573.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message