Imagine a Red Hat evil twin, developing an Arm64 port behind the closed doors, releasing it under SSPL, requiring a CLA and not accepting merge requests for a potentially paid feature, Windows on Arm64 support.
I'm a sample size of one, but I often pick a permissive BSD/MIT license for the personal software I develop, and at times will pick BSD-licensed over GPL-licensed software. I prefer the brevity and clarity of the shorter licenses, personally. I've also found that, sometimes, if there are two similar projects with a BSD vs GPL split, the BSD project tends to be more pragmatic and focused on the product/code more, while GPL projects err towards ideology, possibly at the cost of functionality. OpenSSH vs lsh as an example.
> Thankfully they couldn't; OpenJDK is released under the GPL. Copyleft works, people!
Not quite.
There are many commercial JDK/JVM offerings that are closed source and survive very well with their "secret sauce" (usually GC related), such as Azul's Zing JVM.
Red Hat's customer base that used JavaEE containers (and just Java code in general) was large enough that Red Hat could have easily decided to implement and maintain their own JDK offering - but they didn't.
Probably based on Red Hat's history of being a good open source "netizen", they chose to use the GPL code even though they did not have to.
We're all better off because of Red Hat's contributions to OpenJDK (porting to 64 bit ARM included) - but that's not exactly "Copyleft works!".
Redhat is a big contributor to OpenJDK, so there's really less of a "maybe not" than you think. Even Azul maintains an OpenJDK distribution, so copyleft is playing a part in keeping things more open and supported than not.
The part OP missed, and perhaps you may be overlooking, is none of these companies are required to use OpenJDK (and the GPL'ed code) for some unavoidable business reason.
They opted-into using it consciously.
Red Hat because they embrace Open Source above all else (or at least did at the time), and Azul as opportunists during the decline of Oracle JDK as a way to get Java users into their ecosystem (and eventually make money).
OpenJDK is wildly popular as the defacto reference implementation of Java, due to moves Oracle made a few years back (on purpose to push Java language development into a more community-driven approach).
OpenJDK is good, but there are reasons people seek out custom implementations (massive heaps, pauseless GC, better tooling and monitoring, re-implemented IO, etc).
All that is to say, contrary to OP's original assertion, it's not that Red Hat "couldn't" release some closed source JDK... they chose to embrace the GPL'ed code.
The notion that "Copyleft Works!" is by compelling companies to open source their GPL'ed code. That's not what happened here.
This is really a distinction without a difference, none of these companies choose to forego a OpenJDK distribution and all of them actually contribute to it. If it wasn't compelling to do these things, they wouldn't do it.
FOSS and copyleft isn't about requiring anyone to do anything, it's about increasing user freedoms. Users and developers have more choice today in the Java ecosystem thanks to all of JDK distributions. I think it's you who has mistaken OPs comment to mean companies are being required to do something, when in fact everyone is benefiting by playing by the same copyleft rules.
Just so that people understand, OpenJDK is the name of Oracle's implementation of Java, to which Red Hat, SAP, Intel, Azul, Google, Twitter and others contribute, but Oracle contributes ~90% of the work. "Oracle JDK" is Oracle's support subscription, but the source code to that software is OpenJDK. A couple of years ago Oracle completed open-sourcing the entire JDK, making the JDK fully free and open source for the first time in Java's history, and now it offers no proprietary features. It also started focusing more on, and shifting people's attention to, the OpenJDK brand.
Because Oracle owns the OpenJDK code, only Oracle and companies that license the OpenJDK source code under a proprietary license from Oracle, like Azul, can release closed-source implementations of the JDK that are based on OpenJDK.
Like other large open-source projects by Google, Microsoft and others, contributors sign a contributor's agreement that gives Oracle joint ownership. This means that, in addition to the GPL license, either you or Oracle can license that code as you or they please. This is a fairly standard practice.[1]
there's so much confusion about this maybe a analogy, loath as I am, may help : call a architect and construction management company Oracle and a contractor interior designer / HVAC specialist Azul providing specific undertakings to complete a number of the apartments in different specifications from the Oracle standard. To obtain the opportunity to sell individual apartments for profit in the condo, Azul undertakes to complete a amount of general labor throughout the construction project. The two agreeing to build a condo both will both let apartments therein, however regardless of what proportionate contribution and value of labor Azul provides, the title absolute and whole equity demise to Oracle because there would be no project without Oracle.
Hereby Azul are being paid for all their contributing work with the concession and ability to sublet their allocated apartments with variations in specifications independently and without any lien to Oracle once their part is done.
Oracle being the project lead and majority financiers, contracted to retain the option of applying the same specifications and features built by Azul to their wholly owned apartments.
of course the analogy breaks there because in software applying the Azul spec to more properties doesn't cost additional labor. Such is the intrinsic and amazing value of leading valuable software initiatives.
I'm tempted to suspect that my analogy makes visible to see a unfortunate development in popular opinion concerning software that has emerged in this century : like with property there seems to be intrinsically personal and non objective assumption of illicit and unseen practices at work in creating the accrual to the capital investor which is their whole and fundamentally natural right to receive and enjoy.
this worries me because it effectively co-opts the incredible natural beauty and value of software : labor free replication and reuse.
I will go so far as - only because of the contexts in which I have recently been caused to defend / explain the economics, which have been not pleasant experiences - to say that this is a terrifying and insidious assault on the most important advance of capitalism itself.
with the Times of London in 2018 revealing the record shows Harold Wilson when Prime Minister in 1958 was permitted to receive a prize for poetry composition awarded by the Soviet GDR of £20,000 then that would have bought properties worth over ten million pounds today... Wilson and May and Johnson all unelected and May creating laws for internal passport and visa civilian movement control only after the maximum 3 statutory refusals by Parliament (Lords rejecting) to pass the law before prerogative force majeur was used to force the legislation that devolved the entire legislation and executive implementation of British law to secret meetings without any reporting rules of any two members of the privy council...
the last points you can research at statewatch.org and I must say that I profoundly wish I was inventing this but everything is entirely public information, as is how shortly after that "prize" award, Wilson told a delegation representing all Jewish members of Parliament who sought advice after the security services confirmed their relatives in Soviet counties were credibly threatened and being bullied to seek to cause a reversal to the British position on Palestine which wasn't to grant independence and create Israel at all. I never remember his Foreign Secretary of the time but if you find his long out of print memoir the names are named and it's fully revealed by the highest office concerned. and to this day people wonder why there's anti semitism rampant in the Labour Party. no shoot Sherlock, after Wilson slapped the official secrets act to conceal him throwing the members to the wind without any support or advice, obviously their colleagues considered the en bloc vote face to be treasonous betrayal. We're hiding known public history despite doing so causing incredible ten...
is there demand for a book in plain English describing the circumstances surrounding the constitution of the major software ecosystems in current use?
because I am looking for a writing project and I have two decades of experience in IP law acting for my very small company in fields from advertising and trade dress and international trademark thru music royalties and as far as the limits of conceptual reduction for algorithm invention protection.
I've put the proposal this became in my profile because I am imminently relaunching my 25 years old business as a education trust foundation for publishing technology and other works with radically improved economics especially for independent students not attending recognised institutions and the simply curious public for who I am going to publish plain English works about critically misunderstood technology initially financed by income from commercial rights I'm transferring.. this means that I can back up what I'm pondering here and back it up with some considerable preparation and immediately available support for anyone who thinks this is perfect lock down occupation and not charitable occupation I am not ever going to accept gifted writing or art under any circumstances nor will I ever pay below market / union. the very purposes of my work for years soon launching is to illuminate the media industry with open intelligible and easily operable legal mechanics and provide the lowest cost tools possible while retaining absolutely every possible revenue for the creator. I had better submit this instead of fretting about being moded down and how late I am with launching my foundation properly but this whole sub thread has screamed it is the very precise target for the most urgent need for clarity which I am set about providing already in other fields in readiness now and so it just feels wrong thinking about cutting out what I've said especially since its definitely not any form of promotion and I guess ironic trying to solve misunderstanding about licensing using a publishing organisation founded on another copy left licence agreement condition. I simply had gotten to be incapable to look at the screen any time I started reading another frustrated report about the poor state of open source software documentation and I looked around at all the brilliant efforts freely available but only on the Web and wondered what I have to do to make the already written good works provide for the development of the missing works desperately needed.. and I will shortly find out how good my solution really is check my profile if curious further...
Yes, Oracle open sourced its entire JDK project, i.e. OpenJDK, but while anyone can offer builds under the GPL's license, Oracle and its licensees can publish builds under a proprietary license. Oracle hasn't stepped back from anything, and, in fact, has only increased its investment. OpenJDK is the Oracle implementation. We've just shifted branding focus to the OpenJDK brand rather than the "Oracle JDK" brand, which is now the name of a support subscription.
We could be splitting hairs here - but Oracle has indeed stepped back from being the "official" offering.
Each new LTS JDK release gets a "caretaker" which provides the "official" OpenJDK build for that release. Azul gets a turn, Oracle gets a turn, etc. This is a stark contrast to pre-JDK9 where Oracle was the only "official" build.
Starting with JDK9, the licensing for an Oracle-provided JDK got a lot more murky, which seems to have been on purpose (to push Oracle into a support position instead of leader position). It cleared the way for Oracle to be "just another vendor offering paid support" along with IBM, Red Hat, AdoptOpenJDK, Azul, Amazon, etc.
This transition was started around OpenJDK7, where Oracle made a lot of effort to make OpenJDK the "upstream" and "reference" implementation for all other JDK's and the language specification.
While many OpenJDK contributors are on the payroll of Oracle, it wouldn't be fair to say they are steering the entire ship at this point, nor does anyone require a license agreement to offer OpenJDK binaries - with the exception of actually calling it "OpenJDK" (see agreement above for "sharing" LTS releases) - hence "AdoptOpenJDK" and "Zulu JDK", etc... all OpenJDK builds that don't call themselves OpenJDK.
It was one of the more surprising things Oracle has done in years... and many applauded the changes.
The only licensing change Oracle has done is to make the JDK 100% free and open-source. The license of the JRE didn't change; it had simply been discontinued and replaced by something much better.
You have some interesting perspectives, as an insider.
> The only licensing change Oracle has done is to make the JDK 100% free and open-source.
JRE/JDK8 had a very public, nasty license change during one of the late releases (200+ or something) that quite literally had a popup on people's computers stating commercial use of Oracle JDK would require payment to Oracle going forward.
That's quite an extreme change, and set off quite a panic in the Java world.
It wasn't until some time later Oracle made it clear this move was because, going forward, Oracle would be a vendor of Java that happens to sell support and a licensed JDK/JRE, among many others. This is when Red Hat, AdoptOpenJDK, Azul and others stepped into the limelight with this LTS release time-sharing agreement.
It may be true majority of the governing body overseeing Java's development is employed by Oracle... but that doesn't make these other things true. Oracle took very deliberate, calculated steps to put Java into the hands of OpenJDK and ensure they were a major contributor - but not the sole dictator of Java's future.
The reason AdoptOpenJDK, Red Hat's OpenJDK port, Azul and others are gaining so much ground these days is directly a result of the changes Oracle consciously made. It really is one of the few surprisingly good things to come out of Oracle in the past few years - and was extremely forward thinking.
> JRE/JDK8 had a very public, nasty license change during one of the late releases (200+ or something) that quite literally had a popup on people's computers stating commercial use of Oracle JDK would require payment to Oracle going forward.
Nope. It was neither nasty nor a change. JDK 8, is out of the ~5 year free public updates period, just like all JDK versions before it. The only difference from the past is that extended support is now cheaper.
The reason people see the popup that they hadn't before has nothing to do with any license change but with the mere fact that the JRE is now discontinued (and replaced with jlink runtimes). In the past, when 7 was out of public updates, people got a popup to update to 8. But 8 was the last ever JRE version, there's nothing to upgrade to, so people just got a popup that it's out of free public updates.
> That's quite an extreme change, and set off quite a panic in the Java world.
I don't know who panicked and why, but all JDK versions have always been out of a free public update period after about 5 years. I wouldn't call the drop in support prices an "extreme change," but I'm sure it's a welcome one.
> This is when Red Hat, AdoptOpenJDK, Azul and others stepped into the limelight with this LTS release time-sharing agreement.
First of all, none of those companies offer an 8 JRE, because OpenJDK was not yet open-source in version 8, and OpenJDK 8 doesn't have the JRE (it's missing Applets and Web Start, for example, the very things people need a JRE for).
Second, there is no such agreement. Oracle passes the leadership of backport projects of old releases when a new release comes out to whoever steps up. AdoptOpenJDK, by IBM, are barely involved
with OpenJDK at all, and aren't in the same bucket as Azul and Red Hat, which do make significant contributions to OpenJDK.
> The reason AdoptOpenJDK, Red Hat's OpenJDK port, Azul and others are gaining so much ground these days is directly a result of the changes Oracle consciously made.
All of those are support programs for an open-source project developed, for the most part, by Oracle; they're not ports. Everyone is gaining ground mostly because support prices are lower and many have yet to upgrade past 8.
> I don't know who panicked and why, but all JDK versions have always been out of a free public update period after about 5 years
People panicked because, unlike before, it didn't just say "we're no longer updating this, but you can continue to use it". No, instead it was a shakedown for money if you continued to use it past some specific date listed in the popup. Painting that as normal is disingenuous, and rightfully led to a very public Oracle JDK exodus.
> First of all, none of those companies offer an 8 JRE, because OpenJDK was not yet open-source in version 8, and OpenJDK 8 doesn't have the JRE
Azul seems to disagree. They have a JRE7[1] and JRE8[2] offering.
> (it's missing Applets and Web Start, for example, the very things people need a JRE for).
I doubt people need a JRE for Applets or Web Start anymore. So that's not the reason. Old Legacy Java5 Applets aren't going to run on Java9+ without other significant changes anyway.
If I go to Oracle's website, it's difficult to find where to download any version of Java JRE or JDK without being bombarded with a plethora of "Subscribe and protect your Java investment!" and many other calls to pay for support and what-not. That's their prerogative. Nothing is wrong with Oracle wanting to charge people to use their binaries - and this reinforces my earlier points about Oracle stepping back into "just another JDK vendor" role. You may disagree with that exact phrasing, but I do not believe the distinction of contributing more code matters for the point I am raising.
If what you say about Oracle and their flavor of the JDK is true... well then Oracle has a massive optics problem because out here, outside the inner OpenJDK circle, the Java8 thing was quite a fiasco and definitely led to many organizations trying out Oracle's JDK "competitors" for the first time.
> they're not ports
Never said they were. They're OpenJDK source compiled and offered in a binary for free without any strings attached - far from what Oracle's messaging was at the time of all this.
> Painting that as normal is disingenuous, and rightfully led to a very public Oracle JDK exodus.
It's not "painting it as normal." This is the actual normal. It's just that there has always been an update. It is also not true that you cannot continue an updated version past the end of update period.
> Azul seems to disagree. They have a JRE7[1] and JRE8[2] offering.
They really don't. They have an offering of something they call a JRE, but isn't. Try to run Applets or Web Start on it.
> Old Legacy Java5 Applets aren't going to run on Java9+ without other significant changes anyway.
Most Java 1.0 applications run on Java unchanged, and the JRE is to run Applet's and Web Start. Now there are custom Java runtimes created with jlink.
> If I go to Oracle's website, it's difficult to find where to download any version of Java JRE or JDK without being bombarded with a plethora of "Subscribe and protect your Java investment!"
Nope. Here's the official JDK from Oracle for non-support customers. You'll get bombarded with nothing: http://jdk.java.net/
> Nothing is wrong with Oracle wanting to charge people to use their binaries
But we don't. You're looking at the support subscription. The website clearly links to the 100% free JDK for people who aren't interested in support: http://jdk.java.net/
> but I do not believe the distinction of contributing more code matters for the point I am raising.
Oracle is to OpenJDK what Google is to Chromium. It is the main developer of OpenJDK (by a huge margin), and the steward of Java. That it's changed how it funds its investment in OpenJDK didn't change any of that. This is easy to see if you follow OpenJDK's development.
> the Java8 thing was quite a fiasco
What fiasco? You mean that some people insisted on using unmaintained libraries, ignored warnings about undocumented APIs for years, and then, when Oracle upped the investment and things started changing some ill-maintained dependencies broke? You realise that this hadn't happened before because they platform wasn't changing much because of a decline in investment in Sun's dying years?
> They're OpenJDK source compiled and offered in a binary for free without any strings attached
That's great, just like Oracle's binaries, which, again, are here: http://jdk.java.net/
You are mistaken about some things (I am an OpenJDK developer who works at Oracle). Oracle is the company that develops OpenJDK in a similar sense to how Google develops Chromium. Sure, other companies and individuals contribute, and some contributions are big impactful features, like the wonderful Aarch64 port by Andrew and others, but the lion's share of the work is done by Oracle.
Also, OpenJDK has always been the name of the open part of Sun's, and later Oracle's JDK; it's just that Oracle has made that part 100%. It's not some separate implementation. If you go to the OpenJDK homepage and click the download link, you will get the OpenJDK builds by Oracle that are free and come without support. "Oracle JDK" is the support service. Yes, it's great that Oracle open-sourced the entire JDK, but its investment in developing it has increased not decreased.
Now, OpenJDK has no notion of LTS whatsoever. LTS is a service offered by any company for any version, although most companies offer it for the same versions Oracle chooses. In any event, you weren't referring to LTS but to OpenJDK Updates. Oracle leads the bug and security-fix updates for all versions for six months. After which, other contributors may step up to continue leading the maintenance of updates for old versions for as long as they won't, but they don't do original maintenance, but rather backport patches from the mainline.
~90% of the full-time OpenJDK contributors are employed by Oracle, and close to 100% of the changes to the specification are done by them (you don't have to take my word for it; you can look at the list of teams and projects, http://openjdk.java.net/census, and get the people's company at https://db.openjdk.java.net/people;all active projects and teams are led (and mostly done) by Oracle employees, except for some ports, Shenandoah, and backports to old releases. Don't get me wrong -- we work with contributors from other companies every day, and they do more and more and that's exciting and amazing -- but we also do more and more.
Anyone can build and distribute OpenJDK binaries, but to do so under a different license from the OpenJDK license requires obtaining the code from Oracle under a different license.
They couldn't develop a _port_ though, that would violate the GPL. They could write their own JVM from scratch without using any OpenJDK code, but decided here that it was easier to ""only"" port OpenJDK.
Copyleft can't prevent other people from making a clone of your software, but it does redefine the choices to "clone software entirely" or "fork existing software and share changes", it removes the option of "fork existing software and DON'T share changes", i.e. benefiting from the open source nature of the project without giving those same benefits to others.
> They couldn't develop a _port_ though, that would violate the GPL.
The person you're replying to already gave you an example of someone who does exactly what you're saying is impossible!
> There are many commercial JDK/JVM offerings that are closed source and survive very well with their "secret sauce" (usually GC related), such as Azul's Zing JVM.
How does that work? Even if code is GPL if you own it you can do what you want with it. That includes licensing it to someone under a _different_ licence. Being available under the GPL does not mean it can't also be available under another licence, such as a proprietary one. Which is what is done in this situation.
> but it does redefine the choices to "clone software entirely" or "fork existing software and share changes" .. it removes the option of "fork existing software and DON'T share changes"
This is all conditional on Oracle actually giving others a proprietary license like Azul received. Oracle can say no, and in this case they might actually have given that it's ARM and not some proprietary chip that only Azul makes and sells AFAIK. There are no such conditions if you want to port the GPL code.
My understanding is the part of OpenJDK Zing is based on is entirely owned by Oracle, so they can give Azul a license for it.
Oracle could not do that for all of OpenJDK today unless OpenJDL has a super weird CLA that signs away ownership of the code because they do not own all of the code.
That's business as usual. Open source is breaking the norm of the corporate world and that is usually what makes a product like raspberry pi gain traction. Because it's accessible enough for regular people to play with for free.
Countless manufacturers have made closed products and sold them for license money. Nothing new there.
This is nice and makes Red Hat look like an amazing OSS contributor, which I think they are.
But truth be told, things were not that easy when it comes to RHEL and derivates on aarch64.
As contractors working on getting stuff working on aarch64, I know we struggled quite a bit to get CentOS7 to get to the level Ubuntu was at the time on aarch64. And real progress (i.e. getting a fully working distro for our intents at the time) was only seen after money were thrown and a contract was signed.
The bottleneck however paid off imo - Red Hat insisted on doing things slow and steady, so once things started landing in the distro, they just worked. Unlike other distros which touted aarch64 support early, but struggled to fix issues along the way.
I remember working with OpenJDK and Opendaylight on aarch64. The crashes I've seen were terrifying. The JVM crashed so hard, our expert Java developer laughed 30 minutes straight looking at one trace. To this day I have no idea what was so funny, as he couldn't explain it in a simple manner and I lost interest.
Anyway, thank you Red Hat developers for all the work (minus the systemd "architects", but that's a different story).
Java for ARM is really exciting. I'm wondering however how Java Memory Model implementation performs on ARM.
JMM offers pretty strong guarantees via the fundamental happens-before relationships in program behaviour. It's relatively easy to implement on x86's strong TSO, but ARM is extremely problematic to offer the same guarantees on.
Can't wait to run some concurrency benchmarks on this platform.
On that subject, as someone that knows nothing about either POWER (or Aarch64), I'm curious if anyone could describe the ways in which they are different?
There's not a whole lot different practically. The big thing being that PowerPC32 is basically free for a PowerPC64 design, but 32 mode is pretty costly for an arm64 design.
Oh, and the PowerPC MMU format is famously terrible, and even the new fixed version is somehow still awful.
The most important practical difference is that Power PC is not multi-copy atomic. That is to say, "[the PPC] memory system does not guarantee that a write becomes visible to all other hardware threads at the same time point." AArch64 does guarantee this property, although it was not documented as doing so in the first release of its specification. For this reason PPC has to emit some extra StoreLoad memory fences.
(See "A Tutorial Introduction to the ARM and POWER Relaxed Memory Models" by Luc Maranget, Susmit Sarkar and Peter Sewell, but be aware that the AArch64 specification has changed since that paper was written. Our work has resulted in Arm clarifying the AArch64 specification in a couple of places, for which I'm grateful.)
The Aarch64 ISA was designed to map easily to the C++11 memory model. The C++11 memory model is heavily inspired by the Java memory model. You have nothing to worry about.
I love this writeup, esp around how the dev team architected the work to derisk the work before hardware was available and how the emulator/instruction interpreter actually sped up development velocity over using hardware directly.
It worked far better than I expected. Around the turn of this century I was involved in bringing up the software for a new processor made by a certain large semiconductor company (you might be able to guess!) The early hardware didn't work perfectly, the operating system wasn't ready, and the compilers were flaky. The cost of writing a simulator was cheap when compared with avoiding all of that pain and getting first-mover advantage.
No matter what happened with CentOS, i have huge admiration to redhat, the IT industry would be a very different world if not for Redhat driving a lot of the OSS
as a totally tangentially related thing, we just released a proof of concept version of kodi with java on aarch64 for android. i.e. first time in the open source world one can play blurays on a 64 bit arm android os with full java menus (well, that's mostly the nvidia shield pro 2019, but should be extensible to 32 bit android as well).
50 comments
[ 7.1 ms ] story [ 116 ms ] threadIn fact, being anti-GPL has become kind of fashionable, so there you have it.
Not quite.
There are many commercial JDK/JVM offerings that are closed source and survive very well with their "secret sauce" (usually GC related), such as Azul's Zing JVM.
Red Hat's customer base that used JavaEE containers (and just Java code in general) was large enough that Red Hat could have easily decided to implement and maintain their own JDK offering - but they didn't.
Probably based on Red Hat's history of being a good open source "netizen", they chose to use the GPL code even though they did not have to.
We're all better off because of Red Hat's contributions to OpenJDK (porting to 64 bit ARM included) - but that's not exactly "Copyleft works!".
They opted-into using it consciously.
Red Hat because they embrace Open Source above all else (or at least did at the time), and Azul as opportunists during the decline of Oracle JDK as a way to get Java users into their ecosystem (and eventually make money).
OpenJDK is wildly popular as the defacto reference implementation of Java, due to moves Oracle made a few years back (on purpose to push Java language development into a more community-driven approach).
OpenJDK is good, but there are reasons people seek out custom implementations (massive heaps, pauseless GC, better tooling and monitoring, re-implemented IO, etc).
All that is to say, contrary to OP's original assertion, it's not that Red Hat "couldn't" release some closed source JDK... they chose to embrace the GPL'ed code.
The notion that "Copyleft Works!" is by compelling companies to open source their GPL'ed code. That's not what happened here.
FOSS and copyleft isn't about requiring anyone to do anything, it's about increasing user freedoms. Users and developers have more choice today in the Java ecosystem thanks to all of JDK distributions. I think it's you who has mistaken OPs comment to mean companies are being required to do something, when in fact everyone is benefiting by playing by the same copyleft rules.
Because Oracle owns the OpenJDK code, only Oracle and companies that license the OpenJDK source code under a proprietary license from Oracle, like Azul, can release closed-source implementations of the JDK that are based on OpenJDK.
(I work at Oracle on Java, i.e. OpenJDK)
[1]: https://en.wikipedia.org/wiki/Contributor_License_Agreement
Hereby Azul are being paid for all their contributing work with the concession and ability to sublet their allocated apartments with variations in specifications independently and without any lien to Oracle once their part is done.
Oracle being the project lead and majority financiers, contracted to retain the option of applying the same specifications and features built by Azul to their wholly owned apartments.
of course the analogy breaks there because in software applying the Azul spec to more properties doesn't cost additional labor. Such is the intrinsic and amazing value of leading valuable software initiatives.
I'm tempted to suspect that my analogy makes visible to see a unfortunate development in popular opinion concerning software that has emerged in this century : like with property there seems to be intrinsically personal and non objective assumption of illicit and unseen practices at work in creating the accrual to the capital investor which is their whole and fundamentally natural right to receive and enjoy.
this worries me because it effectively co-opts the incredible natural beauty and value of software : labor free replication and reuse.
I will go so far as - only because of the contexts in which I have recently been caused to defend / explain the economics, which have been not pleasant experiences - to say that this is a terrifying and insidious assault on the most important advance of capitalism itself.
with the Times of London in 2018 revealing the record shows Harold Wilson when Prime Minister in 1958 was permitted to receive a prize for poetry composition awarded by the Soviet GDR of £20,000 then that would have bought properties worth over ten million pounds today... Wilson and May and Johnson all unelected and May creating laws for internal passport and visa civilian movement control only after the maximum 3 statutory refusals by Parliament (Lords rejecting) to pass the law before prerogative force majeur was used to force the legislation that devolved the entire legislation and executive implementation of British law to secret meetings without any reporting rules of any two members of the privy council...
the last points you can research at statewatch.org and I must say that I profoundly wish I was inventing this but everything is entirely public information, as is how shortly after that "prize" award, Wilson told a delegation representing all Jewish members of Parliament who sought advice after the security services confirmed their relatives in Soviet counties were credibly threatened and being bullied to seek to cause a reversal to the British position on Palestine which wasn't to grant independence and create Israel at all. I never remember his Foreign Secretary of the time but if you find his long out of print memoir the names are named and it's fully revealed by the highest office concerned. and to this day people wonder why there's anti semitism rampant in the Labour Party. no shoot Sherlock, after Wilson slapped the official secrets act to conceal him throwing the members to the wind without any support or advice, obviously their colleagues considered the en bloc vote face to be treasonous betrayal. We're hiding known public history despite doing so causing incredible ten...
is there demand for a book in plain English describing the circumstances surrounding the constitution of the major software ecosystems in current use?
because I am looking for a writing project and I have two decades of experience in IP law acting for my very small company in fields from advertising and trade dress and international trademark thru music royalties and as far as the limits of conceptual reduction for algorithm invention protection.
I've put the proposal this became in my profile because I am imminently relaunching my 25 years old business as a education trust foundation for publishing technology and other works with radically improved economics especially for independent students not attending recognised institutions and the simply curious public for who I am going to publish plain English works about critically misunderstood technology initially financed by income from commercial rights I'm transferring.. this means that I can back up what I'm pondering here and back it up with some considerable preparation and immediately available support for anyone who thinks this is perfect lock down occupation and not charitable occupation I am not ever going to accept gifted writing or art under any circumstances nor will I ever pay below market / union. the very purposes of my work for years soon launching is to illuminate the media industry with open intelligible and easily operable legal mechanics and provide the lowest cost tools possible while retaining absolutely every possible revenue for the creator. I had better submit this instead of fretting about being moded down and how late I am with launching my foundation properly but this whole sub thread has screamed it is the very precise target for the most urgent need for clarity which I am set about providing already in other fields in readiness now and so it just feels wrong thinking about cutting out what I've said especially since its definitely not any form of promotion and I guess ironic trying to solve misunderstanding about licensing using a publishing organisation founded on another copy left licence agreement condition. I simply had gotten to be incapable to look at the screen any time I started reading another frustrated report about the poor state of open source software documentation and I looked around at all the brilliant efforts freely available but only on the Web and wondered what I have to do to make the already written good works provide for the development of the missing works desperately needed.. and I will shortly find out how good my solution really is check my profile if curious further...
A little over a year ago, Oracle stepped back as the "standard" JDK and became just another JDK vendor.
Anyone is free to take OpenJDK sources, compile and offer prebuilt binaries now.
Each new LTS JDK release gets a "caretaker" which provides the "official" OpenJDK build for that release. Azul gets a turn, Oracle gets a turn, etc. This is a stark contrast to pre-JDK9 where Oracle was the only "official" build.
Starting with JDK9, the licensing for an Oracle-provided JDK got a lot more murky, which seems to have been on purpose (to push Oracle into a support position instead of leader position). It cleared the way for Oracle to be "just another vendor offering paid support" along with IBM, Red Hat, AdoptOpenJDK, Azul, Amazon, etc.
This transition was started around OpenJDK7, where Oracle made a lot of effort to make OpenJDK the "upstream" and "reference" implementation for all other JDK's and the language specification.
While many OpenJDK contributors are on the payroll of Oracle, it wouldn't be fair to say they are steering the entire ship at this point, nor does anyone require a license agreement to offer OpenJDK binaries - with the exception of actually calling it "OpenJDK" (see agreement above for "sharing" LTS releases) - hence "AdoptOpenJDK" and "Zulu JDK", etc... all OpenJDK builds that don't call themselves OpenJDK.
It was one of the more surprising things Oracle has done in years... and many applauded the changes.
> The only licensing change Oracle has done is to make the JDK 100% free and open-source.
JRE/JDK8 had a very public, nasty license change during one of the late releases (200+ or something) that quite literally had a popup on people's computers stating commercial use of Oracle JDK would require payment to Oracle going forward.
That's quite an extreme change, and set off quite a panic in the Java world.
It wasn't until some time later Oracle made it clear this move was because, going forward, Oracle would be a vendor of Java that happens to sell support and a licensed JDK/JRE, among many others. This is when Red Hat, AdoptOpenJDK, Azul and others stepped into the limelight with this LTS release time-sharing agreement.
It may be true majority of the governing body overseeing Java's development is employed by Oracle... but that doesn't make these other things true. Oracle took very deliberate, calculated steps to put Java into the hands of OpenJDK and ensure they were a major contributor - but not the sole dictator of Java's future.
The reason AdoptOpenJDK, Red Hat's OpenJDK port, Azul and others are gaining so much ground these days is directly a result of the changes Oracle consciously made. It really is one of the few surprisingly good things to come out of Oracle in the past few years - and was extremely forward thinking.
Nope. It was neither nasty nor a change. JDK 8, is out of the ~5 year free public updates period, just like all JDK versions before it. The only difference from the past is that extended support is now cheaper.
The reason people see the popup that they hadn't before has nothing to do with any license change but with the mere fact that the JRE is now discontinued (and replaced with jlink runtimes). In the past, when 7 was out of public updates, people got a popup to update to 8. But 8 was the last ever JRE version, there's nothing to upgrade to, so people just got a popup that it's out of free public updates.
> That's quite an extreme change, and set off quite a panic in the Java world.
I don't know who panicked and why, but all JDK versions have always been out of a free public update period after about 5 years. I wouldn't call the drop in support prices an "extreme change," but I'm sure it's a welcome one.
> This is when Red Hat, AdoptOpenJDK, Azul and others stepped into the limelight with this LTS release time-sharing agreement.
First of all, none of those companies offer an 8 JRE, because OpenJDK was not yet open-source in version 8, and OpenJDK 8 doesn't have the JRE (it's missing Applets and Web Start, for example, the very things people need a JRE for).
Second, there is no such agreement. Oracle passes the leadership of backport projects of old releases when a new release comes out to whoever steps up. AdoptOpenJDK, by IBM, are barely involved with OpenJDK at all, and aren't in the same bucket as Azul and Red Hat, which do make significant contributions to OpenJDK.
> The reason AdoptOpenJDK, Red Hat's OpenJDK port, Azul and others are gaining so much ground these days is directly a result of the changes Oracle consciously made.
All of those are support programs for an open-source project developed, for the most part, by Oracle; they're not ports. Everyone is gaining ground mostly because support prices are lower and many have yet to upgrade past 8.
People panicked because, unlike before, it didn't just say "we're no longer updating this, but you can continue to use it". No, instead it was a shakedown for money if you continued to use it past some specific date listed in the popup. Painting that as normal is disingenuous, and rightfully led to a very public Oracle JDK exodus.
> First of all, none of those companies offer an 8 JRE, because OpenJDK was not yet open-source in version 8, and OpenJDK 8 doesn't have the JRE
Azul seems to disagree. They have a JRE7[1] and JRE8[2] offering.
> (it's missing Applets and Web Start, for example, the very things people need a JRE for).
I doubt people need a JRE for Applets or Web Start anymore. So that's not the reason. Old Legacy Java5 Applets aren't going to run on Java9+ without other significant changes anyway.
If I go to Oracle's website, it's difficult to find where to download any version of Java JRE or JDK without being bombarded with a plethora of "Subscribe and protect your Java investment!" and many other calls to pay for support and what-not. That's their prerogative. Nothing is wrong with Oracle wanting to charge people to use their binaries - and this reinforces my earlier points about Oracle stepping back into "just another JDK vendor" role. You may disagree with that exact phrasing, but I do not believe the distinction of contributing more code matters for the point I am raising.
If what you say about Oracle and their flavor of the JDK is true... well then Oracle has a massive optics problem because out here, outside the inner OpenJDK circle, the Java8 thing was quite a fiasco and definitely led to many organizations trying out Oracle's JDK "competitors" for the first time.
> they're not ports
Never said they were. They're OpenJDK source compiled and offered in a binary for free without any strings attached - far from what Oracle's messaging was at the time of all this.
[1] https://www.azul.com/downloads/zulu-community/?version=java-...
[2] https://www.azul.com/downloads/zulu-community/?version=java-...
It's not "painting it as normal." This is the actual normal. It's just that there has always been an update. It is also not true that you cannot continue an updated version past the end of update period.
> Azul seems to disagree. They have a JRE7[1] and JRE8[2] offering.
They really don't. They have an offering of something they call a JRE, but isn't. Try to run Applets or Web Start on it.
> Old Legacy Java5 Applets aren't going to run on Java9+ without other significant changes anyway.
Most Java 1.0 applications run on Java unchanged, and the JRE is to run Applet's and Web Start. Now there are custom Java runtimes created with jlink.
> If I go to Oracle's website, it's difficult to find where to download any version of Java JRE or JDK without being bombarded with a plethora of "Subscribe and protect your Java investment!"
Nope. Here's the official JDK from Oracle for non-support customers. You'll get bombarded with nothing: http://jdk.java.net/
> Nothing is wrong with Oracle wanting to charge people to use their binaries
But we don't. You're looking at the support subscription. The website clearly links to the 100% free JDK for people who aren't interested in support: http://jdk.java.net/
> but I do not believe the distinction of contributing more code matters for the point I am raising.
Oracle is to OpenJDK what Google is to Chromium. It is the main developer of OpenJDK (by a huge margin), and the steward of Java. That it's changed how it funds its investment in OpenJDK didn't change any of that. This is easy to see if you follow OpenJDK's development.
> the Java8 thing was quite a fiasco
What fiasco? You mean that some people insisted on using unmaintained libraries, ignored warnings about undocumented APIs for years, and then, when Oracle upped the investment and things started changing some ill-maintained dependencies broke? You realise that this hadn't happened before because they platform wasn't changing much because of a decline in investment in Sun's dying years?
> They're OpenJDK source compiled and offered in a binary for free without any strings attached
That's great, just like Oracle's binaries, which, again, are here: http://jdk.java.net/
Also, OpenJDK has always been the name of the open part of Sun's, and later Oracle's JDK; it's just that Oracle has made that part 100%. It's not some separate implementation. If you go to the OpenJDK homepage and click the download link, you will get the OpenJDK builds by Oracle that are free and come without support. "Oracle JDK" is the support service. Yes, it's great that Oracle open-sourced the entire JDK, but its investment in developing it has increased not decreased.
Now, OpenJDK has no notion of LTS whatsoever. LTS is a service offered by any company for any version, although most companies offer it for the same versions Oracle chooses. In any event, you weren't referring to LTS but to OpenJDK Updates. Oracle leads the bug and security-fix updates for all versions for six months. After which, other contributors may step up to continue leading the maintenance of updates for old versions for as long as they won't, but they don't do original maintenance, but rather backport patches from the mainline.
~90% of the full-time OpenJDK contributors are employed by Oracle, and close to 100% of the changes to the specification are done by them (you don't have to take my word for it; you can look at the list of teams and projects, http://openjdk.java.net/census, and get the people's company at https://db.openjdk.java.net/people; all active projects and teams are led (and mostly done) by Oracle employees, except for some ports, Shenandoah, and backports to old releases. Don't get me wrong -- we work with contributors from other companies every day, and they do more and more and that's exciting and amazing -- but we also do more and more.
Anyone can build and distribute OpenJDK binaries, but to do so under a different license from the OpenJDK license requires obtaining the code from Oracle under a different license.
Copyleft can't prevent other people from making a clone of your software, but it does redefine the choices to "clone software entirely" or "fork existing software and share changes", it removes the option of "fork existing software and DON'T share changes", i.e. benefiting from the open source nature of the project without giving those same benefits to others.
The person you're replying to already gave you an example of someone who does exactly what you're saying is impossible!
> There are many commercial JDK/JVM offerings that are closed source and survive very well with their "secret sauce" (usually GC related), such as Azul's Zing JVM.
How does that work? Even if code is GPL if you own it you can do what you want with it. That includes licensing it to someone under a _different_ licence. Being available under the GPL does not mean it can't also be available under another licence, such as a proprietary one. Which is what is done in this situation.
> but it does redefine the choices to "clone software entirely" or "fork existing software and share changes" .. it removes the option of "fork existing software and DON'T share changes"
None of this is true.
Oracle could not do that for all of OpenJDK today unless OpenJDL has a super weird CLA that signs away ownership of the code because they do not own all of the code.
Countless manufacturers have made closed products and sold them for license money. Nothing new there.
The bottleneck however paid off imo - Red Hat insisted on doing things slow and steady, so once things started landing in the distro, they just worked. Unlike other distros which touted aarch64 support early, but struggled to fix issues along the way.
I remember working with OpenJDK and Opendaylight on aarch64. The crashes I've seen were terrifying. The JVM crashed so hard, our expert Java developer laughed 30 minutes straight looking at one trace. To this day I have no idea what was so funny, as he couldn't explain it in a simple manner and I lost interest.
Anyway, thank you Red Hat developers for all the work (minus the systemd "architects", but that's a different story).
JMM offers pretty strong guarantees via the fundamental happens-before relationships in program behaviour. It's relatively easy to implement on x86's strong TSO, but ARM is extremely problematic to offer the same guarantees on.
Can't wait to run some concurrency benchmarks on this platform.
Oh, and the PowerPC MMU format is famously terrible, and even the new fixed version is somehow still awful.
Granted, android has its own bytecode and runtime. Does it attempt to conform to the memory model? I imagine there is little reason not to.
I guess the next target is to do RISC-V. I think it only works with the interpreter at the moment.
https://forum.kodi.tv/showthread.php?tid=360250