: Deal includes 'waiver of historic fees'
UK universities and colleges have signed a framework worth up to £9.86 million ($13.33 million) with Oracle to use its controversial Java SE Universal Subscription model, in exchange for a "waiver of historic fees due for any institutions who have used Oracle Java since 2023."
Jisc, a membership organization that runs procurement for higher and further education establishments in the UK, said it had signed an agreement to purchase the new subscription licenses after consultation with members.
In a procurement notice, it said institutions that use Oracle Java SE are required to purchase subscriptions. "The agreement includes the waiver of historic fees due for any institutions who have used Oracle Java since 2023," the notice said.
The Java SE Universal Subscription was introduced in January 2023 to an outcry from licensing experts and analysts. It moved licensing of Java from a per-user basis to a per-employee basis. At the time, Oracle said it was "a simple, low-cost monthly subscription that includes Java SE Licensing and Support for use on Desktops, Servers or Cloud deployments."
However, licensing advisors said early calculations to help some clients showed that the revamp might increase costs by up to ten times.
Later, analysis from Gartner found the per-employee subscription model to be two to five times more expensive than the legacy model.
"For large organizations, we expect the increase to be two to five times, depending on the number of employees an organization has," Nitish Tyagi, principal Gartner analyst, said in July 2024. "Please remember, Oracle defines employees as part-time, full-time, temporary, agents, contractors, as in whosoever supports internal business operations has to be licensed as per the new Java Universal SE Subscription model."
Since the introduction of the new Oracle Java licensing model, user organizations have been strongly advised to move off Oracle Java and find open source alternatives for their software development and runtime environments.
A survey of Oracle users found that only one in ten was likely to continue to stay with Oracle Java, in part as a result of the licensing changes.
Users continue to be advised to review their use of Oracle Java after an increase in vendor software audits.
In May, Scott Sellers, CEO of Java advisory and services company Azul, said: "We're definitely seeing an uptick. One of the things that seems to be happening is we're seeing more presence in more and more countries."
He told The Register that Oracle is "putting specific Java sales teams in country, and then identifying those companies that appear to be downloading and... then going in and requesting to [do] audits. That recipe appears to be playing out truly globally at this point."
Eric Guyer, founding partner at Oracle and SAP advisory and consulting firm Remend, said that few of his clients license Oracle Java, as his company recommends users move off it onto open source alternatives.
The Register asked Jisc why universities and colleges have not moved off Oracle Java and whether the £10 million framework followed an Oracle audit, or a suggestion that Oracle might audit Jisc member organizations.
Caren Milloy, director of licensing, told us via an emailed statement:
"Jisc, working in collaboration with [higher education associations] UCISA, has negotiated an agreement with Oracle Java that provides a tailored offering to UK higher and further education institutions, simplifying licensing and achieving efficiencies for institutions and Oracle. We look forward to sharing more details on this shortly." ®
I remember when my university had a relationship with Sun that let us see Java (Oak) early.
And then -- given that Java was smart, OO, in the Web browser, going big, and free -- built an intro CS curriculum around it. Like many universities.
That history of universities promoting the adoption of Java, and training a generation of Fortune 500 corporate coders in it, has not gone unpunished.
Universities should also have adjusted: Java has been commercial for long now, and there are many other popular, less commercially-aggressive programming languages that would fit curriculum nicely: Python, Golang, etc.
The top programming languages by popularity or job openings seem to be a toss-up between python, JS (or things that compile to JS), and SQL. Other less used languages might lead to steeper career advances - there's still a market for COBOL programmers for example with more demand than supply - but that's not what I would like a college to start out with as a first language.
As a teaching language for top-end CS degrees, going python-first would be an experiment. Theory says it'll turn out badly; in practice I'm not sure especially if there is an emphasis on good coding practice. Python for a degree with a bit of programming but not full CS is in my opinion the correct choice, but that doesn't mean we should ban it for CS degrees.
If I had to choose a language for teaching a module on object-oriented programming, I'd go with golang, not Java or C#. Not because of licences, but because we've learnt things about subclassing and exceptions and design patterns to get around language restrictions that golang mostly fixes so it's easier to pick up the spirit of modern OOP.
Why not C++ though? Learning C++ before Python helped me retain a bias for good programming practices.
...C++ teaches good programming practices? I thought it mainly teaches you how to be paranoid, and how to keep track of the bizarre interactions of 20 bespoke historical features.
One can say the same about Java, although less of the paranoid part.
The moment you have to deal with checked exceptions in a pipeline of lambdas, you become paranoid about your own sanity.
Certainly better than non-typed python.
golang should not be on the list of corriculums. Neither should any language owned by a corporation.
The only language that can be on the list are open standards language that has multiple implementations, and is "free" (as in libre).
Not to mention it should be a language that demonstrates an idea - such as python for procedural, haskell for functional, and LISP-likes for well, lisps.
They shouldn't be teaching golang because it's a terrible blub language, not because of any concern over the license which is fine.
The idea that go demonstrates is “this is the language to get shit done in”.
I actually think Go is a great language to teach programmers. It has a good standard library. It has a really easy way of turning your code into a library (this is great to get students to learn how libraries work and the risks associated with them by depending on each others code).
A ton of new software that’s actually making money or is used as core infrastructure is written in Go. The world’s largest CA is in Go. Kubernetes is in Go.
The Google version of Go uses a 3-clause BSD like license. There are other implementations besides the one maintained by Google, and there is a complete specification for the language freely available. The language is not owned by Google.
> there is a complete specification for the language freely available.
and who has the ability to make changes to this specification?
Not to mention that there's really no second implementation of go for the specification, which means that google is realistically free to make updates to it that they feel necessary, and there would be no 2nd party that could object to it.
I understand your concerns with regard to what languages should be used for teaching purposes and I agree with them. But I don't agree that it applies to Go.
> Not to mention that there's really no second implementation of go for the specification,
Is that true? The GCC frontend is a little out of data with regard to the current spec but it was written to the spec as it existed at the time. Also, TinyGo matches the language spec I think. It has limited compatibility with the standard library, but the specification doesn't talk about the standard library at all.
> and who has the ability to make changes to this specification?
There's nothing stopping anyone taking the current Go specification, extending it and using the Google implementation of Go as the base for something new. Although you wouldn't call it Go in that case.
I personally like that there is a central arbiter with the final say on the specification. Admittedly, I would prefer it if it wasn't Google, but I'm not convinced a Rust like foundation model would be any better in the case of Go.
Yes but it is still controlled by Google and has not been moved to a foundation? Like for example the Rust Foundation.
True. However the control really only extends to the name and the amount of human effort allowed by employees on the Google implementation, as far as I can tell.
If Google decide that they were no longer developing their implementation of the language and moving the employees to other things, there's nothing stopping a foundation from being established. It would be ideal if this was organised by Google as part of their exit, but failing that I would expect other stake-holders in the language to organise something.
What advantages would moving to a foundation like structure bring to Go?
Strategic direction, roadmap and general decisions are set by the independent foundation and not by Google.
Okay. So it's really just a protection against Google deciding to stop its own development and leaving everyone hanging. That's good. I could get on board with that.
For me however, I think it would be a challenge for the foundation to maintain the slow-and-steady development that we've seen under Google.
To bring it back to the main topic: I think a language that rarely introduces major new features, is good for teaching purposes. From that perspective, I think Go is a good language for teaching core concepts.
Controlled in the sense that most of the maintainers are Google employees. But how does that make a difference? The tool chain is available as FOSS, there’s no possibility of a rug pull.
All of the same things were always true, and are true today, of Java. You can use Java entirely without touching anything Oracle-tainted. And yet, here we are.
Not to mention, nothing stops Google from deciding tomorrow to stop distributing any Go code freely. They pull the public repos, pull the public docs, pull the package server and cache, everything. They release everything back only under proprietary licenses: it's their code, they can change the license at any time.
Sure, you could still use anything they released yesterday, if you still have a copy. But would anyone feel that is a sound business or even personal decision?
I'm not saying in any way that I expect Google would do this. I'm just pointing out that this is 100% within their legal rights to do, and under their ability. I think Google is quite trustworthy on this, but if you feel they are not, you should be aware that the license doesn't act as any kind of real shield.
realistically no chance of a rug pull of course.
But my philosophy is about libre, in the context of an educational institution. Teaching java was a mistake, and it would be the same to do so with golang for the same reasons. Students should be learning the concept embedded in the language, rather than the commercial ecosystem associated with the language.
I like Go and you're right but I agree with the poster above, there's something to be said about De Jure and De Facto distinctions in Google "owning" Go.
Why not split the difference and teach Luau in the Roblox environment instead? /s
Do you know who controls Python, Haskell, Lisp or C++?
The Linux kernel is corporate and has one implementation. Is it safe to use?
Corporate? Which corporation are you thinking of?
I'm not aware of any corporation having an undue influence on Linux development.
Do you know what percentage of contributions to Linux are from corporations?
No, though I know that it's probably quite high. I don't really see an issue with corporate sponsored contributions even if they're specifically designed to benefit those corporations and their customers.
The issue as I see it is if corporations start having undue influence on the direction that Linux takes i.e. not merely affecting their own contributions, but preventing others from contributing. (c.f. Oracle sticking with ZFS CDDL licensing)
I would actually prefer more corporate sponsored contributions as I've just been battling with trying to get the Dell perccli working on Ubuntu 24.04 so that I can administer newly added disks without having to reboot and access the PERC interface during boot (somewhat difficult to do remotely). I was able to install the tool after battling through Dell's website, but it doesn't work properly and declares that two new disks are already in use, despite their status showing as UGood.
Agree with this.
I heard a story (unconfirmed) that at the time Oracle was buying Sun, it was pretty obvious that owning Java then suing people, most notably Google, was the whole point.
Google not buying Sun may go down as one of their poorest decisions. I mean rumor has it, Google offered $6 billion to buy GroupOn (which they turned down). If GroupOn is worth $6B (it isn't) then owning Java is worth $7.5B.
I suspect Google believed they had an implicit license from Sun to use Java on Android, otherwise this was a massive licensing failure. While Sun still existed, even buying a token license would've been cheap.
Now Google ultimately prevailed in their lawsuit setting an important precedent but at what cost? It was over a decade of uncertainty and cost who knows how much in legal fees. And while it was ongoing, Android was under a cloud and Google had to abandon a bunch of things it was otherwise doing with Java.
Oracle is just the worst.
I'm not super versed in the detailed, but as a result haven't Android's Java and OpenJDK diverged substantially at this point? As far as I understand you can't just run Java code (post version 8 I think) on Android. It's why you can't for instance write a Clojure app for Android.
Maybe someone who knows more could fill in the details
The legal fees were small change to Google
Do not fall into the trap of anthropomorphising Larry Ellison. You need to think of Larry Ellison the way you think of a lawnmower. You don't anthropomorphize your lawnmower, the lawnmower just mows the lawn, you stick your hand in there and it'll chop it off, the end. You don't think 'oh, the lawnmower hates me' -- lawnmower doesn't give a shit about you, lawnmower can't hate you. Don't anthropomorphize the lawnmower. Don't fall into that trap about Oracle
From "Fork Yeah! The Rise and Development of Illumos" by Bryan Cantrill at LISA'11 [1]. Utterly amazing talk and I almost feel like it is given a disservice by everyone simply quoting that (albeit great) line.
Thank you for sharing the attribution and link. Quote begins around 38m28s:
He's a 4A: An Asshole Amongst Assholes. That's how Oracle and Microsoft made their fortunes: unrestrained greed.
More like "lack of effective competition."
I actually think that it does a disservice to not go to Nazi allegory, because if I don't use Nazi allegory when referring to Oracle there is some critical understanding that I have left on the table; there is an element of the story that you can't possibly understand.
In fact, as I have said before and I emphatically believe, if you had to explain the Nazis to somebody who had never heard of WWII but was an Oracle customer, there's a very good chance that you actually explain the Nazis in Oracle allegory.
So, it's like: "Really, wow, a whole country?"; "Yes, Larry Ellison has an entire country"; "Oh my god, the humanity! The License Audits!"; "Yeah, you should talk to Poland about it, it was bad. Bad, it was a blitzkrieg license audit."
The actual Nazis went with IBM though. Oracle wasn't born yet.
There is a lineage argument as Java built on IBM's CORBA.
It's like that with sarcasm, nobody on the internet understands what an analogy is either.