Oracle's Latest Java Moves Draw Industry Ire
snydeq writes "Two years later, Oracle's stewardship of Java continues to raise user and vendor ire, this time due to modularization, licensing, and security concerns. 'Plans for version 8 of Java Platform Standard Edition, which is due next year, call for inclusion of Project Jigsaw to add modular capabilities to Java. But some organizations are concerned with how Oracle's plans might conflict with the OSGi module system already geared to Java. In the licensing arena, Canonical, the maker of Ubuntu Linux, says Oracle is no longer letting Linux distributors redistribute Oracle's own commercial Java, causing difficulties for the company. Meanwhile, security vendor F-Secure views Java as security hindrance.'"
With Oracle responsible for Java, is it even worth it to learn the language any more? I mean they will be killing it off soon.
Ha - you've obviously never tried to distribute anything already compiled across multiple Linux distros... it's impossible to do reliably.
Great, a language is a security hindrance. Isn't that like saying executable files themselves are security hindrances?
but the idea is actually to distribute the source code, not the binary!
OpenJDK has been the default in Ubuntu for a little while now. I don't think most distributions used the main Oracle Java in their distro by default either. OpenJDK is still available, and included, it is just the oracle version that has been removed. OpenJDK is backed by other companies than just Oracle, and is licensed for distros. At least, this is my understanding of the landscape.
Scott Carr
I follow Java developments regularly and I don't see these points as being real issues.
Modularization: Project Jigsaw is meant to bring a more simple module system when compared to OSGi. OSGi is a great tool, but overly complicated for many people. Also, having Jigsaw built into the JRE will allow Oracle to split the base JRE into modules and hopefully reduce the memory required on initial load of a Java app. (Java core libraries have some horrible dependency trees, which cause a large chunk of the base JRE libraries to load on even the most simple applications).
Java Licensing: Sun started to push OpenJDK before it was bought by Oracle and that trend is continuing. The idea is that OpenJDK should be included with OS's like Ubuntu. OpenJDK is a GPL fork of a majority of the Oracle JDK, but some pieces could not be released as GPL because Sun originally licensed them from others (so those parts had to be re-written). I think it's better for everyone if OpenJDK gets more people using it so the bugs are worked out and it's a great open source Java implementation.
Its not what it is, its something else.
There a many good reasons why that's not always desirable or possible. Linux shouldn't make so difficult - it just pushes people to the smoother experiences of other OSes.
I'm just guessing here, but I suspect they want to have control over the JVMs out in the field in such a way that doesn't necessarily screw up your vendor's package management system. Upgrades in-place, for example, won't work when the initial install was via rpm/deb/whatever and the upgrades are via Java's updater. Or, rather, the vendor tool will think that Java is messed up - sizes and checksums won't match; timestamps will be off. I bet they're thinking this is for the distro's benefit.
Also, by forcing everyone to go to the Oracle site, they can force you to accept their license before downloading, as well as generate some reasonable pseudo-accurate numbers on how many copies are in use and where (IP address based geo-lookups).
My gut says there's a monetisation strategy in there somewhere. I just can't quite see it yet.
Does anyone actually care if Ubuntu stops including Java? Let's not even bother considering that Canonical has shot themselves in the foot, calf, thigh, pelvis, and abdomen with their recent stewardship of the distro, how many people need a desktop with Java on it anyway? Are there that many Java devs using Ubuntu? There sure aren't that many desktop applications written for the platform anymore, and most of them are development tools.
Oh yeah, I know that OpenJDK is included. I was dabbling with Java for the first time a couple of months ago, and I installed the Oracle JDK because I wasn't sure whether I might run into discrepancies between OpenJDK and Oracle JDK. You normally run into enough gotchas when taking your first steps with a new language without having to worry about things like that... (BTW, that was me above; forgot to sign in!)
Personally, I've been a fan of C# (.Net) over Java since the beginning... I also like Mono as an option. Mostly for portability in applications that may otherwise be Windows only. I wouldn't mind seeing a runtime like NodeJS (with some GUI extension) or Python become much more common. I'm not a fan of Python, but it would seem to be the way to go if you aren't doing anything on an it must be as fast as humanly possible level in Linux.
Michael J. Ryan - tracker1.info
I will say that this has been a major pain for me - I run nothing but Ubuntu at home and already spend enough time dealing with my kid's school's insane focus on Microsoft technologies.
Now, one of the most important sites for my kids to use (Aleks) is totally broken with Open Java. It was enough of a pain with Oracle's Java, but now it's unusable.
Thanks a lot Oracle! Wouldn't want anyone actually using your software or anything.
*ix user since Solaris 2.6 Intel desktop edition, and to this day if someone hands me source, and I don't absolutely don't need to have that software, I walk away. I honestly have better things to do than guess at your dev enviroment, scurry up bullshit and do your job.
FIRST POST
Obviously you aren't running Java, otherwise you wouldn't have been able to post so fast.
Any insufficiently advanced magic is indistinguishable from technology.
the really funny/sad part is that many of the same people here who will condemn Oracle for capitalizing on Java are the very people who sadly shook their heads that Sun *wasn't* able to leverage it commercially.
Those "two sides" are not correct. This lawsuit doesn't hinge on whether or not Java is open. The real situation is that if Google had licensed Java, it would be protected from Oracle's patent infringement lawsuits (due to licensing terms) regarding patents that have NOTHING PER SE TO DO WITH JAVA. Those patents cover techniques used to implement virtual machines, and they could potentially be used to sue Perl, Python, Ruby, and other virtual machine technologies.
One use for OSGi on a web server is to host many separate applications. Currently, each application bundle (.war file) includes their own dependencies, but with an OSGi manifest, the app server can supply the dependencies so each application can be tiny - only include the resources it needs, not duplicate copies of shared .jar files. This saves a ton of memory in this situation. Additionally, hot-deploying of each application is much easier. Virgo is one such OSGi app server.
However, if your production app servers are only serving up your one production app, OSGi doesn't seem to help much (from my limited understanding), assuming you still have hot-deploy and session-replication and all the other clustered good stuff.
It's because Oracle (formerly Sun) makes huge amounts of money licensing the rights to distribute installable copies of Java. Java is only free (as in beer) if you, the end user, personally download it from Oracle's official web site and install it yourself as a separate process distinct from installing any app that requires Java.
Officially, you (as a developer) aren't even allowed to try and automate the process. If you want to automate the process in any way, and/or bundle a Java installer with your app, you have to pay HUGE amounts of money for the rights to do it.
Java's licensing is brilliantly viral, because it imposes restrictions that developers never even *notice* until somebody points out their implications to naive end users. MySQL's licensing works more or less the same way -- free for end users to download & install themselves, but the moment an automated installer enters the picture (or a consultant is involved), the mandatory licensing fees kick in... and the fees are high enough that if you're running Windows servers anyway, you'll probably end up kicking yourself for having not just used SQL Server to begin with. I'm not talking about web serves you configure yourself... I'm talking about commercial apps that depend upon a database for their persistent backing store, and would normally be installed like a normal application.
If your kid's school is teaching them using Windows and the tools they provide work better in Windows then install Windows on a computer for your kids so they can get their shit done. When they are older and want to chose which OS is better for them, let them.
Good. I want to play a game. **timer starts**
How about having a system service running with admin privs? On delete you move it somewhere inaccessible to prevent new users, then the service deletes it once it is no longer open.
Just curious, have you ever attempted to use one of the many decompilers out there on your lost code?
For tens of years, it was never released to developers, users, etc the essential features considered inside of a normal practice of developing applications that were habitual during many years of the computer science history:
During many years, the java company did the ridiculous to the developers, users, clients, etc. appointing for suscribing to their Business circles.
My 1st post (in spanish): http://www.javahispano.org/portada/2011/12/15/tutorial-de-lenguajes-dinamicos-en-java-7-por-roberto-monter.html
My 2nd post (in spanish)http://barrapunto.com/comments.pl?threshold=-1&mode=nested&commentsort=0&op=Cambiar&sid=87964
JCPM
Knife Oracle, fork Java. It's that simple.
Java could have been so much more than it is. If Sun had GPL'd the whole thing in the 90's, Java could have become a programming platform pervasively used in Linux environments for application development, perhaps even the primary one. However, other languages came along like Python and stole all the attention, and Java is forever doomed to play second fiddle. If it wasn't for Android and its new language they call "Java", I'd say Java is dead. Yes, it's wormed its way onto all sorts of commercial devices and platforms, but get too comfy--it could easily be dumped and replaced with a number of software.
Java still has a chance to be revived, but the open source community has to take the lead and make the free software Java the real, official Java. Oracle might just get fed up with Java eventually and wish to dump it, in which case they might just GPL everything they have or spin off the project as a type of community-based foundation. Either way Java must be free software.
If you used MySQL or MSSQL instead of PostgreSQL, you should get someone else to kick you, because you are probably too stupid to kick yourself well enough.
Sent from my ASR33 using ASCII
Dear Mr. Java Programmer:
I didn't say that Java was dead. It is all too alive and well. In essence, what I said was that it should be killed.
I'm a bit upset that you could even dream of being so arrogant as to think that eliminating Java, not even 20 years old, would be a 60 year regression. What about all the older languages still in use today? What about the newer languages that are just as good or arguably better than Java? It is arrogant delusional individuals like yourself, too lazy to use a lower level language, that have foisted this slow and encumbered crap on us all.
I understand that you are fearful of having your gravy train derailed and not being able to compete in today's job market using other languages. But really, so much hubris?
I invested thousands of hours of time and thousands of dollars in books on Java when Sun ran the show and Java held promise as an open platform that a user could use to do an incredible number of novel things.
However, Oracle proves only that whatever anyone does with Java they Oracle will parasitize it and take control of it, if they think it is their advantage. In the short run this is a great strategy for Oracle, but in the long run it is a disaster for anyone thinking of doing any development in Java, since nothing you create is your own.
I have moved on, I don't know about other Java coders but it no longer makes much sense as a platform for any kind of open work that the developer can retain control of.
.Net is a nice platform; I like it much better than Java, except for the obvious non-portability. Mono is good, and in theory solves that problem, but something about it still makes me nervous. I'd use it for pet projects, but not for anything truly important.
I dunno. I took a cursory look at the Project Jigsaw page, and comparing it to OSGi seems a bit like apples and oranges.
From what I can see, Project Jigsaw addresses the problem of identifying dependencies between modules, so that you can package a framework into small, tightly coupled pieces that could be loaded as needed.
OSGi appears to me to be something more like an in-memory service oriented architecture framework. That necessarily covers some of the same ground of identifying dependencies, but it'd be overkill for most projects. However as far as not "fullling its promises", OSGi is widely used in container-ish projects that have to host an open ended set of modules and extensions: extensible IDEs like Netbeans and Eclipse, or Web/app containers like Tomcat or Glassfish. I haven't heard that OSGi has been a serious problem for those kinds of projects, although maybe that's because I'm not listening to the chatter.
I wouldn't be surprised if people tried to use OSGi for simpler problems and were put off by the complexity, but that's been a problem that's bedeviled the Java world for years: trying to drive tiny nails with Enormous Shiny Hammers. The problems that creates isn't always the fault of the ESH, sometimes it just means we need a smaller hammer. The attitude that we must protect the ESH at the cost of denying users a tack hammer is counterproductive. So is demanding that people driving railroad spikes do it with a 5 oz. tack hammer.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
This is one of the times I wish I could mod and post, so I could comment on your signature AND still mod you up!
Oracle has asked people to use the open-source version of Java, because the version they're putting out is only a reference implementation, and will not be updated in a timely manner.
MEMO:
To: Mark Shuttleworth
Canonical
Mark:
Nobody cares what you think any more. We've seen how you treat people in the discussion forums, refusing to answer legitimate questions; how you keep announcing products like the "Android Execution Environment" and then fail to deliver years later, how you flitter from one industry buzz-word to the next without actually developing anything in-house (rebadged cloud, rebadged music store, etc), and how you abandon existing users to chase your "latest greatest hope" in trying to make turn your failed marketing play into something that can be bought out.
Your latest "offering" - UbuntuTV - is a joke thrown together over the last couple of months using other people's code. No manufacturer will make a deal with you for this crap to save your investment. They can just go to the source - the original developers. Any distro can do what you did - root an existing linux TV and install whatever they want. There's a reason they don't.
Your failure to produce even ONE oem tablet deal almost 2 years after they were announced, and a year after they were supposed to be available shows that you need to resign. Now. Pack it in. You're an embarrassment. It's hard to tell who does more damage any more - you or Stallman.
Signed: The 99% of linux users who are fed up with your stupidity.
In case some of the Slashdot readers take the joke (and what used to be true) as the current state of affairs I thought it worth correcting them (otherwise they will have a mistaken view of the *current* performace of the JVM). It turns out today that Java on the Oracle JVM is faster than pretty much every other general-purpose language except for FORTRAN (which is fast 'cause it so simple - which is why FORTRAN programs still dominate much of supercomputing). Don't take my word for it. Take that of James Gosling (a biased source):
http://blogs.oracle.com/jag/entry/current_state_of_java_for
and the French supercomputing facilties of INRIA (an unbiased source):
http://hal.inria.fr/inria-00312039/en
You could always mod then post as AC...
All the world's a CPU, and all the men and women merely AI agents
There a many good reasons why shipping source is not always desirable or possible.
Granted, one possibility is that the source is either physically or legally unavailable. But what are the other good reasons?
Great joke from the 90's.
In case some of the Slashdot readers take the joke (and what used to be true) as the current state of affairs I thought it worth correcting them (otherwise they will have a mistaken view of the *current* performace of the JVM). It turns out today that Java on the Oracle JVM is faster than pretty much every other general-purpose language except for FORTRAN (which is fast 'cause it so simple - which is why FORTRAN programs still dominate much of supercomputing). Don't take my word for it. Take that of James Gosling (a biased source): http://blogs.oracle.com/jag/entry/current_state_of_java_for and the French supercomputing facilties of INRIA (an unbiased source): http://hal.inria.fr/inria-00312039/en
That may be so, but the GUI handling in Java royally sucks. I very rarely see a graphical Java app that can't bring the fastest of PCs crawling painfully slow.
Any insufficiently advanced magic is indistinguishable from technology.
"...But some organizations are concerned with how Oracle's plans might conflict with the OSGi module system already geared to Java. ..."
So if Oracle integrates OSGi into Java, other organizations will concern with how Oracle's plans might conflict with the Jigsaw module system. So Oracle cannot do anything with Java.
Erlang has a very powerful feature whose technical name I forget. It allows you to define a function within a function to be processed by higher level routine, such as a list iterator. My understanding is that a similar feature is to be added to Java 8. I think it'll be a very powerful addition to the Java syntax.
But as to Jigsaw and any competing approaches, I have no opinion or comment. May the best technology win.
I do not fail; I succeed at finding out what does not work.
I've been working with cisco devices java GUI for years - and it still sucks in terms of speed and reliability.
If you are talking about when Java took off, the early 1990s Python was immature. Perl would have been the better choice and was about 10x as popular.
The big issue is that Perl, Python and Ruby are all dynamic. Dynamic languages are prone to all sorts of runtime errors that static languages don't have. Further the theory of how to optimize static code is vastly more advanced, and was more advanced then. Given how Java was going to be running, dynamic languages were out. VBScript and Javascript were the dynamic web based languages. There were also more mature platform independent languages at the time like Smalltalk,
There wasn't anything else but Oak/Java to full the niche of cross platform, bytecode secure VM...
Because its a 100% corporate for profit language, I hope its banned in all universities because only real open languages should be tought there.
If zero grads know java, that will kill java.
Liberty freedom are no1, not dicks in suits.
If the java lang requires constant updates new features, that just means the current java is 'not good enough' . If you have 100 variations in a language VM, then its already shit. IF its not perfect today, it will never be perfect, if it gets updated too often, its just bloat, and 10000 pages of refererences.
Liberty freedom are no1, not dicks in suits.
Again, a common misconception of morons. Crawling painfully slow? Now, that just makes you look ignorant. SWT is actually quite good.
I've seen slow SWT apps too, but then the problem isn't really the GUI but rather the habit of the Java runtime to use lots of memory. Any machine is slow when forced to page (and when using Java on something with plenty of RAM, it flies). The other issue is that the boot time of the JVM is quite long, but that's actually quite dependent on what you're doing with it.
Neither of these issues is at all special to Java of course and things are not as bad as they used to be, but it is afflicted with them for sure.
"Little does he know, but there is no 'I' in 'Idiot'!"
Because of either java or X, they dont default to anti alias, you have to edit the netbeans.conf file and add an arg to java to force on antialias, then your netbeans will run at 5fps.
Come on, if gpu hardware can do millions of triangles per second, why not just put the whole editor gui in openGL, it would run faster than softrendered.
Liberty freedom are no1, not dicks in suits.
Can you buy Internet Explorer and Visual Basic?
Thnx bye
And once again, Oracle succeeds where many others have failed. This time they are going to make Java impopular!
Maybe because the software takes a rocket scientist to build in the first place? Maybe because you target users who should not have a need to learn about using a compiler and fixing fuckups in the system libs created by wild patching from distribution creators? Maybe because handing out the sources to your game would open the doors even wider for cheaters (server-side input testing is generally not enough)?
http://www.moonlight3d.eu/
Again, a common misconception of morons. Crawling painfully slow? Now, that just makes you look ignorant. SWT is actually quite good.
I've seen slow SWT apps too, but then the problem isn't really the GUI but rather the habit of the Java runtime to use lots of memory. Any machine is slow when forced to page (and when using Java on something with plenty of RAM, it flies).
A lot of C or C++ applications also use a lot of memory (maybe less, I'm not sure, but still a lot) - but there's a better chance that a lot of it can be paged out and left there because they don't have a garbage collector regularly scanning it.
Maybe because the software takes a rocket scientist to build in the first place?
configure; make; make install. Yeah, that's brutal.
You're not catching me on this one. It's JVMs all the way down!
John
Try that with OO.o or Firefox. Good luck!
http://www.moonlight3d.eu/
* if the programmer doesn't know what they are doing with Swing they will block what is known as the Event Dispatch Thread (EDT). Do that and you may get performance issues. On the other hand, if the developer does know what you they are doing with regard to the EDT (or have one of the tools to check this for you) then you can create a multi-threaded GUI that is *very* responsive even for very large tasks.
* Ever since Java 1.6.0u10 all of Java2D (and therefore Swing) has been completely hardware (that is, GPU shader) accelerated. On Windows DirectX shaders are used and everywhere else OpenGL shaders are used. Nicely 'stroked' and anti-aliased text rendering can be a little slow, but that is not noticeable compared to dump programmers blocking the EDT.
Third, in the particular case of Swing it is far more extensible than either WinForms or SWT. I know, I have had to write custom controls for all three and Swing was the easiest by far to extend (again, if you know what you are doing - as in everything in development).
So, perhaps Java GUIs require a bit more skill for new programmers to master, and unfortunately users seeing the interfaces produced by these less experienced developers blame the technology rather than the level of development experience. However, once you get past the n00b stage I reckon Swing is much much better for advanced UI projects than many other toolkits (which are easy for very simple stuff, but are a curse when you actually want to build a serious custom-tailored GUI).
JNI will work on any platform, but it's a bitch to get working with non-OO languages. (F77, in an example I give elsewhere, is a particular pain.)
JINI, the Java virtual bus technology, seems to have died a death years ago.
Java was designed to not just kill MS Windows but the PC as well. The Network Computer - machines that ran relatively small applets that were centrally dispensed - was to be the future. And, at least as far as handheld devices go, that is indeed what has happened.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
I said it was easy to type in configure; make; make install, I didn't say it would always work :-). If you release the source, it's easy enough for distributors package them in rpms and debs.
I remembering manually compiling the Linux kernel back in 1998 (not always successfully). Nevertheless, releasing source code can be helpful. According to Eric S. Raymond, one of the reasons DARPA chose BSD for TCP/IP was that BSD offered source code.
Of an old joke, Java is now like an infected wiener, you don't need to amputate it... "In few days, turn black, and fall off all by self!
How to handroll a .deb of Oracle JDK 6u30. We are using the result in production at work on Ubuntu 10.04 server.
http://rocknerd.co.uk
If I had a dollar for whenever I saw some novice doing IO or expensive computation in the Swing event thread I'd be...well...not rich but it would be sufficient for a night-out for me and my friends. It's amazing how many "experts" don't know how to do threads in any way, shape or form. They are quite trivial to implement in Java but being threds they need some kind of planning.
But you are wrong about the Swing API. Now I have to say I haven't done real(as in paid for and a couple of hundreds of thousands of tedious UI code) any Swing work in the last 10 years since we all jumped on the web application bandwagon. But I can compare things like WPF(which was a bit crap at the beginning) to Swing back then. WPF is better. I wouldn't do pure Swing today. The API was great at the turn of the century when compared to other GUI APIs back then. I always felt like it had been neglected after that. It got a lot of improvements like hardware accelleration and optimizations but real changes and improvements in the API are far and in between.
But one thing has been a fundamental truth whenever somebody cracks a joke about Java speed: that person doesn't have the slightest clue and propably is a bad programmer. I've seen my fair share of use of JNI calls to C code because the perceived advantage of native code. In one case the C code were just a series of trivial integer operations that didn't take any measurable time to compute. The "optimization" was percieved as "necessary" because this used quite often. The JNI call was called thousands to millions of times within a series of loops. It didn't perform as expected because Java was slow. I did away with it and got a huge speed increase. What a surprise. The other time I saw something insane was when somebody used JNI to call a C function that sent XML over vanilla sockets because "Java doesn't do TCP, only RMI".
Could we just get the morons out of the way, please?
20 minutes into the future
Nope. It does mean that most inefficiencies are introduced by bad programming. Write inefficient C code and it will be slow. Write inefficient Java code and it will be slow.
If you are paid for the results(ie an application) and have to compete over price then you will not write code that is optimal(as in: the fastest way to run things) but rather whatever you can do with your budget. And writing optimal code has a very low priority when compared to writing maintainable code. Testable code. If you write a cutsom application for Enterprises(aka Big Corps, has been around for 100 years will be around for another 100) then you will have to plan ahead for the guys who have to extend your code 5 years down the line. Or port it. Also those applications tend to be broing as shit. All UI, data gets dumped into the database and somebody compiles a report. Job done. Well payd drudgery. You could write something like that in TCL/TK and it would be fast enough.
Speed only matters when you have a lot of computation.
Speed also matters when doing data analysis. But that is what databases are for nowadays. No need to reinvent the wheel.Simply drink the Oracle BI cool aid and weep into your drink after hours. It's hard to be challenged anymore.
20 minutes into the future
Lol. Great stories!
Don't forget to check out Google Web Toolkit (GWT) for the web if you haven't already. It has its limitations but it is pretty damn good (and portable, since it uses Java -> Javascript compilation for AJAX without the hassle).
Yeah, I'm planning on checking it out. I just managed to train my people in JSF 2.0 but we will be needing GWT sooner or later.
Right tool for the job. When I see the job.
We mostly do web applications with about 140 forms and just as clever as the customer wants to pay..
Turns out simple is simple enough.
20 minutes into the future
But one thing has been a fundamental truth whenever somebody cracks a joke about Java speed: that person doesn't have the slightest clue and propably is a bad programmer.
Most users are like that, yeah. And the Java apps I've used? Haven't impressed me with their speed.
Even if I was an expert Java programmer, I wouldn't have much control over Java apps written by others, now would I? When you're using a Java app and it's painfully slow, do you open up the .jar and start optimizing things? I doubt it.
Heh, once I figured out that IL-2 Sturmovik had quite a bit of Java in it I immediately wanted to know how much. Encrypted JARs, propably custom class loader, oh I really wanted to know how they did it.
Then there was that old Oracle Java database lib that slowed the system down whenever we wanted to use a connection pool. A quick profiler run unearthed that it spent 98% of its time in Thread.yield(). Called from within the Oracle drivers. If I hadn't had some McKinzey dude breathing down my eck at that moment I would have set the guns to very disassemble.If you see that kind of train wreck then you really want to witness the extent of the carnage.
20 minutes into the future
Mono works pretty well, though it's best if you have a good separation of concerns, or your GUI is very simple... most of my work is web based, and these days would be more likely to use nodejs if targeting *nix for a new project... but having a porting option (even if sometimes cumbersome) for .Net is a nice to have.
Michael J. Ryan - tracker1.info