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."
There is a lineage argument as Java built on IBM's CORBA.
They should have never been ilegally using Java in the first place.
The only problem with what they did is that they ultimately paid Oracle in the end. They should have stolen and then gotten away with it.
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.
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.
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.
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.
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?
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.
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.
> 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.
Why not split the difference and teach Luau in the Roblox environment instead? /s
The Linux kernel is corporate and has one implementation. Is it safe to use?
I'm not aware of any corporation having an undue influence on Linux development.
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.
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.
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.
First off, many researchers from other institutions come on site and they'll be downloading and using whatever software they are used to with no controls whatsoever. These scientists basically act independently of the institution, in some cases not even having the same line management and being paid by someone else.
Secondly they get site licenses for a lot of what would normally be extremely expensive software (think CAD packages, EDA) for very low prices because of their educational status. If I was to guess, some of this uses Oracle Java. They won't have good tracking around what software is or was used where.
This all gives them an open-ended liability if Oracle come knocking, as apparently they did, so they'll be keen to remove "legal uncertainty" by paying the Danegeld.
Other than uninformed, spurious Oracle JDK downloads, what usually happens is an academic or a faculty have purchased an app or a software product in the past that performs features A, B and C important to them[0], and that app or product, unbeknownst to them, bundles the Oracle JDK/JRE in. The Lord of Java has now trapped their butts and demands that universities fork out quiet a bit as Oracle wants a per student licence fee for each such app, even if it is just one faculty who uses the app.
[0] Or at least they think so – software duplication is a rampant problem in universities due to oftentimes poor architectural governance and oversight.
I’m a founder of Quesma to make migrations easier, and regularly hear horror stories. It
You're basically betting on Oracle being evil, Corporations still buying their product, and those same corporations being surprised when Oracle screws them over. That seems like a sure thing to me.
If you don't need the support, just use openjdk, what's the problem? What's with the insistence on providing something for free or however much you want to pay for it? Get better terms or switch vendors! Java is an abundant ecosystem with multiple paid support providers.
It is like complaining they are paying for Visual Studio and Apple XCode developer licenses (Apple tax, anual membership, whatever you feel like calling it), instead of using plain GCC or clang.
But hey, lets hate Oracle for the universities broken decision making process.
Oracle is doing scummy business here, just acknowledge it.
It is like law enforcement, ignorance is not an excuse in court.
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.
Maybe someone who knows more could fill in the details
What you get is a distribution of OpenJDK, one of which is by Oracle. There’s also one by RedHat and by Eclipse and others.
You may be thinking of the Hotspot JVM and the answer is that Hotspot offers negligible difference and I’m not sure even exists for the later versions of Java.
If you use Oracle OpenJDK in production (past a specific patch point for some versions) to the best of my knowledge you are probably still on the hook for the licensing fees.
(They allow it in development in order to get you to use it in production at which point the lawyers pounce).
At my company we use RedHat OpenJDK on RedHat VMs and Eclipse Temurin OpenJDK in docker containers.
(Other JVMs include Graal (also owned by Oracle)).
> If you use Oracle OpenJDK in production to the best of my knowledge you are probably still on the hook for the licensing fees.
I'd be surprised by this but I guess that is par for the course.
> At my company we use RedHat OpenJDK on RedHat VMs and Eclipse Temurin OpenJDK in docker containers.
Thanks for clarifying -- do you find any differences that were important? Or is it more you've never needed the Oracle distribution so you never had reason to find out?
I'm just wondering why anyone would choose Oracle's distribution in this day and age. Who are their main customers that are happy to be customers?
Oracle JDK is the non-free version that shares the same code base as OpenJDK. Oracle provides a restricted licence for this build, under which it is free to use in certain cases, up until specific patches. Later patches (usually a few years after the initial release date) require a licence fee. This does not apply to Oracle OpenJDK, which is released under the GPL.
If you want to avoid HotSpot altogether, the other options include Graal (used with OpenJDK class libraries), IBM OpenJ9 and IKVM.NET.
Can probably use it for law classes too. And ethics.
axus•14h ago
PeterStuer•11h ago