Why would a company pay for "commercial support" of OpenJDK from IBM? I have used Java for 15 years and I don't know what "support" for a JDK would mean.
If you are stretching limits of java, then you would need support because that knowledge base isn't available easily. I worked for a company that had performance engineers from sun on site helping us with performance issues.
Or because your company has a policy of not putting anything in production without a signed license and/or current support contract. (See e.g. SQLite which is public-domain but if you want a commercial license anyway they'll sell you one. They offer non-FOSS extensions now but they sold commercial licenses before that.)
Security updates after EoL. Oracle does/did this with Java 6.
Support in diagnosing problems and getting fixes escalated.
As others have said, a corporate requirement to have a throat to throttle
Some companies fire all their workers in hopes offshoring is a magical bullet or let their top knowledge owners leave the organization. As such, they hurl money at the problem to try and cover their incompetence. In these cases Oracle had elected to receive.
The decision makers are not programmers. The people making the choices on software in an enterprise are MBAs who know next to nothing about software and so they need some "insurance".
Look at the tech founded enterprises, they do not go the tradition enterprise software route. Why? Their leadership came from a developer background and not an MBA one.
I don’t think it’s that simple. As a dev or sysadmin, all it takes is to have resources invested in a legacy system that no one gave money to replace but are ok with maintenance contracts. This easily happens when people leave/get hired.
I have a legacy storage system only accessible through exactly Java 6u31 32-bit on Windows 7, of course I want to replace that but instead it’s cheaper to keep and maintain than to replace.
edit and I think this must be a conscious strategy on the part of any vendor: make maintenance just slightly cheaper than replacement
That's the theory. In practice, it is near-impossible to get any enterprise vendor to actually fix something. Either you're lucky and another customer had the problem. Then, after annoying them for about a week, you'll get a patch.
If however you've found something new like a feature that's so buggy it is actually completely defect, you're in for an ordeal of a few months. Simply getting a dev to look at your bug takes a month. In that month, you'll answer every day questions like what OS you're on ('As I told your past 10 colleagues, We see it under red hat linux version X1 X2 X3, and under windows Y1 and Y2, and under HPUX Z. Yes, this is a pristine OS install with a pristine JVM. Yes, our support contract covers this. There is a test case in the bug report, run it on your computer and see yourself'). They'll call you in the middle of the night. Then call you again 12 hours later because you're not allowed to respond to their questions outside business hours so please tell us again and next time read your contract.
If you survive this, and you provide a perfect example source code fragment of 100 lines, and you decompile their own code, point at the bug, and suggest a less insane way to write that code, you'll get a fix. This fix seems to work for up to a day, when you notice your performance is less than a sixt from what it was. Then you notice how they ignored your suggestion, did something even less sane than the original code, and managed to break something else you hadn't even noticed before.
Call again, insist they do not start a new ticket unless you want to redo that original month. A few minutes later they call back and try to sell you six times the hardware you have as a workaround, and promise a 10% price reduction for the first year. Do not swear at any point, this will immediately end the phone call and you'll have to navigate their insane phone menu again and get a new lesson in Indian English from a guy who swears he is speaking your language perfectly right now (which is neither English or anything spoken in India, afaik).
After a few rounds of this, they produce a working patch. You confirm it works and are promptly forbidden to use it ever again. They will provide you 'soon' with an official version of the patch, which has been vetted against their secure development lifecycle, legal team, and god knows what else. Actually applying the current patch so your users stop screaming will end your support contract.
It takes in total a bit more than 3 months before the final patch is delivered. At that point:
1) management congratulates themselves for having bought support.
2) Your colleagues however are in awe about you've got actually managed to get an enterprise vendor th actually fix a bug. Turns out they have tons and tons of bugs and spend their days inventing horrible workarounds as they gave up getting them fixed long ago.
3) Contractors from the enterprise vendor, working on another project in your company will turn the feature off, as they know for sure it can't work. If you claim to have a patch and it is already running on their servers, they refuse to use it and turn the feature off once more. Not using the feature costs a small fortune in network overhead, BTW. If you enable it, the next coontractor entering the building will disable it instantly, even if your config file has this story documented.
Hey guys, i was a bit frustrated and venting. It scares me to see this post reach 4 points in such a short time. We all feel lik this once in a while, but this particular piece of drivel isnt worth much points. Please spend your points on a more worthwile post ;-)
The first time I used Java, in the 1.0 days, we wrote an application and deployed it to Solaris, HP/UX and AIX. We found a bug on AIX which would crash the VM, and reported it. IBM said it would be months before the next release, so we rewrote the application in Perl.
What really jumped out at me in the article is that the "free" builds from Oracle are only going to be available for 6 months, and production use of the Oracle JDK requires a paid license. So if you don't want to commit to upgrading your JVM every 6 months, it's time to look at the alternatives...
Every once in a while you hit a JDK bug that you cannot work around. You post a bug to Oracle (Sun in the past) and find out it's a duplicate that has been sitting around for years unfixed.
If you have paid support, a small team of engineers will dedicate their time to fix the bug for you and provide you with a patch, so you can move on. The patch can sometimes be specific for your platform and situation.
This is particularly true if you are stuck with older JDK version and cannot move forward for various reasons.
Will be interesting once Graal is released. I've found it be at least 30% faster than the existing JDKs around for Scala development. Others have found similar results:
Surely it's no coincidence that, as Oracle removes differences between its JDK and OpenJDK, that they are throwing their weight behind this non-community project, with an enterprise version. Between sunsetting community owned Nashorn in favor of Graal solution to giving tools to OpenJDK presumably with fewer of their own maintainers, the resource shift is clear. Not that it's wrong or even nefarious, but devs need to realize who they're getting in to bed with when building a reliance on the tech.
Graal is open-source and most projects under its umbrella are [GPL2-with-classpath-exception licensed](https://github.com/oracle/graal/#license). The fact that they also have an Enterprise Edition does not make this a non-community project.
Sorry, I meant non-community owned. Mentioned in sibling comment, I use plenty of non-community-owned software, but I avoid wholly Oracle owned software.
Who makes the decisions and who can change the license and who can sue you for misuse of the software? I don't want to support any Oracle product if I can help it, regardless of license.
Who owns it. Sure, we all use stuff owned by large companies, we just have to pick and choose, and I avoid Oracle. As a dev community I wish we could avoid wholly owned Oracle software to make a statement about their business practices, but I understand that stance is unreasonable for many.
That's a reasonable stance, but I thought you were comparing it to OpenJDK. I don't think Graal is any less community than OpenJDK. Similar people (RedHat, AMD, Intel, many universities) contribute to Graal in the same way they contribute to OpenJDK. I suppose there isn't a formal community process for Graal?
Oh, just the usual near-monthly (if not daily) death march of ever-increasing version numbers, just like Chrome and Firefox. And Windows Update. And OS X, And iOS. And Ubuntu. And so on, and so on, and so on...
In general I'm glad we have rapidly increasing version numbers for Chrome, Firefox and even Edge. If you had lived through the IE6 days, this would be something to appreciate.
I'm how sure how I feel about it with the JRE. I have old open source apps on Scala 2.11/SBT 0.13 that are already experience dependency rot. :-/ It's going to be more difficult too since deprecated stuff is finally getting removed from Java.
I'm curious to see where we'll be a few years from now.
Actually, time to look beyond the whole Java ecosystem.
After the claims Oracle made during the Google trial (such as APIs and method signatures being patent-able), it is clear that one can't work on the Java platform without infringing Oracle's IP. If Oracle doesn't sue you now, it can sue you when it makes financial sense to do so.
.Net looks like a much better alternative, with a patent pledge and ECMA standardization. Although to be fair, Microsoft is still a supporter of patent lobbies.
I've worked some in Typescript and I like it. In fact, it looks like it's going to be the next great enterprise language that's not Java or .Net. Am I delusional?
I like it compared to javascript, but I think it would be crazy to use it for backend work. I think making typescript happy probably saved me more time than it cost, but it's pretty janky, even compared to similar type systems like mypy. The ability to lie about types caused me quite a bit of confusion, with some libraries, especially immutable.js.
Next time I want to develop a frontend system, I think I'll try reasonml.
It's pretty cool actually. I used node because I can do client side prediction and server side validation with the same code. Note having client and server side in TS, means that I get completion for API calls from client to server side.
Because I agree with the parent's post: "Actually, time to look beyond the whole Java ecosystem."
If you're thinking about life without Java, Typescript is interesting. Is it perfect? No, but it's evolving quickly, has traction, and the ecosystem is pretty good.
I think it's a reasonable interpretation and I agree with GP. APIs used to be seen as fair use and a way to compete, in the similar way to how IBM-compatibles are seen. However, when it became clear to Oracle that there is money to be had, they changed the very definition of copyright to get their fill. What's to say they wont mutate some other aspect of IP law in the future just to make you liable like they did with google?
If you're big enough, they will come after you. I think it's perfectly rational - and i'd argue smart - to cut them off early before it's too late.
Google had the option to buy Sun after helping to their downfall, they have chosen not to spend the money to own Java. Now they get to spend on lawyers instead.
I guess what I'm saying is that we should dump a non-free platform ("non-free", as you seem to agree) for an alternative that offers freedom.
People have certainly learnt their lessons that the stewards cannot be trusted - they could get bought out as with Sun or their management could change any time. How users rejected Facebook's React License speaks of better awareness on these issues and is welcome.
Looking at the tools and libraries I get to use with Java, .NET, OS X/iOS, Android, Qt and the ones I get with the free alternatives, I rather stay with the former.
To be confirmed but I recall that Sun offered to license Java to Google, for usage on Android. Google didn't want to pay a dime or acknowledge that a license a needed.
Long story short, Oracle bought java and it's back to square one, with layers and court this time.
> After the claims Oracle made during the Google trial (such as APIs and method signatures being patent-able),
Copyrightable.
> it is clear that one can't work on the Java platform without infringing Oracle's IP.
That's not at all clear. After the third time Oracle v. Google gets ruled on by the trial court, it will undoubtedly be appealed to the Federal Circuit again. Whatever happens there, it is likely at least Google (given how the Federal Circuit has constrained what must happen at the District Court in the prior Appeal) and possibly Oracle will attempt an appeal to the Supreme Court. After that (whether the Supreme Court hears the case or not, but especially if they do), then what the law is in this area may be clear. Until then, all that is clear is what the Federal Circuit’s view of Ninth Circuit case law is, which as precedent is binding on no other court (any court bound by Ninth Circuit case law is bound by the actual case law of the Circuit, not the Federal Circuit’s interpretation of it) and, for litigants, has predictive power only for cases with patent claims that also raise similar copyright issues, and which arise out of districts in the Ninth Circuit.
And what you are talking about is just ridiculous. There are very few real world (if any) Scala projects that don't rely on least some Java based libraries. Either directly or through transitive dependencies.
If it's anything like Clojure/ClojureScript, the port would require work but be straightforward in most cases. Many people already use ClojureScript on Node instead of JVM Clojure. If you rely on JVM-only libraries for your core domain functionality, things become harder of course.
Had Microsoft owned Java it probably would have acted in the same way towards Google.
The versions mentioned here are strict Java compatible in that they follow a well-defined standard and an elaborate test suite. Quite different from Java Android.
Your suggesting .net as an alternative but ironically the licensing of Java is largely shaped due to the Sun vs Microsoft lawsuit. Microsoft tried to do their famous Embrace, Extend, extinguish on Java (and failed: https://www.cnet.com/news/sun-microsoft-settle-java-suit/ ).
Its only been a couple of years that Microsoft has been behaving "better". I suggest you read up on the history of Java, Android, Google and Microsoft because you also seem to be unaware what Android Oracle vs Google was really about; Its wasn't about patents, it was about copyright.
You know what they say about history: Those who don't know it are doomed to repeat it.
>Its only been a couple of years that Microsoft has been behaving "better"
So? Oracle has never behaved good, so there's that. Do you expect a MS regression?
Besides MS has made some concrete efforts to clear things, like a pledge to not sue over patents, an ECMA standard, etc.
>I suggest you read up on the history of Java, Android, Google and Microsoft because you also seem to be unaware what Android Oracle vs Google was really about; Its wasn't about patents, it was about copyright.
Same difference if Oracle ends up suing you for recreating Java APIs.
If you're arguing fair user, you've already lost. That's a matter of opinion so it has to go all the way to a jury verdict. That means there's no guarantee and even if you win, you have to pay a couple million for the billable hours. You want a defense that's so obvious, the judge will throw out any case against you on the first day.
Microsoft's pledge not to sue [1] covers only compliant implementations of specific versions of some of the components. Since Android, for example, could be considered non-compliant (with the Java specification), they wouldn't necessarily have been covered if they had based it in the same way on .NET instead. Even if they were, there would likely still have been issues with the parts that aren't listed as covered by the pledge.
On top of that, while the promise mentions "Microsoft-owned or Microsoft-controlled patents" it is very specific about who is promising not to sue - Microsoft only, not its partners, subsidiaries or other affiliated entities. So they still have plenty of room to arrange for opponents to be sued.
I agree Java is dying, but so is .Net. Microsoft is trying it's best, but .Net Core is no where near as popular as .Net 3.5. (google trends). Embrace the Beam. :)
My feeling is that .NET core is just starting to gather steam. I think it took some time before developers understood what was happening (and probably still quite many .NET developers could not describe the differences).
This Google Trends search shows .NET Core as leading since February 2017 [1]
Adoption is still zero on the projects I am involved with, to the point that one of the new features in Visual Studio is to access JavaScript libraries without any dependency on nodejs.
"
- If your project does not require additional tools (like Node, npm, Gulp, Grunt, WebPack, etc) and you simply want to acquire a couple of files, then LibMan might be for you.
- LibMan lets you specify exactly where the files should be placed inside your project. (No additional build tasks or manual file copying required!)
- LibMan provides the benefit of a much smaller footprint in your web project as it only downloads the files you need.
"
Basically the way to avoid touching node or anything related to it.
Did read, still don't get it. My point is SV/ Open Source is first to adopt newer tech. Enterprise follows by using these open source projects or acquiring companies that use this newer tech or just copying/building over them. I see wide adoption of JS on the server side in enterprise today compared to just a couple of years ago and NodeJS/NPM are the dominant forces in that direction. Some may be vary of NodeJS/server side js, sure but not most.
The legal area you are probably referring to is trademark law. If you do not defend a trademark, the mark risks becoming diluted, and is open to overturn.
( https://secureyourtrademark.com/blog/trademark-101-can-lose-... )
Patents do not lose their validity if undefended.
The .NET ecosystem is minuscule compared to Java, especially when it comes to alternative languages running on the virtual machine. So no, for a lot of people it's not a real alternative.
Lol, after reading the headline, I knew somebody was going to make a "time to look beyond Java" comment. It's a classic: it doesn't matter when or where, or if it makes sense or not... somebody has to say it.
However I wasn't expecting the same guy to actually promote .net, which is exactly a Java clone (created soon after the justice told Microsoft to stop trying to harm Java with this J++ thing) which only ran on Windows. It still does, because .net core is just a subset of the entire platform. But it's got a big corporation behind dictating its future development which poses the same threats as Oracle.
So given nobody can predict the future right now, I think I'd better keep using the long time open source, community focused and cross-platform alternative, which happens to be Java.
There's really only one, possibly two saviors of Java. Redhat with JBoss/Icedtea, and OpenJDK, which has IBM, Redhat, Oracle and Doug Lea at the top level. I don't see any great examples of building successful open source communities from IBM, but open sourcing OpenJ9 earns them some good will. Short of OpenJDK being adopted by Apache/Mozilla/etc.. (Oracle will let this happen after hell freezes over..) Java really has only one savior.
Redhat is skipping the minor Java versions, so it's Icedtea/OpenJDK build has Java 8, and the next version will have Java 11. This is what I'll be using on Linux.
Sure, apart from their attempt to control the Java ecosystem being that old, it doesn't leave me with confidence that they are as committed to open source as Redhat.
This sounds harsh, and I don't mean to be, but only time will tell how OpenJDK/Open J9 fares.
I think the whole idea of "We need to replace Java with [Insert Language]" is much more complicated topic than just saying "X is free , Java is owned by Oracle".
Even is this is true , Java is by far one of the most performant programming language that exist on earth.
People just don't realize the hundreds of millions of dollars that went into the JVM and the JDK.
Even if they are great alternatives like Go or .NET , they either come with huge limitations in performance or their ecosystem.
Per say , finding JVM developers isn't that hard, regardless of the geography. However , finding Go developers outside of the Bay Area ? Good luck with that.
The issue with Patent on the JVM is well know and there is very little to nothing that we can do about it.
Java is better than it used to be but you’re significantly overselling performance as a competitive advantage. Many other languages have no trouble producing code which is as fast or faster, and Java is still shaking the culture of excessive complexity which has squandered much of the hard work in the JIT.
The ecosystem is a much better argument since it’s certainly massive, as is finding developers, although quality varies wildly in both cases.
True, although that has a way of becoming important after awhile. That’s why I prefer to focus on complexity and clarity as it’s much harder to make convoluted code when it becomes important.
It’s nit picking, but I think a more correct statement would be “lots of small performance mistakes add up over time”. It’s very rare that I see a project needing a new language for performance reasons, but I see projects that need refactoring for performance all the time.
The Google / Oracle case didn't end up being about patents because they were all invalidated or deemed not to apply, iirc.
It ended up being about copyrights and whether or not you can copyright APIs.
It's unfortunate that Oracle chose to break the long-standing convention on this topic, however, it's not entirely surprising that eventually someone did. It's not at all clear why APIs should not be copyrightable, given the intent and wording of copyright laws and treaties - it's merely a convenient collective belief the software industry has had. It's now being tested in court and apparently splitting judges both ways.
I would also note that you always take such risks when building on platforms. The web is basically driven by Google these days, with other browser vendors either struggling to keep up or just giving up entirely (see, Safari) creating a new "works best in IE" era. And Google's stewardship of the web is hardly uncontroversial. Lots of obvious, major technical problems go unresolved for years or decades. AMP seems to be upsetting a lot of people. And of course there's not much stability: the web guys don't seem able to pick a direction and stick with it (e.g. web components/shadow dom stuff).
Google is pushing Swift with a Tensorflow port, and if they were even remotely interested in doing a Java port for training, it would've happened already. I will say, no Apple or MS for me thanks.
I hope Scala with Scala native continues to thrive, and for any additional pet projects not in Scala, frankly Python sounds pretty appealing to me as someone who eschews dynamic typing. 3.6 seems to have added some type inference, and it's popularity is up there with Java/C++/JS... Rust might be an option too.
132 comments
[ 3.2 ms ] story [ 170 ms ] threadGovernment and government-funded orgs practically insist on it.
Look at the tech founded enterprises, they do not go the tradition enterprise software route. Why? Their leadership came from a developer background and not an MBA one.
I have a legacy storage system only accessible through exactly Java 6u31 32-bit on Windows 7, of course I want to replace that but instead it’s cheaper to keep and maintain than to replace.
edit and I think this must be a conscious strategy on the part of any vendor: make maintenance just slightly cheaper than replacement
If however you've found something new like a feature that's so buggy it is actually completely defect, you're in for an ordeal of a few months. Simply getting a dev to look at your bug takes a month. In that month, you'll answer every day questions like what OS you're on ('As I told your past 10 colleagues, We see it under red hat linux version X1 X2 X3, and under windows Y1 and Y2, and under HPUX Z. Yes, this is a pristine OS install with a pristine JVM. Yes, our support contract covers this. There is a test case in the bug report, run it on your computer and see yourself'). They'll call you in the middle of the night. Then call you again 12 hours later because you're not allowed to respond to their questions outside business hours so please tell us again and next time read your contract.
If you survive this, and you provide a perfect example source code fragment of 100 lines, and you decompile their own code, point at the bug, and suggest a less insane way to write that code, you'll get a fix. This fix seems to work for up to a day, when you notice your performance is less than a sixt from what it was. Then you notice how they ignored your suggestion, did something even less sane than the original code, and managed to break something else you hadn't even noticed before.
Call again, insist they do not start a new ticket unless you want to redo that original month. A few minutes later they call back and try to sell you six times the hardware you have as a workaround, and promise a 10% price reduction for the first year. Do not swear at any point, this will immediately end the phone call and you'll have to navigate their insane phone menu again and get a new lesson in Indian English from a guy who swears he is speaking your language perfectly right now (which is neither English or anything spoken in India, afaik).
After a few rounds of this, they produce a working patch. You confirm it works and are promptly forbidden to use it ever again. They will provide you 'soon' with an official version of the patch, which has been vetted against their secure development lifecycle, legal team, and god knows what else. Actually applying the current patch so your users stop screaming will end your support contract.
It takes in total a bit more than 3 months before the final patch is delivered. At that point:
1) management congratulates themselves for having bought support.
2) Your colleagues however are in awe about you've got actually managed to get an enterprise vendor th actually fix a bug. Turns out they have tons and tons of bugs and spend their days inventing horrible workarounds as they gave up getting them fixed long ago.
3) Contractors from the enterprise vendor, working on another project in your company will turn the feature off, as they know for sure it can't work. If you claim to have a patch and it is already running on their servers, they refuse to use it and turn the feature off once more. Not using the feature costs a small fortune in network overhead, BTW. If you enable it, the next coontractor entering the building will disable it instantly, even if your config file has this story documented.
Anyway, thats my experience. YMMV.
If you have paid support, a small team of engineers will dedicate their time to fix the bug for you and provide you with a patch, so you can move on. The patch can sometimes be specific for your platform and situation.
This is particularly true if you are stuck with older JDK version and cannot move forward for various reasons.
https://medium.com/graalvm/compiling-scala-faster-with-graal...
What do you mean by non-community?
Graal is developed by a large community of people at Oracle, other companies and universities.
Who owns it. Sure, we all use stuff owned by large companies, we just have to pick and choose, and I avoid Oracle. As a dev community I wish we could avoid wholly owned Oracle software to make a statement about their business practices, but I understand that stance is unreasonable for many.
And I say this as a huge fan of all of your work on Graal and JRuby and a proponent of the Java platform.
Contributing to Graal isn't just getting a commit into a GPLd project. It requires you to allow Oracle to ship it in GraalVM EE.
I have no problem with dual lisenced code nor begrudge the business model, but this is distictly against the spirit of the GPL.
I'm how sure how I feel about it with the JRE. I have old open source apps on Scala 2.11/SBT 0.13 that are already experience dependency rot. :-/ It's going to be more difficult too since deprecated stuff is finally getting removed from Java.
I'm curious to see where we'll be a few years from now.
Thanks to Java modules, jlinker and packager tool, the idea is that you just distribute everything together.
https://docs.oracle.com/javase/10/tools/jlink.htm#JSWOR- GUID-CECAC52B-CFEE-46CB-8166-F17A8E9280E9
"Self-Contained Application Packaging"
https://docs.oracle.com/javase/10/deploy/self-contained-appl...
"JLINK in Java-9"
https://blog.knoldus.com/jlink-in-java-9/
"Using Java 9 Modularization to Ship Zero-Dependency Native Apps"
https://steveperkins.com/using-java-9-modularization-to-ship...
We have done it multiple times.
https://blogs.oracle.com/java-platform-group/understanding-t...
We have done it multiple times.
After the claims Oracle made during the Google trial (such as APIs and method signatures being patent-able), it is clear that one can't work on the Java platform without infringing Oracle's IP. If Oracle doesn't sue you now, it can sue you when it makes financial sense to do so.
.Net looks like a much better alternative, with a patent pledge and ECMA standardization. Although to be fair, Microsoft is still a supporter of patent lobbies.
Next time I want to develop a frontend system, I think I'll try reasonml.
If you're thinking about life without Java, Typescript is interesting. Is it perfect? No, but it's evolving quickly, has traction, and the ecosystem is pretty good.
That's a pretty extreme interpretation. Most people aren't trying to ship Java-compatible runtimes, as Google did,
If you're big enough, they will come after you. I think it's perfectly rational - and i'd argue smart - to cut them off early before it's too late.
"Triangulation 245: James Gosling"
https://www.youtube.com/watch?v=ZYw3X4RZv6Y&feature=youtu.be...
If IBM had not given up to buy Sun, I am pretty sure they would have done likewise.
Plenty of JVM vendors are selling their versions without getting into trouble by playing by the rules.
https://en.wikipedia.org/wiki/List_of_Java_virtual_machines#...
https://en.wikipedia.org/wiki/List_of_Java_virtual_machines#...
Google had the option to buy Sun after helping to their downfall, they have chosen not to spend the money to own Java. Now they get to spend on lawyers instead.
People have certainly learnt their lessons that the stewards cannot be trusted - they could get bought out as with Sun or their management could change any time. How users rejected Facebook's React License speaks of better awareness on these issues and is welcome.
What you're looking for goes beyond any traditional notion of free software, in the Stallmanist sense.
I seem to be missing a historical bit there.
Long story short, Oracle bought java and it's back to square one, with layers and court this time.
https://www.youtube.com/watch?v=ZYw3X4RZv6Y&feature=youtu.be...
Good for them. The parent suggests we should not stick to a platform that imposes such rules.
Copyrightable.
> it is clear that one can't work on the Java platform without infringing Oracle's IP.
That's not at all clear. After the third time Oracle v. Google gets ruled on by the trial court, it will undoubtedly be appealed to the Federal Circuit again. Whatever happens there, it is likely at least Google (given how the Federal Circuit has constrained what must happen at the District Court in the prior Appeal) and possibly Oracle will attempt an appeal to the Supreme Court. After that (whether the Supreme Court hears the case or not, but especially if they do), then what the law is in this area may be clear. Until then, all that is clear is what the Federal Circuit’s view of Ninth Circuit case law is, which as precedent is binding on no other court (any court bound by Ninth Circuit case law is bound by the actual case law of the Circuit, not the Federal Circuit’s interpretation of it) and, for litigants, has predictive power only for cases with patent claims that also raise similar copyright issues, and which arise out of districts in the Ninth Circuit.
[1] http://www.scala-js.org
[2] http://www.scala-native.org
And what you are talking about is just ridiculous. There are very few real world (if any) Scala projects that don't rely on least some Java based libraries. Either directly or through transitive dependencies.
The versions mentioned here are strict Java compatible in that they follow a well-defined standard and an elaborate test suite. Quite different from Java Android.
Its only been a couple of years that Microsoft has been behaving "better". I suggest you read up on the history of Java, Android, Google and Microsoft because you also seem to be unaware what Android Oracle vs Google was really about; Its wasn't about patents, it was about copyright.
You know what they say about history: Those who don't know it are doomed to repeat it.
So? Oracle has never behaved good, so there's that. Do you expect a MS regression?
Besides MS has made some concrete efforts to clear things, like a pledge to not sue over patents, an ECMA standard, etc.
>I suggest you read up on the history of Java, Android, Google and Microsoft because you also seem to be unaware what Android Oracle vs Google was really about; Its wasn't about patents, it was about copyright.
Same difference if Oracle ends up suing you for recreating Java APIs.
Not at all. In a copyright case, you can argue fair use, as Google did.
On top of that, while the promise mentions "Microsoft-owned or Microsoft-controlled patents" it is very specific about who is promising not to sue - Microsoft only, not its partners, subsidiaries or other affiliated entities. So they still have plenty of room to arrange for opponents to be sued.
[1] https://msdn.microsoft.com/en-us/openspecifications/dn646765
Comparing evils is always hard. Oracle is definitely not my favourite company. However today this was posted about Microsoft: https://www.ghacks.net/2018/09/12/microsoft-intercepting-fir...
This Google Trends search shows .NET Core as leading since February 2017 [1]
[1] https://trends.google.fi/trends/explore?date=today%205-y&q=....
https://www.indeed.com/q-erlang-jobs.html 83 erlang jobs
https://www.indeed.com/jobs?q=.net&l= 56,630 .NET jobs
My world is pretty much divided between Java and .NET, with a sprinkle of C++.
https://blogs.msdn.microsoft.com/webdev/2018/04/17/library-m...
It explicitly states itself as being a way to "simply [want to] acquire a couple of files" I don't get the connection you're trying to make.
" - If your project does not require additional tools (like Node, npm, Gulp, Grunt, WebPack, etc) and you simply want to acquire a couple of files, then LibMan might be for you.
- LibMan lets you specify exactly where the files should be placed inside your project. (No additional build tasks or manual file copying required!)
- LibMan provides the benefit of a much smaller footprint in your web project as it only downloads the files you need. "
Basically the way to avoid touching node or anything related to it.
So why not Unix instead of *VM? It's been stable for quite some time, and offers massively better tools than these two alternatives.
However I wasn't expecting the same guy to actually promote .net, which is exactly a Java clone (created soon after the justice told Microsoft to stop trying to harm Java with this J++ thing) which only ran on Windows. It still does, because .net core is just a subset of the entire platform. But it's got a big corporation behind dictating its future development which poses the same threats as Oracle.
So given nobody can predict the future right now, I think I'd better keep using the long time open source, community focused and cross-platform alternative, which happens to be Java.
https://hub.docker.com/_/openjdk/
I assume so since they're maintained by the Docker community in the same way Debain or Ubuntu may maintain their package trees.
OpenJDK is open source (GPL2 + classpath exception).
"Java" otoh is a trademark.
Redhat is skipping the minor Java versions, so it's Icedtea/OpenJDK build has Java 8, and the next version will have Java 11. This is what I'll be using on Linux.
What about Eclipse?
Love it or loathe it, it's certainly been successful.
This sounds harsh, and I don't mean to be, but only time will tell how OpenJDK/Open J9 fares.
I get mixed messages on OpenJFX on how much of JavaFX has been open sourced.
I think the whole idea of "We need to replace Java with [Insert Language]" is much more complicated topic than just saying "X is free , Java is owned by Oracle".
Even is this is true , Java is by far one of the most performant programming language that exist on earth.
People just don't realize the hundreds of millions of dollars that went into the JVM and the JDK.
Even if they are great alternatives like Go or .NET , they either come with huge limitations in performance or their ecosystem.
Per say , finding JVM developers isn't that hard, regardless of the geography. However , finding Go developers outside of the Bay Area ? Good luck with that.
The issue with Patent on the JVM is well know and there is very little to nothing that we can do about it.
The ecosystem is a much better argument since it’s certainly massive, as is finding developers, although quality varies wildly in both cases.
It ended up being about copyrights and whether or not you can copyright APIs.
It's unfortunate that Oracle chose to break the long-standing convention on this topic, however, it's not entirely surprising that eventually someone did. It's not at all clear why APIs should not be copyrightable, given the intent and wording of copyright laws and treaties - it's merely a convenient collective belief the software industry has had. It's now being tested in court and apparently splitting judges both ways.
I would also note that you always take such risks when building on platforms. The web is basically driven by Google these days, with other browser vendors either struggling to keep up or just giving up entirely (see, Safari) creating a new "works best in IE" era. And Google's stewardship of the web is hardly uncontroversial. Lots of obvious, major technical problems go unresolved for years or decades. AMP seems to be upsetting a lot of people. And of course there's not much stability: the web guys don't seem able to pick a direction and stick with it (e.g. web components/shadow dom stuff).
Not public? Why on earth not?
http://hg.openjdk.java.net/jmc/jmc/file/31576d187ec3/license...
I must say that Oracle makes me hesitant to want to use Java in anything I'd make in my free time.
I hope Scala with Scala native continues to thrive, and for any additional pet projects not in Scala, frankly Python sounds pretty appealing to me as someone who eschews dynamic typing. 3.6 seems to have added some type inference, and it's popularity is up there with Java/C++/JS... Rust might be an option too.
https://golang.org/doc/go1.11#modules
As for Spring, I never used it in anger.
Our Java Web projects usually are built on top of JEE stacks or Jersey.