Sun Lowers Barriers to Open-Source Java 144
Shyane writes "Sun Microsystems is making it easier for open-source programmers to ensure their Java versions meet the company's compatibility requirements, but the deal extends only to those involved in Sun's own open-source Java project. The program grants access to its Java Technology Compatibility Kit to anyone with an open-source Java project that is based substantially on Sun's open-source Java software and governed by the GPL. Programmers need access to the test kit to prove that a project is in compliance with the Java specification. Projects that pass Sun's compatibility kit tests also can use the official Java logos for free."
Riots break out across the world... (Score:5, Funny)
Cheers!
Re:Riots break out across the world... (Score:5, Funny)
Openness! (Score:3, Informative)
Seriously, I was pissed when I found out just how bad Java support is for Linux PPC. I couldn't get an iMac to go to Yahoo! games for my grandma.
Now all we need is cross-platform Flash.
Re: (Score:2)
Re: (Score:2)
Re:Openness! (Score:4, Insightful)
Yes you have to have a JVM but that is sort of a given.
Re: (Score:2)
Tell you what write me an IDE suing ANSI C or ISO C++ that is portable. Do it without using any libraries that are not part of the standard... Then you can get back to me.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Eventually.
Re: (Score:2)
Re: (Score:2)
While configure is hairy and ugly, building a JDK from source does not need to be complicated. If it is, something else is broken.
Re: (Score:1, Interesting)
I hope that this may help you.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2, Interesting)
Re:Openness! (Score:5, Funny)
You gave your own grandma an iMac and then put Linux on it?
Why do you hate your grandma?
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Actually, I bought an old G3 for the kids and through 10.4 and an extra 512MB of memory on it. It runs like a champ. If Grandma wants to run Doom 3, maybe not so much, but web and email and everything else she'd be likely to do with Linux on the same hardware should be fine.
Re: (Score:1)
(btw, you probably meant threw [m-w.com] (past tense of throw), not through [m-w.com] )
Re: (Score:2)
Yes, it runs on a G3.
And yes, I saw that the second I clicked "submit".
Re:Openness! (Score:4, Informative)
Re: (Score:1)
Re: (Score:2)
sudo apt-get install ibm-j2re1.5
It runs Eclipse and JAP very well.
Re: (Score:1, Troll)
People seem to think it's some kind of evil plot when a software vendor doesn't support their favorite platform. The fact is, every platform you support adds a lot to your development and QA costs. If there's no business case (and there certainly isn't for any PPC platform), why should they spend the money.
And don't
Re: (Score:2)
Why the vile comment? It makes you look like an idiot, especially when you're obviously wrong. Let me list the ways:
1. While PPC may be in your opinion obsolete on the desktop, it is still one of the platforms of choice for embedded applications. BTW, plenty of business cases for PPC too. I personally like the ppc405gpr for low power applications, and look forward to the ppc405ez when it becomes available. Tivo likes the PPC too, but I know Tivo is not exactly popular with the GPL guys.
2. We don't have to
Re: (Score:2)
Re: (Score:2)
LOL
Maybe abrasive is a more appropriate term...
Re: (Score:2)
As long as we're discussion personalities, go look up the word "patronizing".
Anyway, now that we've thoroughly abused each other, let's look at your arguments:
Fine, I should have qu
Re: (Score:2)
Well, in hopes of keeping this comment from making the thread any more personal...
But first:
I never called you an idiot. If you re-read my first post you'll see that comments, like the one you made, make you look like an idiot. Sure I was patronizing you, but face it nothing is more counter productive than a post saying "what do you expect?". Obviously he could expect an open source JVM, since nobody rushing to throw away their PPC Macs after they upgraded
Re: (Score:2)
Nor did I say you did. But you used the word, and that's just as rude. Good manners is not something you can claim on a technicality.
Yeah, yeah, I know all about embedded Java. I used to work for the Java part of Sun. (I even have some Java software on my cell, though I haven
Re: (Score:1)
The IBM PPC Java implementation is actually pretty fast, but when I used it a year ago, only Konqueror and an ancient ancient version of Mozilla supported it, and many websites (like yahoo games) won't run in Konqueror, even if you change the browser ID. And its not made for it, but rather Websphere (gag) and the like. You ar
Re: (Score:1)
Java on Solaris (Score:2)
I found Java on Solaris to be rather buggy.
Re: (Score:1)
No kidding. I've been hanging on to an older version of JOnAS just because I can't find a modern Java to run the newer ones with. I'm not sure I'm thrilled with some of the additions in Java 5, but the JVM continues to be refined and optimized, regardless of the language evolution.
Re: (Score:2)
I've tried to play some of those games against her using my linux laptop and it was hopeless. Instead we play Tetris attack using a snes over the network.
Re: (Score:2)
It's excellent, and honestly doesn't feel any different than the X86 version apart from the profound absence of binary-only software such as Flash, Google Earth, and even a barely usable JVM.
It's delightfully ironic that the rest of the operating system (written in languages like C and C++) works perfectly fine, whereas Java is completely non-functional.
Can we please stop treating Java as if it's a serious language? It's a complete and total failure on so m
Re: (Score:2)
You can use C++ with gtkmm which improves matters a lot, but then you get the problems of C++. Anyone who seriously thinks C++ isn't a bad language design doesn't know what they're talking about. There are so many trivial ways that everything can go horribly wrong, almost all of which are c
Re: (Score:2)
Re: (Score:2)
For another, I'd rather have to run a qemu for x86 JVM than code C + GTK for any usefully large application. I would be a lot happier using, say, PyGTK. But that's not what I replied to, which was a moronic suggestion that applications shoul
Re: (Score:2)
Re: (Score:2)
GCJ does not require source though, but it does require Classpath to contain the right parts. Swing is pretty poorly supported, but SWT is its own code so that works just fine. Azureus is based on SWT, so maybe it has a chance. Has anyone tried GCJ on Linux/PPC? It's already done for x86 and amd64, as my Ubuntu package lists suggest.
$ aptitude search azureus
p azureu
Re: (Score:2)
The installation isn't Grandma level, but once it is up and running it is no different to Yahoo games on Windows.
don't need this (Score:1)
Re: (Score:3, Interesting)
Re: (Score:3, Informative)
Re: (Score:2, Insightful)
This Sun tool seems to validate your implementation against some standard.
By validating your code against some reference standar
Re: (Score:2)
Re: (Score:2)
So what about gcj? (Score:1)
Re:So what about gcj? (Score:5, Informative)
Other GNU Classpath developers working for Red Hat were very quick to produce a version of OpenJDK using pieces of Classpath to fill the wholes of "encumbered" components that havent been open sourced (like the font, graphics and sound engines that were licensed by Sun by 3rd parties). This is called IceTea. Though its more of a quick 'n dirty temporary project to have a completely GPL JDK right now until the holes can be plugged properly. For example, Sun released a more sophistated FreeType based font engine this week, and the rest of the holes will eventually be filled. But for now, IceTea is a great playground for experimentation. And as far as I can tell, Red Hat wants to contribute anything useful back in OpenJDK.
You might that the GNU Classpath guys would be dissapointed, feeling that their hard work is obsolete, but no, they're happy because they know they were a big part of the reason why OpenJDK exists, and they're looking forward to contributing.
Re: (Score:2)
since it took me a while to find this (it didn't help that you got the name wrong) i'll post a link here, hopefully the site can handle
http://article.gmane.org/gmane.comp.java.openjdk.d istro-packagin [gmane.org]
Re: (Score:2)
Re: (Score:2)
If you meant GCJ (GNU Compiler for Java), doesn't really mean too much. GCJ compiles Java into native code, which is entirely different from Classpath, Harmony, and SunJava
Re: (Score:2)
Classpath is not a JVM, it is an implementation of the standard JDK library.
Re: (Score:2)
My suspicion is the java clones will slowly die off as linux distros, even the license paranoid ones start shipping sun based java
but that cannot happen until sun java is completely free which it isn't yet (though someone mentioned a project to hack up a working java based on the free stuff sun has released in another reply to you).
About GCJ (and not classpath) (Score:2)
Finaly a good native compiler. (Score:2)
Re: (Score:1)
Re: (Score:2)
Re: (Score:1)
Re: (Score:1)
Re: (Score:1, Funny)
Re: (Score:3, Interesting)
But I'm glad this happened. It caused Microsoft to go off and create rival platform (.NET) and a rival language (C#). M
Re: (Score:2)
Re: (Score:2)
JIT can't mmap binaries for shared mem (Score:2)
Native (.so) libraries are loaded using mmap. The means that even though every program links to libc, there's only one copy of it in memory. It also means that a new process that gets to run doesn't have to reload libc from disk.
Since java has to decompress/JIT it's libraries each time a program runs, each process will have its own copy of all the libraries. Making better use of the shared memory facilities provided by the OS is one possible benefit of compiling java to native code.
Re: (Score:2)
Less Memory, Faster Start
On other platforms, each Java application consumes some system memory, so you might end up using more memory than you need to when running multiple Java applications. Other languages, such as C or C++, solve this problem usin
Apple may be your god, but it's not mine (Score:2)
Based on this non marketroid page [apple.com], it seems that apple's jvm compiles the java standard library at install time. Then it can just mmap the library at execution. It also seems to mark all memory in this file as uncollectable. It would be nice to do this for other java libraries as well, but then you may start to wonder why, exactly, you were using JIT in the first place.
Just starting out with Java (Score:4, Interesting)
I came into this business from a bit of a back door (although I suspect it to be a common back door these days). I started with spaghetti code PHP, moved to OOP php with php4, then php5. I am now quite frustrated by the partial OOP implementation of php5, as I develop more complex applications. I become even more frustrated with PHP the more I learn about java. The type safety at compile time makes it far easier to develop bug-free code. Method overloading is problematic in php, I usually end up implementing a single function with all sorts of optional arguments, and checks to determine whether a particular parameter is an array.
Additionally, Java gives me code re-use at it's ultimate. For instance, I write a single been that updates our LDAP; I then use that bean in a JSF web application, in a batch program running on an an IBM iSeries, in a command line application on Linux, and most recently in a Swing application. Having written the bean once when developing the first application, I never had to write a single LDAP query when developing my latter applications. Any bugs I find in the bean from one of the apps means the bug gets fixed for all the other apps.
Not to mention that I do my development on my Mac, and deploy software across our organization to Windows and Linux desktops.
Write once run anywhere for sure - I'm sold!
Re: (Score:2)
Re: (Score:2)
Keep looking for more: Ruby is ahead (Score:2)
I started with PHP too a long time ago. I've tried Perl, Python and Java. I'm a (very satisfied) Ruby programmer right now since it has a good ba
Re: (Score:1)
Of course don't let the fact that you can re-use code in pretty much any programming language spoil your glow of Java-loving pride...
Right, so I can take something written in PHP and make a gui application out of it?
You'll probably come back and say you meant a real programming language. How many web sites are made using C/C++ these days? How many gui programs are made using Perl, or Ruby? How cross-platform is all that .Net stuff?
What other languages other than Java and Python allow for code re-use in such varied environments? No sarcasm intended with this question - please, by all means, educate me!
Sun can still do better ... and easily (Score:2)
Sun can still do better ... and easily.
[...]
Translation (Score:2)
Missed the boat (Score:2)
Java could have been everything on Linux. Total domination, but licensing being the issue, lots of Java-friendly projects found happy homes among the ranks of Python, Mono, Ruby, Perl, what-have-you. Java is here to stay, but it's not an essential part of GNU, Windows, Mac OS, or anything like that. That means it may not actually live forever. It might get crowded out by better tools. Maybe.
Re: (Score:3, Insightful)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I suggested going to a job advert site and doing a little research. If you do that you will find there is no "used to be" about the availability of VB jobs. Try making informed comments.
You failed programming, didn't you? (Score:4, Insightful)
Re: (Score:2)
Re: (Score:2)
Hint: It's the programmer.
Re: (Score:1)
Re:Java Programmers == Typists (Score:5, Insightful)
Failure #1: Java's compiler is written in Java. The first use of the early Oak/Java VM was to get the compiler self-compiling.
Failure #2: Java *can* bootstrap itself just fine, thank you very much.
http://www.jnode.org/ [jnode.org]
http://jikesrvm.org/ [jikesrvm.org]
"A distinguishing characteristic of Jikes RVM is that it is implemented in the Java(TM) programming language and is self-hosted i.e., its Java code runs on itself without requiring a second virtual machine."
Failure #3: You called Java an interpreted language. Java is a compiled language that runs on a virtual machine. Like most VM-based platforms, that provides two options. The first is to interpret the bytecodes directly. The second is to compile the bytecodes into native code at runtime using a Just In Time Compiler. The most common JIT compiler for Java is the HotSpot VM [wikipedia.org]. HotSpot is quite capable of keeping pace with and even exceeding the performance of native code.
http://www.idiom.com/~zilla/Computer/javaCbenchma
Failure #4: You see these things, yet you fail to take the time to understand them. You have failed as a geek. Turn in your member card immediately and leave in shame.
Re: (Score:1)
Re:Java Programmers == Typists (Score:4, Informative)
Simple. It's a stub. Typing "java -cp tools.jar com.sun.tools.javac.Main" all the time isn't very convenient, so Sun provides executables that load the JVM and execute the compiler. If you look in your JDK installation directory, you can find the tools.jar file in the "lib" subdirectory. You can try running it from that directory as above, or look inside the zip file for the mindblowing (eye roll) Java class files for the compiler.
Perfect example of someone who didn't read or take the time to understand. The Jalapeno VM and JNode OS are both written in pure Java. They used their own JIT compiler to compile themselves into native code. That native code is a Java program that runs on the native platform.
Python is not compiled. Perl is not compiled. Javascript is not compiled. These languages are read in, line by line, and executed. You fail it.
This is CS101 stuff we're talking about here. How badly can you fail it?
Re: (Score:3, Insightful)
How you think Linus wrote the first version Linux? By flipping switches on the front of his Honeywell? Of course not, fool! He used Minix as a host platform to compile the first versions. You always need a host platform to bootstrap the first copy before it can become self-hosting.
These wo
Re:Java Programmers == Typists (Score:4, Insightful)
From my understanding of the engine, SpiderMonkey works along similar lines, using a combination of byte codes and parser information to perform execution. This is a bit different approach from the Flash VM, which pre-compiles the source into a representation executable by its "Actions" VM.
I will agree with this. True interpreters are a rare find these days. Interpreting bytecodes is becoming a common method, and even JITs are showing up in a lot of interpreted languages. That being said, the one distinction is that interpreted languages rarely give up their interpreters. If you give them a dynamic piece of source code, they will execute it whether it does a strict interpretation of the source or a full compile to its internal VM.
In comparison, Java is a strictly compiled language designed for the Java VM platform. Furthermore, it is JITed at runtime and is no longer interpreted as most VMs designed for "interpreted languages" do.
Scripting is not the same thing as interpreted. JSPs are compiled before execution. The file is turned inside out by the parser (all that HTML becomes output.write("") statements) then compiled by JavaC, loaded by the ClassLoader, and finally executed by the HotSpot VM. It's an involved process, but it's much faster than the traditional interpreted approach of PHP and pre-.NET ASP.
Re: (Score:2)
Parent explained it to you in so many ways. Confusing an interpreter with compiled code is embarrasing to watch.
I hope you are not in a position of authority where decisions are made and people would have to pay for your mistakes.
Re: (Score:1)
Re: (Score:2)
Re: (Score:2, Informative)
a) it loads and validates a fuck load of classes at startup (although the preverified core classes can be cached)
b) it starts running in interpreted mode.
matfud
Re: (Score:2)
I stand corrected -- my confusion came from looking at a possible set of configuration defaults for the server VM where it can effectively compile everything ahead of time by dialing down all the profile thresholds way down. These probably aren't particularly sane defaults either. It looks like the main difference is that the server VM performs more aggressive optimizations.
St
Re: (Score:1)
Re: (Score:1)
Wow, you must have seen some low quality programmers, then.
No managing algorithms? Huh? In what way do you not have to manage algorithms?
Better not tell the MoD (Ministry of Defence, UK Governme
Re: (Score:2)
You mean what C and C++ were like 15 years ago?
Perhaps you ne
Re: (Score:2)