Slashdot Mirror


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."

4 of 144 comments (clear)

  1. Re:Openness! by LWATCDR · · Score: 3, Insightful

    Yes it really has. I have run the same Java application on Windows, Linux, and Mac OS/X. If there is a good JVM you have a very good shot at your java application working.
    Yes you have to have a JVM but that is sort of a given.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  2. You failed programming, didn't you? by Dancindan84 · · Score: 4, Insightful

    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. That's just golden.
    --
    "Always forgive your enemies; nothing annoys them so much." - Oscar Wilde
  3. Re:Java Programmers == Typists by AKAImBatman · · Score: 4, Insightful
    You fail it.

    That is, Compile it's own Compiler.

    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.

    To Me, a Programming Language is 'Real' When it can fully bootstrap itself.

    Failure #2: Java *can* bootstrap itself just fine, thank you very much.

    http://www.jnode.org/
    http://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."

    being an interpreted language, fails that test miserably.

    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. HotSpot is quite capable of keeping pace with and even exceeding the performance of native code.

    http://www.idiom.com/~zilla/Computer/javaCbenchmar k.html

    I've once seen a student project, a java interpreter, written in Java.

    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.
  4. Re:Java Programmers == Typists by AKAImBatman · · Score: 3, Insightful
    You mean like what Perl uses? :-/

    Perl has always had a compiler: your source is compiled into an internal form (a parse tree) which is then optimized before being run.

    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.

    The difference between interpreted languages and compiled languages these days is largely academic.

    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.

    Hell, even Java has JSPs, which use Java like a scripting language.

    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.