[hibernate-dev] Java 1.8-specific code in hibernate-infinispan

Sanne Grinovero sanne at hibernate.org
Wed Mar 2 05:30:40 EST 2016


Hi Vlad,
thanks for bringing that up: I mean to start a thread here among the
lines of my answers on twitter.

The problem I see in our little survey is that in the way it was
phrased it's not providing useful data for the purpose of
understanding what we should be supporting in the next version of
Hibernate libraries: to ask what JVM version people are using today
doesn't mean they'd upgrade Hibernate to the latest right away.

The reason is that I suspect people will be more comfortable to
upgrade the JVM version than they are comfortable with upgrading their
stack of frameworks and libraries; so when we get to know that 37% of
people (assuming the survey's sample is good enough) what I read in
that is that those 37% of people will not be migrating to Hibernate
5.0 either.. they are probably all using some 4.x version or maybe
even some 3.x version.

Why? Because until Java 9 all versions have been extremely
conservative on backwards compatibility; it's very unusual to not be
able to upgrade to a newer JVM (excluding Java9 here as it actually
does remove some methods for the first time in history). Frameworks
however have always been more aggressive in the deprecation & removal,
or simply cross-library compatibilities are often a pain, so I'm
pretty sure that people will be more comfortable in upgrading JVM than
their libraries: when someone doesn't even touch their JVM that's
usually because changing *anything* will require extensive and complex
testing, maybe break some certification, etc.. so upgrading Hibernate
is even less so interesting. No wonder people want us to backport
patches for so long!

So we should try to understand what kind of users are going to use Hibernate 6:
my bet is that it's either new projects, or teams who are comfortable
enough to upgrade to the latest in early months. More will use
Hibernate 6 in the following years, but at that point JDK8 adoption
will be even wider for sure.. if not obsolete.
Either way, do we expect these to run on a pre-8 Java?

I suspect a very small minority as I can only think of some very
limited reasons to do that:
 - you need some other dependency which doesn't even work on Java8
(very unlikely? And you're not trying to get rid of it?)
 - your company has some weird policies (to force an older,
unsupported JDK? And yet they'd allow your team to use the bleeding
edge yet Hibernate?)
 - they are stuck using some exotic framework -> which likely means
they can't upgrade Hibernate either but will need waiting for the
framework maintainer to do so.

So, yes I agree Hibernate ORM should probably require Java8: we get to
simplify a bit of our build and embrace some new APIs.

If we suspect it's premature, we might want to collect some more data
but the survey should be different.. however since I'm arguing that
this one was heavily biased favouring the pre-8 results and still it
shows a majority of people on 8.. maybe that's good enough to show
that we should!

Thanks,
Sanne



On 2 March 2016 at 09:52, Vlad Mihalcea <mihalcea.vlad at gmail.com> wrote:
> Although Java 1.8 has seen a great adoption rate, on the enterprise side
> things always move very slowly.
>
> https://twitter.com/Hibernate/status/700998618824753152
>
> Anyway, we shouldn't be stuck with 1.6 just because some legacy systems
> might not never migrate to a newer version.
>
> Other frameworks are also considering this move, like Spring 5.0. In my
> opinion, Hibernate 6.0 should also use 1.8.
>
> Vlad
>
> On Wed, Mar 2, 2016 at 11:38 AM, Radim Vansa <rvansa at redhat.com> wrote:
>
>> Btw., when does ORM plan to drop pre-8 support altogether? 6.0?
>>
>> Radim
>>
>> On 03/01/2016 10:18 PM, Steve Ebersole wrote:
>> > Correct.  hibernate-infinispan can use Java 8.  As Sanne says, Infinispan
>> > itself requires Java 8 so limiting hibernate-infinispan to > 8 really
>> makes
>> > no sense,
>> >
>> > On Tue, Mar 1, 2016 at 3:03 PM Sanne Grinovero <sanne at hibernate.org>
>> wrote:
>> >
>> >> In general, probably yes. The Infinispan module is a bit special
>> >> though, as Infinispan itself requires Java8 since Infinispan 8 so
>> >> noone will be able to use those modules on previous Java versions.. so
>> >> there's no point in avoiding pre-Java 8 code in there.
>> >>
>> >> On 1 March 2016 at 20:55, Gail Badner <gbadner at redhat.com> wrote:
>> >>> I see a pull request on master for hibernate-infinispan that uses
>> lambda
>> >>> expressions. [1]
>> >>>
>> >>> There is a separate pull request for 5.0 that does not use them, so
>> >> there's
>> >>> no need to backport in this case. [2]
>> >>>
>> >>> In general, should we avoid using lambda expressions in master?
>> >>>
>> >>> Thanks,
>> >>> Gail
>> >>>
>> >>> [1] https://github.com/hibernate/hibernate-orm/pull/1269/files
>> >>> [2] https://github.com/hibernate/hibernate-orm/pull/1268/files
>> >>> _______________________________________________
>> >>> hibernate-dev mailing list
>> >>> hibernate-dev at lists.jboss.org
>> >>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>> >> _______________________________________________
>> >> hibernate-dev mailing list
>> >> hibernate-dev at lists.jboss.org
>> >> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>> >>
>> > _______________________________________________
>> > hibernate-dev mailing list
>> > hibernate-dev at lists.jboss.org
>> > https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>>
>> --
>> Radim Vansa <rvansa at redhat.com>
>> JBoss Performance Team
>>
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev


More information about the hibernate-dev mailing list