Java To Be Opened For Christmas?
MBCook writes "At the Oracle OpenWorld conference, Sun's CEO Jonathan Schwartz announced on Wednesday morning that Java would be opened within 30-60 days, which would would mean about Christmas Day at the latest. Sun first announced they would do this back in May at JavaOne but didn't give a date. We've seen rumblings before on this topic. Schwartz also commented on the companies Sun Fire servers, Sun's relationship with Oracle, and general trends."
Now maybe we can have a Java plug-in for 64-bit browsers.
Under what license?
If you mod this up, your slashdot background will turn into a beautiful sunset!
1999 called, it wanted its lame comment back.
Open source VMs already exist, what we need is for sun to open source the java libraries.
FTA it looks like it really is, finally about to be reality (:)), Java under an OSI approved license. Not only that but within 60 days and all because of pressure from the community - I wonder where else that might work (drivers? - nah need a bigger market share...).
It looks like Sun Microsystems are starting to see the benefits of Open Source technology, first Open Office (Under the GPL no less) then Solaris and now Java, - I can only hope it catches on throughout the industry.
Just a couple of points - I know that Java isn't being released under the GPL, and that there are still some interesting debates going on about the CCDL and interoperability with the GPL (I wont even pretend to know the precise issues), but it is definitely a good thing. Since Sun Microsystems is primarily seen as a hardware company, and presumably isn't too worried about the revenue's it is losing from the software sales it could have had (I know this doesn't apply to Java but it could have to Open Office and did to Solaris) it does mean that nothing that they are doing can be readily applied to a Software company. So anybody suggesting that Microsoft et al should start Open Sourcing their code because it works for Sun Microsystems is probably a little off the mark.
Well anyway - Be a good day when it *actually* happens and his is very good news. I wonder if I should look at using Java...
PS: By the way (and slightly random) my spell checker in OO.org attempts to correct CCDL as CUDDLY and GNU-GPL as SNUGGLE, how sweet.
The dichotomy that exists between Microsoft Java (which is pretty bad) and Sun Java is, if not jarring, quite irritating. Thankfully, Sun Java is the norm. But if Sun Java is released under the GPL, I expect to see several more versions of Java, most of them incompatible with each other, coming out soon. Iceweasel, anyone?
Something I have been wondering.... GCC now accepts Java source and emits either native binaries or Java bytecode. Can it take C/C++/etc and emit bytecode? If it is treating bytecode as just another target what if a C# frontend were written? Could gcc take C# on input and emit Java bytecode on the other end? And if a mono backend were added could it compile Java source to it? And if this all came to pass would it be a sure sign the end of times were at hand?
Just on a wild guess, since C/C++ doesn't target a VM it'd be like saying "we can get assembler code from C, why can't we get C from assembler code?" Going from byte code is easy (well, not really but...) since eventually the byte code has to run on actual hardware, but I don't think there's any good reverse mapping. In the end, I think you'd end up building a x86 VM inside the Java VM, which would have some terrible overhead.
Live today, because you never know what tomorrow brings
Still wondering if this means they'll be opening up specs on how the ARM Java acceleration works ... it would be nice to have some of those free JVMs able to use that to speed up their
bytecode interpretation.
For those of you who don't know about this, most modern ARM CPUs -- like the ARM-926ejs as found in the Nokia 770 and many cell phones -- include three processor modes: (1) pure 32bit ARM instructions, (2) a 16-bit compressed version of ARM instructions called "Thumb", widely used in microcontrollers, (3) an 8-bit Java bytecode interpreter. The first two have public documentation. But ARM won't give docs to the last out, because Sun won't let them do that; you need a separate licence from Sun to get those documents. So it's fully within Sun's power to open up some widely available Linux-savvy hardware to run Java a lot better ...
There's another CPU that's in the same kind of boat, the new AVR32 from Atmel. You may have noticed that Linux 2.6.19-rc includes initial support for that architecture. AVR32 CPUs have analogues of (1) and (3) above ... but again, Atmel won't give docs to
the Java acceleration out, because Sun won't let them do that.
(And for background info: yes AVR32 is very new, likely its audience today is almost
all developers, only one model of chip available so far.)
So how about it, Sun ... are you really going to open Java up??
We need slower slugs.
The time difference depends on whether or not the garbage collector runs during that time.
Badass Resumes
Using Azureus as an example of memory problems in Java is like using Firefox as an example of memory problems in C++
If the same intermediate language is generated from the Java frontend and the C frontend, and the Java bytecode backend handles that full language, it would be possible to compile C to Java bytecode.
my understanding was it was more like
java-->java bytecode-->GCC internal-->native code
the trouble with java bytecode is that if you wan't it to run on suns vm and certainly if you wan't it to run in any kind of restricted environment it has to pass the bytecode verifier. Short of essentially having an emulated main ram with a C heap inside it (possible but almost certainly not good for performance) passing the bytecode verifier with something compiled from C would be pretty damn hard.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
Have you seen Anna Nicole Smith recently? She already looks like herself on crystal meth.
It goes from God, to Jerry, to me.
Acording to http://www.opensource.org/licenses/ the SUN CDDL (which is what they used for OpenSolaris) is an open source license. It is not a Free Software licence and is incompatible with the GNU GPL but it is still an open source license.
I can't believe how many IBM trolls are in this thread (and Slashdot as a whole) decrying Sun's lack of a track record in open sourcing their stuff.
Have they ever heard of NFS? OpenOffice? OpenSolaris?
Is there something wrong with the CDDL that's not wrong with the Mozilla license? From what I understand, the CDDL is similar to the Mozilla license but simpler. I invite every single one of those armchair critics to stop using Firefox if they're so adamant.
Unlike IBM (with the exception of Eclipse), Sun actually *open sources* stuff. I invite those IBM trolls to push their corporate master to open source WebSphere, DB2, Rational Rose, or Lotus Notes.
This space left intentionally blank.
Actually, the CDDL is a Free Software license, albeit a GPL-incompatible one, according to the FSF. See http://www.fsf.org/licensing/licenses/index_html.
5 minutes? What the hell are you running? Have you used a Java program since 1998?
I'll do a test right now, with Java 1.6b2 and Eclipse 3.2 with an Athlon 64: 12 seconds to the workbench.
Yep, that's a long time. Keep in mind Eclipse is a heavy app and I do have many extensions installed. Other Java apps I use regularly, such as pdftk (command line) come up instantly and work very fast.
Properly written Java apps are not slow, though if they use Swing they look hideous.
"It ain't a war against drugs.it's a war against personal freedom" --Bill Hicks
Than an open jar of java beans.
Thank you, thank you, I'll be here all night!
If you can't say something nice, make sure you have something heavy to throw.
Only if you redfine 'leak' to be something other than data which is no longer reachable.
A precise collector will always correctly identify the liveness of data, because it knows what is a pointer into the GCed heap. (That is the definition of a precise collector).
A conservative collector is used when an object may or may not be a pointer into the GC heap (e.g., it may be a pointer into memory that is not to be managed by the collector, sometimes it may be another type of object entirely). Conservative collectors must err on the side of retaining possibly (but not provably) unreachable objects, and so can leak. However, for a number of years now, modern approaches such as barriers and generational scavenging asymptotically eliminate such retained dead objects from the managed heap, unless they are deliberately created. Such deliberation usually requires some effort, can be prevented by the compiler, is readily detected at runtime, and is easy to debug.
Bad programming practices can result in the growth of lots of live data. Typically this involves using global variables. Sometimes this is accidental, such as when the top-level retains a history of results returned to it for debugging purposes or other convenience. However, these are not leaks per se -- the data is live in that it is reachable. Making the data in question unreachable (reset the global variable or previous-results list) will allow either type of collector to reclaim the space.
In general it is much more common that memory is consumed by abandoned data that was created in heaps not managed by the collector, and these heaps are almost always used by code written in another non-GCed language. This includes the runtime, libraries, and foreign functions. Usually this is fixed via careful wrapping of the non-GC-language code with finalizers (exceptions, dynamic winding/unwinding, and other techniques), and in most GCed languages which expect to interact with things like the POSIX API this is usually done through libraries written in the GCed language.
Finally, some GC implementations, particularly conservative ones, are simply buggy or are not using modern techniques. In this case it's the implementation's collector leaking, not the language.