Post a Comment
Newer versions *do* auto-update, just like Firefox or any other decent modern software.
But I imagine it's a big issue for the corporate world, who are more likely to be running ancient Java versions for support reasons. I know I just found an issue with the ancient 1.4 version one of our clients are running - it's fixed in newer versions, but they don't want to pay to get things certified.
Only a few that I have seen, but not enough to bother with installing it. Flash is still a necessary evil, so I run it with flashblock on. Fortunately though, I've been able to get by without Java.
Wasn't one of the whole points of Java (besides the 'run everywhere thing, that doesn't really work so much) is that it was supposed to be more secure running in a VM?
Edited 2011-01-21 01:57 UTC
It is more secure in a VM, but the problem here is that the VM itself (or at least older versions) is insecure.
As far as updating, one of the reasons that there are so many old, insecure JVMs out in the wild is the pure ridiculous number of corporate apps that somehow flat out refuse to run on anything but the version they were created with, which often end up being 1.5.
Sounds like IE6 all over again
lol That's the thing about corporate apps... somebody writes it, leaves the company (or was a contract programmer), and those left behind don't have a farking clue how it works.
Wonder how many hundreds of thousands of apps written in VB5/6 out there are still being used that were written in the mid-to-late 90's. Or anybody ever ran into one of those Excel macros from hell that was written about 15 years ago, and the entire company depends on?
The main problem is that most JVMs are implemented in C or C++. The languages responsible for bringing a dark era of buffer overruns and pointer mis-indirections to mankind, thus starting an era of insecure software, which we still fight to recover from.
One just needs to create a clever designed sequence of bytes as a .class file that exploits a security issue in a specific JVM version. Then you release the exploit in the wild and for sure a few thousand users will be hit.
As for the users not updating it. It is really a big issue, in most corporate environments there is a big burocracy that you need to go through to update any software, even patch level versions.
Most corporate environments I know, the automatic updates are disabled, and updates are triggered by IT when they approved a certain software version.
Not to mention that recently I saw an offer for a project using Java 1.4 with Tomcat 4!
Well, if you implemented the JVM in a "safer" language like Java, how the hell would it run ?
Besides, C(++) can be secure, when people know what they're doing with it (e.g. don't use scanf and char* apart for very low-level stuff where they can't do otherwise, think of the "delete" as soon as they've written a "new" somewhere, things like that)
Edited 2011-01-21 16:08 UTC
Actually it has already been done:
http://wikis.sun.com/display/MaxineVM/Home;jsessionid=383E286046FA9...
Still, there are lots of safe languages to choose from in the TIOBE top 50. I did not say that the JVM had to be coded in Java.
I hear this excuse a lot, the problem is that it does not work in the real world. Contrary to what you may think, I do know C and C++ pretty well, and I also do have the experience what means to have multi-site development across the globe in such languages in the corporate world.
The result is not always pretty, there are tons of developers that should have never been allowed to touch C or C++, but they were.
So a framework that is used to create 1000's of applications is being compared to a single application. Nice. Me like like logic lots!
It was also compared to Adobe Flash which is also a framework located on millions of computers - more computers and devices than I'd say Java is loaded onto and being used on a regular basis.
I see so many end users with Java installed but they never use anything that requires it! My neighbours were looking at it wondering what the heck it was and whether they needed it. How many end users out there want to get rid of it but scared that they might break something - I'd say many.
If there is one thing I remove as soon as I get a PC it is the preloaded crap - Java being top of that list.
Edited 2011-01-21 08:49 UTC
Well, the Java distribution on the Windows platform is a mess indeed. It's bulky and has a malfunctioning update mechanism. Oracle could learn some things from Adobe about how they provide the Flash plugin.
But besides this, I really like the Java platform. And for a lot of uses Java is still a necessary. Our clients make use of an applet (embedded in a webapp) to login and sign data using a smartcard. This applet works on Linux/OSX/Windows as long as the native drivers are available. I could not think of a better way to make our webapp communicate with a smartcard on the clients machine on all major platforms.
If you pulled you head out of your ass for just a second I was referring to Java being installed on end users computers that they use at home - I'd say a good portion of that statistic can be blamed on Sun paying OEM's to load Java onto desktops by default.



