Sun Lowers Barriers to Open-Source Java
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."
as programmers discover that the test suite only runs on Windows.
Cheers!
Atheist: Buddhist in a Prius
Finally, "open, cross-platform" Java is beginning to become open. Now I just hope it becomes more cross platform, rather than "Windows, Mac, x86 Linux and whatever-you-spend-a-million-hours-developing-an-i mplementation-for."
:(
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.
software only needs to have its own built in unit tests to verify that it works, Sun can butt out.
I've said it once, I'll say it again. Java is a nice toy programming language, for those people who can't afford a 'real' compiler, Like Borland, or Even Microsoft. Hell, even GCC does a better job than most java interpreters.
It's a nice learning language, shielding the user from most of the complexity of a real programming language, and that's exactly what makes it so dangerous and stupid.
This only serves to prove the theory. Only useful in bullshit GPL licensed projects. Let me know when the dream of 'write once run anywhere actually happens.
But then again, Java always was slow.
(ya ya, except when it's called an assembly language math function in its library)
What is happening to the FSF's java project now?
Regards, Martin IT: http://methodsupport.com Personal: http://thereisnoend.org
I so want a native Java compiler. I like Java but the loading of the runtime is a bit of a pain. The option of compiling a native version would be very nice.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
Java programms are nothing more than typists who can understand how to string together bits of code from the latest
'Type and Learn' Java Book.
To Me, a Programming Language is 'Real' When it can fully bootstrap itself. That is, Compile it's own Compiler. Java of Course, being an interpreted language, fails that test miserably. I've once seen a student project, a java interpreter, written in Java. I've seen frozen molasses move at a faster pace.
Java is nice if you don't want to worry about complexity, or managing algorithms, etc. I think of it like VB, nice for building proof of concepts, fast 'throw-away' prototypes.
"Always forgive your enemies; nothing annoys them so much." - Oscar Wilde
I am a fledgling java developer, and so far I'm loving it! Every time I hear about the advances Sun is making towards GPLing java, the more I feel justified in taking the time to learn java.
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!
Forget Linux, Java works much better on Windows than on Solaris.
I found Java on Solaris to be rather buggy.
Sun can still do better ... and easily.
[...]
I'm not expecting Sun to necessarily release its own implementations in source code. However, any test kits for compatibility need to at least be made available to any and all open source developers. For Java compilers, clearly that much of it must have source code available. For run time engines, the test kit can be class files (compiled on Sun's official Java compiler, perhaps). Sun could perform the official certifications test runs themselves to validate the tests pass with official unmodified tests, or grant that to an outside entity with whom they have an agreement to do such tests.
now we need to go OSS in diesel cars
"Suck it, IBM"
It's only a language!!!
... but
But there is a difference:
1) Java is VERY DANGEROUS!!! Sun can charge you!!!
2) C++ is not dangerous!!!
You know ANSI C, ISO C, ISO C++,
and ISO Java? Such thing doesn't exist!!!
To invent ISO Caffeine? ISO Heroine? ISO Cocaine?
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.
Based on this non marketroid page, 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.
New and innovative? Hardly. Shared libraries were implemented by Multics in the 1960's. Apple's just doing what everybody else (except, I guess, some folks at Sun) realized was a good idea years ago. As for making some objects uncollectable, Lisp was doing that and many other very cool things, long before java.
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.
They switched to the eclipse front end. Still use GCC back-end for native code compilation.
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 balance of nice features taken from other languages, in my humble opinion. Learning Ruby has motivated me to know more about programming languages and now I'm looking to try SmallTalk, LISP and Haskell.
If you like Java's object orientation, you'll love Ruby's real object orientation. OOP as it was intended[1]. It's like Java done right, and without the verbosity.
The reality is not that categorical. Static versus dynamic typing benefits is debatable[2]. Incidentally, Java seems not to be type-safe [3]
You realize that code reusability and portability is not Java's exclusive, right?
Yes, you do, of course.
Don't stop at Java. Keep trying other languages. You'll be surprised.
My humble suggestion: Ruby.
[1] Dan Ingalls: Object-Oriented Programming - Google Video
[2] Static and dynamic type checking in practice
[3] Java is not type-safe
The best way to predict the future is to invent it
When Java's open-sourced, anybody and their mother can create a JVM for their particular purpose. If businesses don't like one part of Java, they'll be able to rewrite it, which leads to tons of incompatible forks and difficulty with maintenance. If somebody creates a Java applet that requires the Apache version of Java, then I have to download and install the Apache version of the JVM in my browser. Great, now I have two different versions of Java, when before I had one. Normal people aren't going to want multiple versions clogging their systems. They're already annoyed with the updating that goes on with the current version. People are probably going to think that the Apache version or a different version is a spyware app and not install it anyway. We'll get many different versions of Java, all slightly different and not one standard will emerge. It'll probably me more of a headache then it's worth.