Oracle's Latest Java Moves Draw Industry Ire 372
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.'"
Oracle and Java (Score:5, Insightful)
Re:Oracle and Java (Score:4, Insightful)
Re:Oracle and Java (Score:4, Interesting)
Re:Oracle and Java (Score:4, Insightful)
And if oracle keeps up, Android 5 or 6 will ship with a shiny python-esque runtime when google gets tired of paying for java lawsuits, leaving java on "feature" phones nobody writes apps for.
Re: (Score:3)
Re: (Score:2)
we can only hope this happens
Not an accurate summary of the case (Score:5, Interesting)
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.
Re:Not an accurate summary of the case (Score:5, Insightful)
I love posts on slashdot by people who have more than the average clue about what's going on. Thanks for the info. I've been using openjdk for the last year, and I think it is finally something close to a real free software alternative for most Java programs. I also use Android's Java. Pretty much, I think we should be using any viable alternative to Oracle. They simply can't be counted on.
Re:Not an accurate summary of the case (Score:5, Informative)
Re: (Score:3)
Why? Where does the GPL version they were released under licence the patents in question to users or developers? Less of a risk doesn't mean no risk.
Re: (Score:3)
There is the reality of how Sun licensed Java, and how Oracle interprets it. Oracle is not about making friends, they're about making revenue, and piles of it.
Their battle with Google is just one front, and just the first wave of litigation if they're successful. There's a big piece of pie out there, and Oracle want's their slice.
Re:Oracle and Java (Score:5, Insightful)
Why do companies shoot themselves in their feet? I don't know, but companies do it all the time. Oracle has always been remarkably short-sighted and unable to see the bigger picture.
On the other hand, the fact that there is a an officially GPL'd version of official Java out there may well mean that in the long term, Java will be fine. Oracle can kill off their own branch, but Java in some form is probably going to continue, because it's too entrenched. There are some big players on the sidelines (e.g. IBM) with a lot invested in Java who aren't going to sit idly by and let Oracle destroy it when Sun made it easy to go another route. OpenJDK may have a few shortcomings at the moment, but that could easily change if some bigger players got more serious about it.
It's still too early to tell how this is all going to play out, but the death of Java seems like one of the least likely outcomes.
Re: (Score:2, Insightful)
The GPLed branch will only act as a safety net if it's kept up to date with features introduced in the dominant branch (Oracles), or if it becomes the dominant branch in the very near future and removes Oracles ownership over the future.
If neither of those happens, the GPLed branch will be the one to fade into the past. I'm not a Java user, so can someone who is possibly chip in and give us an indication of how it's looking?
With regard to the story, it does reek of the OSGi throwing their toys out of the pr
Re:Oracle and Java (Score:4, Insightful)
The GPLed branch will only act as a safety net if it's kept up to date with features introduced in the dominant branch (Oracles), or if it becomes the dominant branch in the very near future and removes Oracles ownership over the future.
Oracle's version is just a repackaged version of OpenJDK, so that shouldn't be a problem.
Re: (Score:3)
No, it's got some speed improvements from JRockit and other tweaks that don't exist in the open source code and are unlikely to ever be published. They may well port over other bits from JRockit and other JVMs they've bought or have heavy control over, with the intent of vendor lock-in. You can't move to the free version because Oracle won't let the free version support the enhancements (such as real-time support, better debugging and profiling, etc) that projects actually use.
Re: (Score:3)
Even then, you can download JRockIt 28.2 [oracle.com] separately. As far as I can tell, this is synced with Java 6 r29. Since Java6 r30 [java.com] is the latest Java6, it's not that far out of date.
Now, whether it will be compatible with Java7 is a whole different ballgame.
Side note: java.com does not yet offer Java7 for download, so 6r30 is the latest version in its eyes, despite 7u2 being out.
Re:Oracle and Java (Score:5, Insightful)
2. Oracle thinks that Java is not open, and they also have damning email correspondence showing that Google did not actually believe Java could be used without a license.
You mean the damning email that came out in August 2010 saying from engineer Tim Lindholm to Andy Rubin that said we need to license java?
(http://newsandinsight.thomsonreuters.com/Legal/News/2011/11_-_November/Oracle_v__Google_and_the_most_relentlessly_litigated_email_ever/ [thomsonreuters.com])
Remember that Oracle purchased Sun in 2009 (http://en.wikipedia.org/wiki/Sun_Microsystems [wikipedia.org]) where Android was first released in 2008 (http://en.wikipedia.org/wiki/Android_(operating_system) [wikipedia.org])
Putting together a timeline:
1) Android released in 2008
2) Oracle purchased Sun in 2009
3) "Damning" email in 2010
So after Android is released, Oracle purchases Sun hoping to sue Google for $$$, then an engineer says yeah we better license java. That isn't damning, that's an opinion of one engineer (or more likely a team). Now if that timeline had #3 coming first, it would be damning, but to come last in the chain is hardly even worth mentioning. Oracle's case resting on that one email is laughable at best
Re: (Score:3, Interesting)
"If Sun doesn't want to work with us, we have two options: 1) Abandon our work and adopt MSFT CLR VM and C# language - or - 2) Do Java anyway and defend our decision, perhaps making enemies along the way"
Not saying this is a smoking gun but your timeline deserves a correction:
Putting together a timeline:
1) First "damning" email in 2005
2) Android released in 2008
3) Oracle purchased Sun in 2009
4) "Damning" email in 2010
Re: (Score:3)
Why do companies shoot themselves in their feet? I don't know, but companies do it all the time.
We should probably just ask HP
Re:Oracle and Java (Score:5, Funny)
The problem with HP is that they use high-power automatic weapons to shoot themselves in the foot that also take out everyone else's feet, the floor, part of the walls, some of the landscape and a perfectly innocent asteroid.
Re: (Score:3)
Why do companies shoot themselves in their feet? I don't know, but companies do it all the time.
Well, I do know, and I'll tell you the secret. It's the exact same reason individuals do things like take up smoking, go flying by themselves with very little experience as a pilot and wreck, drive recklessly, have sex without protection when they're in no position to take care of kids, etc. It's because people are stupid, and also because they're too self-confident and think they know what they're doing, when
Re: (Score:3)
Recent OpenJDKs; as in, withing the last year? No, not one hiccup (loads of third party; Apache Commons, Faces etc in use). My employer doesn't even support OpenJDK or the OS I'm using for dev, I just treat it as an extra layer of testing (and I can swap JDKs/OSs easily enough). Curiously enough, my "illicit" system seems to run much better than a lot of the others - not sure if that is a function of OpenJDK or the OS. Hmm...time for some metrics methinks.
I have seen comments of some issues with some of
Re:Oracle and Java (Score:4, Informative)
Yes Oracle is wildly successful, but they are also VERY shortsighted.
I worked (note past tense) for Oracle... I saw it first hand. I saw the decision process.. I was involved in it. I fought against it too... I tried hard to point out the short term thinking... and was shot down. Oracle is all about this quarter, not next.. just this quarter... and making as much profit in any way possible this quarter. If that means destroying a product-line that is lined up to be very successful and profitable next quarter, then so be it as long as there is profit this quarter. If that means laying off thousands so that the numbers crunch out, then so be it. Layoffs are expensive and unnecessary? Well defer that expense to the next quarter and plan re-hiring next quarter, because Oracle must be ridiculously profitable this quarter.... and so on.
Sure there is an element of "Oracle isn't doing things the way I want", but there is a mountain of truth (it's so far beyond a kernel of truth, it has become a mountain) to the shortsighted comment.
Re: (Score:3, Interesting)
Sure... by riding on the success of the database. As many others here have pointed out, the database is fine, but everything else they touch turns to shit - Need an example? Well, have you ever tried Oracle Unbreakable Linux? One example of many many many in the Oracle pile of rotting product lines... some have already fallen out, and many more are due to follow.
Being "successful" doesn't make it right. Look at the success of certain world rulers. They are "successful" for decades by basically destroyi
Re: (Score:2)
Because they don't know how to handly the firearm they are holding.
Re: (Score:2)
I remember when oracle bought RDB from DEC. They jacked the support fees up by a factor of ten, took a short term profit, and killed it off.
Re: (Score:2)
Java has changed the face of mobile computing within the past decade.
Java didn't change it; cell phone vendors just implemented support for Java and nothing else, for reasons which are still unclear to me.
Re:Oracle and Java (Score:4, Interesting)
Java's API is more stable than Tcl/Tk, the mobile version of it is less of a memory hog than C++, it's easier to learn than Erlang, and easier to port across OS' than Visual Basic. Java applets will also run on web browsers for your PC, whereas there aren't applet containers for any of the other languages I've listed other than Tcl/Tk (and that is not only unmaintained, it wasn't very good when it was maintained).
With the exception of Visual Basic, the other languages are superior to Java in absolutely every respect other than the couple of things Java does better, but the point of marketing is not to present reality for a fair and honest debate of merits but to promote one option over others.
Java is actually a really bad language in many respects, but it IS runnable in any web browser and it DOES have a good marketing team. Other languages which are actually superior overall are unmarketed and often not runnable in environments you need them in to make them useful in this kind of hybrid market.
I'll also point out that when Java was released, the only serious rival as a ubiquitous platform-independent language at the time (Python) was maintained by one person and that scared a lot of people. Python also had a lot of limitations back then, long-since overcome. Unfortunately, Python 3's lack of serious traction (Python 2 is still the interpreter of choice for most new Python apps) and design quirks resulted in a lot of people moving to Ruby. I say "unfortunately" because although Python and Ruby are great languages, there's a lot of insularism. Communities don't fragment through the presence of choice, they fragment when those choosing do so with an exclusive and elitist air.
Re:Oracle and Java (Score:4, Informative)
* I've used Java since the alpha release. I've used it in more environments than you could possibly comprehend. I regard it with contempt, it's a C knock-off without any of the redeeming features of C and should have remained the province of toasters and vaccuum cleaners (the original purpose of the language for those who ACTUALLY bother with things like, oh, history).
* Tcl/Tk is actually a damn sight more solid as a platform - if only the API would settle down. The community for Tcl/Tk is considerably larger, which is no surprise as the language is considerably older.
* Perl is an amazingly stable platform and has a community beyond the comprehension of most mortals. It has plenty of GUIs (including Perl/Tk).
* Languages "that target the JVM" don't make any difference. Java Native Invocation makes it so any language can be accessed by the JVM, so it's a senseless concept in the first place. Secondly, having out-of-JVM code defeats the sandbox AND the run-anywhere concepts at the same time. Thirdly, there is no "Java Platform", there is only Java the language. Take away the language and all you have is a virtual machine -- and those are two-a-penny.
* Java's ability to run in a browser is perhaps the only facet of Java-the-language which distinguishes it from any other language. It's the only reason it gained popularity (it existed as Oak for years and only came to the public's attention when it entered the browser under the name of Java), it's the only reason phones use it (if you've already included a Java-enabled web browser on the phone, you already have Java so why have any other interpreter in there?) and the list of defects within the design is staggering, making mistakes most scripted, bytecode-compiled or native-compiled languages had resolved years earlier.
* Do you know, really know, just how many programming languages there are? And why none of them gained any kind of traction over the Internet? Look at the servlets - they're JVM-based, despite the fact that Java has the worst threading model of any language and the least ability to process text. Do you know why servlets exist at all? It's because fat clients became unpopular. So why was Java chosen? Because it was the "language of the web". Why was it the language of the web? Because Java applets existed and anyone with a web page could add one. This meant Java was used by a lot of people and THAT is why there was a community there to begin with. No applets, no community. Java is the single-worst language for what it is used for today, it is used because of that one historical facet and nothing else.
Re:Oracle and Java (Score:5, Insightful)
What a moronic load of crap. Java has not succeeded for this long because of marketing. At some point, a language needs to be able to just get stuff done - and it has. People like the Apache foundation haven't produced a metric shit-load of projects in Java because they liked Sun's marketing, they did it because Java was good at getting work done.
I'm a C hacker from way back. I used C++ from when it was a C preprocessor. C is one of my favourite programming languages, but so is Java. They are both excellent at Getting Shit Done (tm). Ignoring all that's good about Java because it had a marketing drive decades ago is pathetic. Ruby has been hyped recently. Microsoft's Visual C++ has had a tonne of marketing from MS - ditto C#. Should we dump all those languages or claim that their successes are all marketing? Give me a break. Grow the fuck up.
Re:Oracle and Java (Score:5, Interesting)
Oh, you're one of THOSE guys. You complain too much. Java isn't as bad as you say even if there's a whiff of truthiness in most of your criticisms.
I argue, Mr. Grouch, that the crown jewels of Java are not to be found in the language. They're found in the JVM. Plain and simple: the JVM is the most banged on, battle hardened, security-first computer programs ever written. There is no more trustworthy binary in the world more than java.exe. You want an unrockable web server? Run Tomcat with the NIO thingy enabled on the latest Java 6 atop Linux with the firewall all ratcheted up. And don't proxy through Apache HTTPD if you don't have to - that's just one more security-as-afterthought, million moving parts binary with perennial remote exploits to worry about.
Why do languages "that target the JVM" actually make a difference? Because you get all that bitchin runtime robustness without the Java language baggage you just love love love to complain about. And while we're at it: Java Native Invocation (JNI) is considered harmful. Native code tainting the JVM? You better have a darned important exotic business requirement to bring new native code into the equation. As far as I'm concerned, you're crazy as a loon to write native code these days unless you're doing embedded systems or device driver development. I'm wondering why you would suggest something so reckless! Care to elaborate?
I know the JVM's design makes life a real drag sometimes. It feels like a trusty slingshot that's been upgraded into a WMD. But, I could care less about aesthetics or the angst about Java that computer language and open source purists express. I care about stability. I care about uptime. I care about speed. But most of all, I care about security. I care about the total cost of the systems I run.
Ok, ok, I'm leaving, I'm getting off your lawn.
Re: (Score:3)
Plain and simple: the JVM is the most banged on, battle hardened, security-first computer programs ever written.
Really? So you're running the latest version of Java (update 30, I think?) to close that remotely exploitable "arbitrary code execution" bug, right?
And that would explain the over 700 CVE Java entries, right? Including two already this year! Already going straight into the remote vulnerabilities again, Java!
I've always wondered how Java manages to have arbitrary code execution bugs on a routine basis, being a virtual machine that supposedly does bytecode verification, not to mention the built-in array bound
Re: (Score:3)
For example, Java has direct language and library support for concurrency and threading which is vastly better than C++'s non-existing language support and non-standard library support for threading (you need different libraries depending on the platform you are on). Java also most certainly has pointer-like cons
Re: (Score:2)
Sure it is. Oracle will make itself irrelevant in the Java world if they keep this up. The Java world will simply fork from Oracle's Java. The only thing Oracle can do it sue the Java world into oblivion.
Re: (Score:2)
Re: (Score:2)
the industry is not seeing that, J2EE/Java is in decline, server share being eaten by .NET and scripting languages. good riddance, it's so 1990s and at the core just warmed over 1980s concepts.
Re: (Score:3)
Re: (Score:2)
I may be a simpleton, but your data seems to corroborate the GP's claim that Java demand is declining. It shows that GP is overstating the decline, but supports the base contention.
Disclaimer: I've been primarily a "Java Guy" for over a decade. Interestingly, the first place I used/learned Java was on a cross-platform project that ran on several UNIX variants, Linux, and Windows. The only cross-platform pain we had was a poorly thought-out installation process that needed to do *way* too much work during
Re: (Score:3, Interesting)
I work almost exclusively in COBOL and make 160k a year 28 years old (switched to COBOL 3 years ago). I see nothing but old people retiring or dieing and demand increasing.
Re: (Score:2)
Re:Oracle and Java (Score:5, Informative)
Hell, I can't program past visual basic and I make more than either of you!
So there.
Re: (Score:3)
Hell, I can't program past visual basic and I make more than either of you!
So there.
Paris Hilton probably can't tie her own shoelaces and probably has enough money to hire everyone on slashdot as a personal butler for 1000 years.
Money isn't everything.
Re: (Score:3)
Honestly, Programming in general needs a game changer anyways. Multicore chips have been around for a while now, and
Re: (Score:3)
Have you looked into GCD [wikipedia.org]?
Re: (Score:2, Troll)
The language itself is definitely not worth the effort, better learn C (and maybe C++) and some decent scripting like Python or Ruby. Java is a collection of not really working compromises. With Oracle messing things up, the only real argument for Java, namely wide adoption is beginning to fade as well.
So, no, don't waste your time.
Re: (Score:2)
Re: (Score:2, Insightful)
There's lots to criticise Oracle for... but Canonical's complaints are laughable (as is much of their work TBH... not to mention their moronic loud-mouthed userbase).
OpenJDK is now the *official* version of Java. It's now a legitimate part of stuff like Fedora - a full, open, legal distribution of Java. Oracle's move in this case was entirely right and constructive for all involved.
This has been discussed over and over again by various people involved - and yet we still here this bullshit.
Re: (Score:2)
http://www.zdnet.com/blog/service-oriented/java-tops-list-of-software-skills-in-demand- [zdnet.com]
employer-survey/8326 says Java tops list of software skills. Maybe not for long?
Re: (Score:3)
I have felt for years that Java is our generation's COBOL, and with Oracle in control I feel that only makes that comparison stronger.
Re:Oracle and Java (Score:4, Funny)
If Oracle had been in charge of COBOL, businesses would have used RPG.
Re: (Score:3)
Actually WORA works pretty damn well with Java.
Re: (Score:2)
As long as you don't touch the filesystem or try to do anything with graphics I've found this to be true as well.
Re: (Score:2)
As long as you properly access resources (i.e. classloaders and not doing stupid shit), it's fine.
Graphics is a huge topic but the built in graphics apis work everywhere (even if they suck like java2d and swing do).
Re: (Score:2)
90% of the time you're right, but there are a few bugs in the JVM with regard to Windows vs Linux filesystems that will bite you the first time you see them.
I've also run into issues with Windows-only memory leaks in the JAI libraries when using JPEG-compressed TIFFs.
You're right that it's generally fine.
Re: (Score:3)
90% of the time you're right, but there are a few bugs in the JVM with regard to Windows vs Linux filesystems that will bite you the first time you see them.
I've also run into issues with Windows-only memory leaks in the JAI libraries when using JPEG-compressed TIFFs.
You're right that it's generally fine.
Other than windows issues, which very well might be windows bugs, it really is WORA.
Re: (Score:3)
persistent system service? (Score:2)
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.
Re:Oracle and Java (Score:5, Insightful)
That is still better than write everywhere, curse (and debug) everywhere.
Re: (Score:3)
90%+ of cross-platform issues I have seen with Java involve people hard-coding "C:\".
Re:Oracle and Java (Score:5, Informative)
My main Java app is right now running distributed across at least 3 major *nix variants (and Windows should I want to again) and indeed CPU families (x86/x64, ARM and SPARC) with no extra dev or debugging pain, and contains components dating back to about Netscape 2.0 time running without problem. Say what you like but WORA works very well indeed for me with Java.
A .Net app that I have been working on in a team for well over a year runs very well across exactly one release of Windows and .Net and Direct X, just about. And debugging pain: don't get me started.
Rgds
Damon
Re:Oracle and Java (Score:4, Insightful)
Maybe, but that is a massively unfair comparison.
There is no way in hell that your Java app uses anything even as remotely complex as DirectX, because a) Java is "lowest common denominator" and hardware acceleration is very new and platform-specific, and b) then it would certainly no longer work across all of those platforms. You'd have had difficulty even using multi-threading across all of those platforms back in the Netscape 2.0 days, because the threading and memory models weren't all that consistent. I've spent a lot of time debugging supposedly WORA multi-threaded Java apps back around 2003 that behaved hugely differently across Windows, Linux, and Solaris.
Comparing a Windows app (game?) that uses hardware acceleration (!) to a business app that's basically just a bunch of "if-else" code and string processing is not exactly fair. Try writing the SAME app on both platforms and see how your portability compares.
In my experience, Microsoft has some of the best backwards compatibility of any vendor out there. Well written C++ and .NET apps on Windows will probably keep working until the heat death of the universe. Meanwhile, Java took a long time to catch on to the fact that the runtime and standard libraries aren't 100% backwards compatible, and that people may actually want to run multiple versions side-by-side. For comparison, every .NET app uses the appropriate runtime automatically.
Back in 2006 I wrote a fairly complex NET app with several interacting components starting with .NET version 2.0 that ran on 32-bit Windows XP/2003. The exact same app works on two processors platforms (x86 and x64), on at least five major editions of Windows, three editions of IIS, and has been upgraded trivially through .NET 3.0, 3.5, and now 4.0. On top of that, the back-end database started on SQL Server 2005 RTM, and went through every major service pack release all the way up to 2012 RC0 without a hitch, despite using .NET stored procedures in the database.
Mind you, Microsoft's .NET isn't perfect either. Their insistence on using external unmanaged code for everything they can does sometimes bite them in the ass. For example, running a business app developed originally on a x86 computer on an x64 machine will sometimes cause it to run as 64-bit, which normally would be fine, except that Windows has a different set of ODBC drivers for x64. The app will run, but it might not be able to connect to its data sources. Oops.
Re:Oracle and Java (Score:5, Informative)
"There is no way in hell that your Java app uses anything even as remotely complex as DirectX"
I've got Java OpenGL code with 3D sound and raw input access that works fine across Windows, Linux and Mac.
I chose to roll my own (JOGL, OpenAL, JInput) but LWJGL (http://lwjgl.org/) provides all of those features I mentioned as well.
"Comparing a Windows app (game?) that uses hardware acceleration (!) to a business app that's basically just a bunch of "if-else" code and string processing is not exactly fair. Try writing the SAME app on both platforms and see how your portability compares."
I have. It works perfectly.
Any more FUD you wanted to sling?
Re:Oracle and Java (Score:5, Interesting)
I don't think it was. And it is certainly unsuitable as a first programming language. It is not close enough to the machine for many tasks, yet not abstracted enough for many others. It also does not teach concept cleanly enough that there would be a large benefit for learning other languages later.
Sadly, academia does not seem to realize that and it is taught as first (and sometimes only) language in many places. Just had to tech C to a bunch of college students last semester because you cannot teach an OS course with Java.
Re: (Score:2)
That's both a blessing and a curse. Anywhere I go, I always have awesome job security!
Re: (Score:3)
Re: (Score:2)
Re: (Score:3)
Write once, curse (and debug) everywhere
Here, we have written a shit ton of java applications running on windows and mac os X. We always have coded to the spec, we had about 2 portability problems in about 10 years and they were both solved by raising a PMR with IBM who told SUN to fix it's jre as it does not behaved to the spec. The java platform is one platform with one of the most detailed set of specifications, but those spec are almost always unread by developers...
Re:Oracle and Java (Score:5, Insightful)
1. Most applications have base requirements for runtime (C libs, etc., for example)
2. HotSpot yields native code
3. Sure it does--better than any other generic language in its core, but it also provides JNI for anything else you feel you need outside of its core.
4. OSX WFM.
5. Red herring. See #2, also for truly intensive functions, use assembler.
Re: (Score:2)
What a bunch of whiny crap.
Re:Oracle and Java (Score:5, Informative)
99 times out of 100, when a user has problems running a Java app, it's because somebody specified an inappropriate version of Java in the manifest. There's an entire subtle range of possible values that have meanings like "The newest installed VM that's Java $N or newer", "The newest installed VM that's Java $N", "The newest installed VM that's at least Java $N.$V", and so on. The problems come about when some idiot doesn't know what he's doing, has an application that only NEEDS Java 4, then turns around and specifies in the manifest that it MUST run under Java 4, instead of "Java 4 or newer", so somebody who has Java 6, release 28 installed has to try and literally install a Java 4 VM to run it. It gets even worse with applets, because Sun's official docs totally borked the explanation of how CLSID values worked, and caused ENDLESS grief when some corporate apps decided to dictate specific releases of Java for no good reason.
The fact is, if you write a Java application and Jar it up in a way that says only that it must have a VM that's at least as old as some minimum version, the likelihood of users having real-world problems with it are pretty low. I have stuff I wrote 10+ years ago and compiled with a pre-alpha 1.4 JDK that still works today (which is a good thing, because the source code was lost when my old laptop died). I've seen corporate apps that anal-retentively specify that they must not be used with any JDK besides 2.6.0_19, then go a step beyond and die if you have a newer JDK even installed at all, because they're launched by webapps that use the CLSID that means "ignore the settings in the JPI control panel, always use the newest version installed", then turn around and use Javascript to test for JPI version & commit suicide if it's older than 2.6.0_19 (even if you have 2.6.0_19 installed, and bent over backwards to specify that precise JDK in the control panel). I've actually had to use Greasemonkey in some cases to dynamically fix the stupid CLSID embedded in the Object definition on the fly so it wouldn't ignore my JPI control panel settings. But don't get me started on that... grrrrrrr...
Of course, we've all had our "ohcrap" moments. I remember spending a week working on what was supposed to be a cross-platform videochat application written in Java (so it could run under Windows, Mac, and Linux) using JMF. It worked nicely under Windows. Then I went to test it under Linux, and discovered that JMF was basically broken to the point of uselessness under everything besides Windows due to codec licensing & implementation issues. That was when I learned the hard way that anytime you're explicitly writing something that HAS to work on a platform besides Windows, make sure it doesn't have "issues" with other platforms before investing lots of time in it... especially if it depends upon any extension or framework that's not a native part of bog-standard Java that gets installed by default. Especially anything based upon a JSR. I've lost count of the number of JSR-related extensions that were nothing but stubs & almost inevitably had Macintosh problems.
IMHO, Sun fucked up, and fucked up badly, when they handed over control of Macintosh Java to Apple. Jonathan Schwarz basically handed Steve Jobs the rope, and was too oblivious to notice Steve busily tying it into a noose. Java's main reason for existing as a platform for desktop applications is WORA, and allowing Apple to screw up Macintosh Java as badly as they did hurt that main purpose really badly.
Re:Oracle and Java (Score:5, Interesting)
IMHO, Sun fucked up, and fucked up badly, when they handed over control of Macintosh Java to Apple. Jonathan Schwarz basically handed Steve Jobs the rope, and was too oblivious to notice Steve busily tying it into a noose. Java's main reason for existing as a platform for desktop applications is WORA, and allowing Apple to screw up Macintosh Java as badly as they did hurt that main purpose really badly.
To be fair, at the time Apple execs were crowing that Mac OS was going to be the premier platform for Java development in the world. They were hinting pretty strongly that they were going to tie Java into every possible aspect of the OS to wring every possible ounce of performance and system integration out of it, so it only made sense that Apple engineers, who had insider knowledge of the Mac OS platform, should be in charge. I suppose we have nobody to blame but Sun, but nobody could have known Apple would drop the ball so badly. (And BTW, it was Scott McNealy who let Apple be responsible for Mac Java, not Schwartz.)
Re: (Score:3)
His point was that Apple basically dropped support for it and now OS X users aren't saddled with shitty Java applications. There are ZERO good desktop Java applications.
Maybe, but nobody twisted Apple's arm to support Java to begin with. Apple was all over it. They wanted Mac OS X to be the "premier platform for Java development." When I say they "dropped the ball," I mean it literally -- wayyyyyy before Apple dropped support for Java, it totally failed to live up to its promises to develop Java for the Mac OS X platform. Far from being the premier Java platform, it couldn't keep up with the status quo of Java on Linux, let alone on Windows or Solaris. Apple bungled the en
Decompile (Score:2)
Re: (Score:2)
Re: (Score:3)
That is about the most stupid thing they could have done. Eiffel, Python, Ruby all modern alternatives well suited for teaching and learning concepts. Java is not.
Re: (Score:2)
Actually, JRockit * is * being killed off.
Nonsense, Oracle still distributes it as part of Oracle Fusion [oracle.com].
Re: (Score:2)
F-Secure (Score:2, Insightful)
Great, a language is a security hindrance. Isn't that like saying executable files themselves are security hindrances?
Re: (Score:3)
I think the basis is that with Java the code is technically in the executable's data memory and thus lacks certain OS/CPU-level protections...
Re: (Score:2)
In a perfect world, users wouldn't be able to do anything, because everything would be 100% secure!
I don't see these as real issues (Score:5, Interesting)
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.
Java, Ubuntu, and students (Score:3)
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.
Re: (Score:3)
already spend enough time dealing with my kid's school's insane focus on Microsoft technologies
Yeah, stupid, insance, irrational school. The idiocy, using products that are niche and unpopular and barely used by anyone...
Oh wait...
Re:Java, Ubuntu, and students (Score:5, Insightful)
I don't want to be an ass, and I agree in principle that school sites should be at least as platform independent as possible; but honestly how many possible OS configurations should a school test against? If you work on Windows you probably have 90% of parents covered. If you work on Windows and Mac you probably have 99.9% of parents covered. Is working on Ubuntu really worth that extra .1% of parents who could honestly just put Windows in a VM? I understand the desire to use what you want to use, and not let stuff like this dictate how you run your computer, but is it really worth a whole lot of tax payer money to make sure that the school website works for such a small user base? If so at what point do they stop? Do they have to test against every Linux distro? The various BSDs? 32 and 64 bit version of all of this? Install the most minimal cost/complexity Windows VM you can get away with and show the kids how to boot it to do their work.
The right tool for the job (Score:2)
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.
Re: (Score:2)
I don't get this. Don't you guys have OpenJDK (in the form of IcedTea) over there? You know, the open-source replacement for the Oracle JDK endorsed by Oracle?
No, Ubuntu has the actual OpenJDK [ubuntu.com] in its repositories, no IcedTea required.
damned if you do... (Score:5, Interesting)
Re: (Score:3, Interesting)
You assume they are mutually exclusive.
Re: (Score:3)
I think the issue is that under Sun, Java didn't suck, where Oracle seems to have made it suck in order to make money from it. People here are (generally) in favour of companies making money by delivering good products. The issues come up when they try to squeeze too much money out and by doing so degrade their products quality.
Re:Don't understand (Score:5, Informative)
Re: (Score:2)
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 forci
Re:Don't understand (Score:4, Informative)
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.
Re: (Score:2)
Re: (Score:2)
Java is primarily run on servers. Ubuntu (Canonical) makes great server OS(es).
I think Canonical is overreacting to the situation. They could easily distribute the "Sun JDK" the same way that they do Flash--where install downloads from the source site.
Alternately, if you are capable of putting one line of text in /etc/apt/sources, you're all set...
Re: (Score:2)
Re: (Score:2)
Re:C++ is cross-platform (Score:4, Insightful)
*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.
Re:fp (Score:5, Funny)
FIRST POST
Obviously you aren't running Java, otherwise you wouldn't have been able to post so fast.
Re: (Score:3)
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 fo
Re: (Score:2)
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 [springsource.com] is one such OSGi app server.
However, if your production app