Oracle To Monetize Java VM
jtotheh writes "According to the Register, Oracle is going to make two tiers of Java Virtual Machine — a free one and a premium paid one. 'Adam Messinger, Oracle vice president of development, told QCon that Oracle plans to offer a "premium" edition of the JDK in addition to the open-source JDK. Both, it seems, will be based on a converged JRockit VM and the Hotspot JVM from Sun Microsystems. The converged JVM will be released under the OpenJDK project. ... Messinger didn't explain how the premium JVM would differ [from] the free version, but the premium edition will likely see performance tuning and tie-ins to Oracle's middleware.'"
the death of java?
he who controls the spice controls the universe
Suicide? Sounds they are working on ending Java in a hurry. :(
leather-dog muksihs
Blog: @muksihs
Either Larry Ellison is smart beyond my imagination, or he's too stupid to understand that he's basically killing MySQL, OpenOffice and Java - arguably the three most valuable software assets he bought with Sun.
As I understand it, when the open source version gets adopted by a voluntarily group of individuals that keep developing the open source version, it might be forked pretty soon, so nothing of value would be lost.
As for the commercial version, that is probably gonna end like many other Oracle products, that got forgotten. I'll linger around in Oracle's inventory, but nobody will care much about it. Also, the fork might overshadow the commercial version in a couple of months, since performance tunes, are not exclusive to Oracle programmers...
EOF
... But after that it's going to cost you.
"With Oracle it doesn't have to make sense. It just has to make money." -James Gosling.
If Oracle starts locking things up in the premium version, OpenJDK will be forked (there are already some shallow forks like IceTea that take OpenJDK and replace the remaining closed-source bits with stuff from GNU Classpath etc) and the community will shift.
Its happened to OpenSolaris with the Illumos project and OpenOffice with the LibreOffice project.
No reason it cant happen with OpenJDK.
Although what might happen is that Oracle will find a way to write various APIs and licenses such that if you copy certain features from "Java Premium" you loose the patent grant given under the OpenJDK APIs.
Oh, the dot net crowd are going to eat Oracles lunch over this. Microsofts dot net is free as the wind (well not free as in speech, but whatever) and has a lot of "enterprise-y" features.
Am I the only one seeing echos of the sad demise of Borland into irrelevance here?
Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
How can the people at Oracle not see that this sort of maneuver will only _decrease_ Java's popularity?
Why did Oracle buy Sun in the first place, exactly?
File under 'M' for 'Manic ranting'
I'm surprised Oracle even have such a grip on Java as they have. Why doesn't someone produce a comprehensive open source test suite analogous to the real certficiation tests? Then who cares if a JVM is officially blessed Java or just some offshoot.
Now try using SSE intrinsics. With Java, you can't do that. In C(++) you should get a nice speedup ending up several times faster than Java, unless you're bound by memory bandwidth.
We already got better languages like Scala for the JVM. The Ada for JVM project has been restarted as well. If it just the language you want to replace - that is not a problem.
So what do you want to replace here? Ahh, well as you are an AC you won't answer.
... Ballmer et al are wringing their hands nefariously as they see the future of C#'s marketshare increase by leaps and bounds. And that's good for Microsoft in every way, since every application written in C# instead of Java means a license for Windows is being purchased to run each copy of the software. In web apps, it's a server license; in workstation applications, it's a desktop OS license. Either way, it's a win-win for Microsoft, and a massive loss for Oracle.
.Net versions, there would actually be an open source OS alternative to running modern C# applications.
Not that I mind, per se. I prefer C# in every way to Java... but from Oracle's perspective, I don't see how they see this would do anything but hurt Java and their reputation that's rather ubiquitous.
Now if only Mono would get their asses in gear and not lag so far behind
I'm sure that Oracle will find some obscure patent- or other issue to crush the free version. That is what patent law exists for, after all: to help build monopolies.
Oh well, I guess it's time to start looking for another language to start new projects in.
Forget magic. Any technology distinguishable from divine power is insufficiently advanced.
Or maybe you just talking crap? Eclipse, Netbeans, Freemind, Visual Paradigm, Lotus Symphony. All have a lot of users and I'm using Eclipse all the time. For GUI apps I couldn't care less what language is used, for them are 99,99% of the time waiting for user input. In fact, sometimes Firefox is way slower then Eclipse.
What people don't realize is that only because an application is written in C or C++ you don't need the same amount of code and abstractions that you have with the JVM. You need memory management, exceptions, logging, threading, etc. You need it all in a "native" application, and the JVM is a "native" application anyway (it's written in C++). So what you have in Java is a tiny bit more abstraction, which gives you so much more productivity for the developer.
http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
At least they are consistent: first they killed OpenSolaris, then they managed to split the OpenOffice community and now they will marginalize Java. I am sure they have something in store for MySQL too...
CU, Martin
"it might be forked pretty soon, so nothing of value would be lost."
compatibility ?
New things are always on the horizon
(And it took years to get it to perform in anyway sane).
New things are always on the horizon
1000's of big companies (telcos, utilities, retailers, gov, defence) use java in their back office, and... well everywhere.
This may cause them to change their policy for new software development, and it may also squeeze the java developer market badly, but for sure there will be strong arguements for splashing £50k here, £90k there, £20k somewhere else, on getting the new JVM to pick up the performance of application x, y, z which are long in the tooth and a pain in the arse.
The alternative is to rebuild, which carries risk - although would be a good move in the long run. In the meetings someone will say "yeah, but we are all dead in the long run" and that's that basically. As a CIO you just pay over £50k, get your users back on side, keep your job for another year, collect your bonus, put another years pension contrib into the pot.
So, Oracle will make money, lots of money, off this. You guys can squeak, MS will cheer, the Python community will see a boost (perhaps), but Larry and co will be richer.
Mysql (in the future) = Oracle feather light (down load it and run it and you are up and going in less than 1hr - oracle normal = 6hrs to setup?) But, if you are an enterprise DBA then you want the management and recovery features that Oracle gives you (as well as the scaling - even though it gets so mind bendingly expensive).
Open office - who cares?
Oracle bought Sun to be IBM mark 2. Expect them to buy Accenture next.
--------------------------------------------- "In the end, we're all just water and old stars."
Back in 'the day' JRocket (BEA) was more feature-rich and faster than the Sun JVMs; and had a pricetag. I don't remember anyone complaining about BEA. "Grr. How dare a company introduce a JVM for profit! Corporate bastards!" How is this any different? Why can't Oracle have a superduper JVM they charge money for and have a free one? There's an infinity of software companies that operate with this model. Also why are you angry with Oracle? You should be angry with Sun for mis-managing it's assets and living in business-model-fairytale-land which resulted in their having to sell out. Thanks to Oracle Java didn't 'go down with the ship' and all the Sun employees didn't lose their jobs.
Once you're convinced you need such features, chances are you are able and willing to pay for these. The rest of the community could continue steering clear of using vendor lock-in bait for their mission critical applications in Java. It is the classical trick of offering a small incentive so that your codebase is no longer vendor neutral.
Most Application Servers support reloading classloaders, so you can already restart apps without restarting the AS (or the OS of course).
If we're talking about hot swapping parts of code (bug fixes etc. like you can in a debugger) then this will introduce a whole new class of problems - what version of the software is running at a particular point in time? Kind of Continuous Disintegration...
While in theory this could be fine for Java, I can't imagine it will be being how poorly Oracle has handled things so far.
From my perspective, it's perfectly fine if Oracle has decided to try to aggressively monetize Java. The real problem, in my opinion, is their lack of clear and detailed communication.
To announce there will be two JVMs without giving us details is insanely stupid of them. It leaves developers, like me, uncomfortable with moving ahead on Java-based projects. It's the not knowing that's the killer. Will the free version continue to meet our needs? We don't know, because Oracle hasn't given us any damned details. Just some vague announcement that's leaving everyone uncomfortable.
The same applies to Java on OS X, too. Oracle, once again, leaves us wondering what they'll do. They should have already announced their intention to either pick up where Apple is leaving off, and ship future versions of Java for OS X directly, or not. That way, the open source community could make a decision whether or not they want to do that work. And then developers that want to also target OS X could start making some decisions.
But no, Oracle is being tight lipped, leaving OS X folks wondering and uncomfortable about the future of Java on OS X.
Oracle just sucks at communication, and I've already halted my personal Java projects, and have started seriously considering alternative technologies to replace Java.
You do realize that Google uses Java extensively ?
How is this news? It's not like JRockit VM was exactly available for free:
http://www.oracle.com/technetwork/middleware/jrockit/downloads/faq-085599.html#t2
I see this as being more of the same - if everyone's panties didn't get in a bunch every time some entity tries to make a $ off of something then maybe you'd understand that.
So, while I'm no fan of Oracle how about we all just shut up and be happy that the JRockit features are going to be merged with already excellent HotSpot VM.
If Oracle wants to add "special sauce" to the JVM so that thier stack can offer more to thier customers then so be it so long as it doesn't impede the open source JVM.
Let's take JVM as an example: you have defined instruction set (bytecode), well defined ABI (this one is much better than in conventional operating systems) and well defined set of standard services (standard libraries). You also have class loader which somewhat resembles dynamic linker functionality in the conventional OS. Oh, and there is a pretty damn good debugging/profiling/monitoring infrastructure built in. And from application programmer point of view JVM is pretty much like a OS. Programmer can use many languages to target this platform, not just Java. It is possible to implement almost any language on top of JVM (albeit some things have no practical sense, for example C/C++ with its pointer arithmetics).
Would Larry prove its intent to totally screw Java (I'm still not sure of it yet), we'd need to have another platform rather than another language. There are enough cool languages to choose from, but aside from JVM and CLR there are no viable, widely supported multi-language, multi-paradigm platforms. JVM is propably the best one available but as it ages, there are more and more shortcomings visible. Having enough support from companies and developers (and from Larry screwing up Java) one can design and implement a new VM addressing some additional things, like:
- native support for dynamic dispatch (albeit OpenJDK7 seems to support it in some way) - what I mean by that is trying to achieve performance somewhat comparable to statically typed programs (now we mostly compare to C implemented couterparts, eg. JRuby vs. Ruby, Jython vs. cPython etc.);
- support for big memory heaps - most VMs suck at this (except for Azul), so we have to slice server machines and run many instances of JVM on one machine, then cluster/farm these JVM which is both silly and troublesome;
- better support for massive concurrency - again, most JVMs suck at this and Java thread model isn't perfect and isn't suitable for everything;
- support for multiple independent garbage collector zones - some language may utilize this to mitigate concurrency/big memory heap problems (Erlang, anyone?); ability to use different garbage collection algorithms in different zones if it makes sense (ex. big heap as in Java vs. small heaps as in Erlang);
- ability to execute on multiple target devices at once - to utilize GPUs/APUs directly from bytecode (maybe with some limitations), without those crappy hacks we see today; it also applies to memory management that seems to be a horrible hack in current GPGPU solutions;
- better support for long running VM processes, mainly hot code loading (Sun JVM sucks at this but some other solutions like JRockit seem to do a better job), maybe some code versioning, better tools to administer / tinker with running VM process (similiar to what Erlang has);
There is more than 15 years since Java was published. There is about 10 years since Microsoft built its CLR. And there is a lot of new things that appeared (GPUs, huge memories, multicores) and lots of new knowledge we obtained since then (look at all these JS interpreters in modern browsers!). There is also a pretty good base to build on (LLVM, V8, BEAM, PyPy and tons of other projects). On top of such VM we can implement various languages (including Java), maybe even better than JVM.
With enough help from friendly enough companies (RedHat? Google?) we can propably do much better than JVM and leave Larry and his corporate cronies in the dust. As long as there is a good quality reference implementation we don't need to chase Java APIs nor we do need to beg for TCK access.
No reason it cant happen with OpenJDK.
AIUI there is a major problem, one that apache Harmony is now faced with. Basically, to get a patent grant for your open source project you need to show that you have delivered a full implementation of the platform. To show that your implementation needs to pass the TCK tests. To get those tests (that are proprietary software, owned by Oracle), you need to agree to certain Field of Use restrictions. Which are incompatible with pretty much any open source license you can name.
So while OpenJDK has Oracle's blessing and thus gets to get out from under this problem, any other open source project that forks off OpenJDK would lose access to the TCK and probably find itself in Oracle's crosshairs a couple months/years down the line.
The engine for those is usually written in C++.
Does Scala allow me to build user interfaces? If not, it really isn't a replacement. What I need is something that allows me to build cross platform guis.
Didn't you really mean marginalize? Not that this wasn't expected.
---- Booth was a patriot ----
In other words, Java will become the new COBOL - large corporations will still invest in it, because it's cheaper than replacing everything. But no startup would touch it because they can see it has no future.
I don't really mind - I still program in C ;-)
"Guys, Java is dead because it was bought by a litigious patent-loving company with monopolistic ambitions and a history of screwing its customers."
"Fear not! We'll just switch to a semi-compatible clone of a semi-closed platform owned by a different litigious patent-loving company with an actual monopoly and an even longer history of screwing its customers. Problem solved!"
No, I don't need any hand holding, I've probably started building apps (guis, realtime embedded, network drivers, educational logic proggies, etc) since before you were born. I was just lamenting that C++ programming isn't an uplifting experience, especially when it comes to guis. But then you probably see nothing wrong with writing network drivers with it.
Yes, but then I still must have a JVM around. The point was that if Snoracle is going to fuck up Java, then I cannot rely on it and must look elsewhere.
To those of you that a). don't understand the Java and JVM options, b). claim to understand the Java market place and/or c). think the sky is somehow falling, please consider the following facts, all verifiable.
1. Oracle/BEA has for a long time offered a "premium" (paid for) JVM. It's called JRockit (with deterministic garbage collection).
2. Sun also offerred a "premium" (paid for) JVM, mainly for high-end support, but seem to have little penetration (probably evidenced by the fact that Sun no longer exists)
3. Oracle/BEA/Sun also offered "free" versions of their JVM. Oracle/BEA called it JRockit (without deterministic GC) and Sun called it Hotspot (that everyone uses and is now based on the OpenJDK since Sun open sourced it). You can still download these!
4. Oracle has simply confirmed the existing strategy - that's been an option for years. ie: You can still purchase a "premium" JVM that contains a bunch of stuff for seriously "high-end" customers (this will now combine JRockit and Hotspot high-end features - no point having two teams competing internally on the same ideas. Pretty standard stuff for Oracle when you consider the strategy they implemented with WLS from BEA). For everyone else, that use the OpenJDK, everything stays the same. That is, you're not forced to purchase a JVM.
Obviously it's much easier to jump to conclusions and pretend the sky is falling. Take some time to do some research before hitting the panic button. Might reduce your blood pressure.
(*) In order it to be a "sharp" the symbol in use must be (1) in italics, and (2) in a musical clef. In Microsoft's language definition it is neither, that makes those two vertical and two horizontal lines a "pound" no matter how much they want you to call it a "sharp".
a) The pound symbol is that cursive L shaped glyph with the verital cross through it.
b) Only in the US is # called the 'pound sign'. Canada calls it the 'number sign', most of the rest of the english speaking world calls it the hash.
c) Technically you are correct that # isn't an actual sharp sign, but you are incorrect on both counts as to why. A sharp does not need to be on a "musical clef". And it has nothing to do with italics. The sharp must have true vertical bars, and slanted horizontal bars. A number sign must have true horizontal bars, with optionally slanted vertical bars.
d) The language C# is called C-sharp. Wandering around calling it c-pound and actually arguing that this is somehow correct is just pointless. Why "c-pound" and not "c-hash" or even "c-octothorpe"?
C-sharp is the clearly stated intention of the people who named it, and at the end of the day language rules are descriptive not prescriptive. The symbols use to write things do not dictate how we pronounce them. Written language is simply an approximation using a mix of tradition, convention, and convenience.
The programming language was named "c-sharp". It was then rendered conveniently as C#. Suck it up.
You know, I never quite figured out what this 'dangerous' thing meant when talking about C or C++. Yes, there's nothing stopping you from going *(int*)NULL = 1337;, but programmers are supposed to be intelligent detail-oriented people who after a few years of training can instinctively and deliberately avoid bugs both the subtle and the egregious without wasting time that is supposedly saved by higher-level languages like Java that do everything for you including tying your shoes for you in the morning.
One can write in assembler too. We use C/C++ because we can focus on higher level problems without having to focus on all the minutia of assembler. We use C#/Java because we can focus on higher level problems without having to focus on all the minutia still exposed by C/C++.
Being intelligent and detail oriented still involves spending considerable time taking care of those details. Using a language without those aspects means you can spend your time being more productive.
Reading even the second part of the first sentence of that, which I shall quote, since you are obviously too lazy to do so,
to the extent it conforms to one of the Covered Specifications, and is compliant with all of the required parts of the mandatory provisions of that specification ("Covered Implementation"), subject to the following.....
Nothing is "compliant with all of the required parts" of any standard. This is before we get onto all the exclusions. This document reads like it comes from a company that has been so used to getting away with evil that it has forgotten even how to lie properly. Trying to quote it to show Microsoft is okay is like trying to say that Ghengis Khan "traveled to many places" to show that he was a culturally tolerant kind of guy.
=~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();