Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Java Software IT Technology

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."
This discussion has been archived. No new comments can be posted.

Sun Lowers Barriers to Open-Source Java

Comments Filter:
  • by vigmeister ( 1112659 ) on Friday August 10, 2007 @11:19AM (#20183247)
    as programmers discover that the test suite only runs on Windows.

    Cheers!
  • Openness! (Score:3, Informative)

    by kevmatic ( 1133523 ) on Friday August 10, 2007 @11:30AM (#20183375)
    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.
    • If it's on more than one platform, it's cross-platform. That doesn't mean that it will automatically support every processor/OS combo ever made.. do you mean now all the Linux PPC users is Linux PPC flash? Not trying to troll, just pointing out that if you want stuff available on your own platform, sometimes you're going to have to do it yourself - can't just rely on everyone else to do stuff for you. I don't know if that's possible in this case, but if it really is "open" then it should be.
      • by eln ( 21727 ) *
        To be fair, Java was (at least initially) heavily marketed as "write once, run anywhere". It's pretty obvious that the language doesn't come anywhere near the hype in that regard.
        • Re:Openness! (Score:4, Insightful)

          by LWATCDR ( 28044 ) on Friday August 10, 2007 @11:58AM (#20183809) Homepage Journal
          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.
        • Yep, that's never going to be possible without the appropriate VM/emulator/decoder for every system, whether in hardware or software. Java was a cool idea, but I've never liked it in practice.
        • Yes, and Java can run anywhere you have a JVM. "write once, run anywhere" was a marketing phrase, certainly nobody believed it would run on any system anywhere without a VM. You can implement the JVM on virtually any hardware and any OS, just because a platform doesn't have a JVM for it yet doesn't mean a Java application you "write once" won't run there once they do have a JVM.
        • by rbanffy ( 584143 )
          I suppose there will be './configure && make && make install' versions of both the JDK and the JRE.

          Eventually.

          • by trims ( 10010 )
            I wouldn't bet anything on GNU configure ever being supported by the Sun JDK as the build method. configure is way to hairy and broken (from the development side) to handle something as complicated as the JDK. Look for possibly ANT to replace the hacked Make system currently used.
            • by rbanffy ( 584143 )
              I don't think the JDK is that complex. There are a couple native executables and a whole lot of .class and .jar files that can be compiled as soon as the JRE is up and running.

              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)

      by Anonymous Coward
      IBM does a decent java implementation for PowerPC Linux. I didn't think it was too bad when I last tried it on an imac that i'd upgraded to Linux. I seem to remember that the package had a terribly obscure name and took some painful searching of IBM's web site to actually get the thing. Sadly all three of my imacs have hardware failures, and I can't remember what it was called.
      I hope that this may help you.
      • by jrumney ( 197329 )
        IBM made most of their JVMs much harder to find, or even pulled them completely about a year ago. Now I think you can only get the AIX and OS/390 versions separately, for everything else you have to get WebSphere or something else with it bundled for that platform.
        • by cerelib ( 903469 )
          See my reply to the OP for a link. You can still get IBM Java versions for Linux x86 and PPC.
      • Re: (Score:2, Interesting)

        by Rexdude ( 747457 )
        I'm part of the Java6 dev team..in addition to linux, IBM Java is also available for the following platforms-
        • Windows (IA32 and AMD64)
        • Linux(IA32,AMD64,PowerPC 32/64)
        • z/OS(31 and 64 bit-yup,not a typo, z/OS uses a 31 bit addressing scheme)
        • AIX (PowerPC 32/64)
        • z/Linux 31 and 64 (Linux on system z)
        • See here [ibm.com] for the early release program.
    • by Just Some Guy ( 3352 ) <kirk+slashdot@strauser.com> on Friday August 10, 2007 @11:59AM (#20183833) Homepage Journal

      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. :(

      You gave your own grandma an iMac and then put Linux on it?

      Why do you hate your grandma?

      • I know, if Grandma wanted Linux you should have bought her a all in one box from PCclub and with the money you saved bought her flowers every week for two months.
      • It could have been one of the old G3 (CRT) iMacs. These ran MacOS 9 well, but struggle with OS X. Putting a lightweight *NIX on them might be a good option.
        • 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.

          • by empaler ( 130732 )
            G3s... weren't those the "original" iMacs? If 10.4 works on those, I think I need to raid my mother's basement... :-p

            (btw, you probably meant threw [m-w.com] (past tense of throw), not through [m-w.com] )
    • Re:Openness! (Score:4, Informative)

      by cerelib ( 903469 ) on Friday August 10, 2007 @12:01PM (#20183859)
      IBM has a free version of Java, I believe up to 5.0, for Linux on PPC. I have it running on an openSUSE PowerMac. I believe this [ibm.com] is the site to look at. They don't say PPC, but you want the pSeries version (in both 32 and 64 bit varieties).
      • Last time I tried this (about a year ago), it was still rather unstable. It's also pretty much the only java environment available for LinuxPPC, too, so IBM hasn't had much of a reason to update it.
      • If you're running Ubuntu on a ppc chip (I'm running it on a G4 PowerBook right now), then all you need to do is:

        sudo apt-get install ibm-j2re1.5

        It runs Eclipse and JAP very well.
    • Re: (Score:1, Troll)

      by fm6 ( 162816 )
      Give us a break. So nobody's bothered to implement a proper Java for a third-place OS running on an obsolete hardware platform. Next you'll be complaining that Java isn't available for your C64!

      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
      • 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

        • by fm6 ( 162816 )
          My argument is "vile"? You're the one that's making personal comments.
          • LOL

            Maybe abrasive is a more appropriate term...

            • by fm6 ( 162816 )
              I'll buy "abrasive". That's a pretty good description of my personality. But my personality traits have nothing to do with the validity of my arguments. Nor do they justify your using the word "idiot".

              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:

              1. While PPC may be in your opinion obsolete on the desktop, it is still one of the platforms of choice for embedded applications.

              Fine, I should have qu

              • Well, in hopes of keeping this comment from making the thread any more personal...

                But first:

                Nor do they justify your using the word "idiot".

                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

                • by fm6 ( 162816 )

                  Nor do they justify your using the word "idiot".

                  I never called you an idiot.

                  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.

                  If you have digital cable, you may be using Java to look at the program listings. Oh and people play Java games on their cell phones... (*cough* embedded).

                  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

        • Well, you could buy a PowerPC-based Mac less than a year ago. C64-level obsolete, clearly. Not to mention that there's lots of other systems out there that still use it (Pegasus, etc.).

          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
      • IBM uses the POWER architecture (PPC's big brother) in their servers and mainframes. They aren't quite the same thing, but porting it wouldn't be super hard, and would probably be a good idea given all the embedded linux stuff that runs PPC.
    • Forget Linux, Java works much better on Windows than on Solaris.
      I found Java on Solaris to be rather buggy.
    • 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.

    • In my experience the Yahoo! games don't run properly with the Sun JVM on windows. They do seem to run well on windows using the MS JVM.

      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.
    • I've been using UbuntuPPC for the past few months.

      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
      • That may be the most misinformed thing I have heard in recent weeks. Have you actually *written* any applications in C with GTK+? Do you have even the slightest idea of how brutal it is compared to Java with Swing or SWT?

        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
        • Comment removed based on user account deletion
          • For one thing, gcj can compile Java source and bytecodes to native code, which AFAIK works for those architectures even in the complete absence of a Sun JVM. But then, wherever that runs, so does gij. It's not as good as Sun's, but it does work for a lot of applications.

            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
            • Comment removed based on user account deletion
              • I know, it shits me too, and I'm hoping the GPLness will mean that the Sun JRE is ported to more platforms and the problem is solved that way.

                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
    • by also-rr ( 980579 )
      You can run Yahoo Java games on Linux PPC using the IBM JRE. I wrote a set of installation instructions [revis.co.uk] for it that cover installation and setting up the Firefox plugin.

      The installation isn't Grandma level, but once it is up and running it is no different to Yahoo games on Windows.
  • software only needs to have its own built in unit tests to verify that it works, Sun can butt out.
    • Re: (Score:3, Interesting)

      by eln ( 21727 ) *
      Sun's test suite isn't just to verify your code works, it's to verify your implementation of Java complies with the standards before they allow you to slap the Java logo on it. It's a good way to keep things open while still maintaining control over the Java standard, and preventing fragmentation of the language.
      • Re: (Score:3, Informative)

        by Anonymous Coward
        Translation: No Microsoft MSJava++ with Sun's Java logo on it.
    • Re: (Score:2, Insightful)

      by Anonymous Coward
      Bullshit. Unit tests can at most prove that a single piece of software "works" in an internally consistent fashion. They might be marginally sufficient when you're building a single-platform doghouse-sized app. They're a very small part and hardly sufficient part of the process of building a skyscraper, though, and can't verify that an app will work in any specified environment.

      This Sun tool seems to validate your implementation against some standard.

      By validating your code against some reference standar
      • Wish I could mod the parent post up...
      • the issue is of letting Sun decide what is compatible or not. Let an outside body working from the published standards do that. And this Sun package is a set of unit tests. And as for cross-platform, of course well designed unit tests can check that.
  • What is happening to the FSF's java project now?
    • by loubs001 ( 1126973 ) on Friday August 10, 2007 @11:55AM (#20183767)
      Fortunately the GNU Classpath guys are right on board with OpenJDK. One of their most prominent members Dalibor Topic (who's the lead on the Kaffe VM) is on the OpenJDK governence board and works with Sun and other representivies on managing the project. Other promiment members like Roman Kennke, David Gilbert, Mario Torre and others. are active on the OpenJDK mailing lists and submitting patches. They are all interested in becoming regular contributors to the project.

      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.

      • 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.
        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]
    • by ianare ( 1132971 )
      it's still being actively [gnu.org] developed. GCJ is part of GCC, so I don't think it will be abandoned anytime soon.
    • If you meant Classpath, the GNU-built JavaVM, it's probably going to see a sharp rise in compatibility with Sun Java.
      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
      • by nuzak ( 959558 )
        > If you meant Classpath, the GNU-built JavaVM, it's probably going to see a sharp rise in compatibility with Sun Java.

        Classpath is not a JVM, it is an implementation of the standard JDK library.
    • What is happening to the FSF's java project now?
      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).
    • They switched to the eclipse front end. Still use GCC back-end for native code compilation.
  • 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.
    • Not sure if you're aware of this or not, but gcj (gcc for java) will compile to native code. I have used it in linux; you do have to watch out for things like swing, as only part of swing is supported using libraries like SwingWTX (swing api over swt which is a native controls library). I think you can do something similarly for windows, but IIRC, it uses a 10mb runtime library which you need to then package along with your project.
      • by LWATCDR ( 28044 )
        Yes I am aware of GCJ. That is why I am hopping for that native compiler. With Java being GPL now GJC should have no problem with supporting all of the class libraries like Swing. So yea GCJ is my reason for hope.
    • Java does have native compilers, not by Sun though. When you native compile you loose some of the on the fly debugging capabilities of java, sometimes even dynamic class loading.
    • For client Java developers like myself, the availability of the runtime is definitely the biggest challenges we face. Most computers do have a Java runtime installed, but few have the very latest, which is a shame because the last couple of releases have been MAJOR advances over 1.4 and earlier, which were admittedly pretty crappy for the client side. But Java 6 is excellent, but since it was only released in December, most people dont have it, and dont want to download even 7MB for it, and Java 7 is shapin
      • Re: (Score:1, Funny)

        by Anonymous Coward

        Deployment is a hard problem when your technology isnt bundled with the OS
        Once apon a time, M$ used to include Java interpreter in there OS's, but Sun seemed to have a problem with that...
        • Re: (Score:3, Interesting)

          by loubs001 ( 1126973 )
          Yeah, I had a problem with that too. Because they added proprietary extensions that breached the specification (including Windows specific features), as well as omitting required features. Code written for the Microsoft VM wouldnt run on anyone elses. An implementation must be certified as compliant in order to use the Java brand. Microsoft's wasnt, so Sun sued. They won, and rightfully so.

          But I'm glad this happened. It caused Microsoft to go off and create rival platform (.NET) and a rival language (C#). M
    • by fm6 ( 162816 )
      "Loading the runtime" basically amounts to transferring the libraries from disk to RAM. So startup time has nothing to do with the supposed efficiency gain for native code compared to byte codes. (Which is mostly not true anyway, but that's another issue.) What it does have to do with is the size of the files being loaded. Translating the libraries to native code wouldn't necessarily make them smaller. Indeed, it would probably make them bigger.
      • by LWATCDR ( 28044 )
        Except that that if you statically link with the libraries your application will only load the part of the library needed for the application. Of course that will mean that your code will have to be GPL but for in house programs or programs you plan on releasing as GPL from the start that isn't an issue.
      • 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.

        • by leenks ( 906881 )
          This isn't strictly true, at least not on the Apple JVM, and presumably others too now for java code, and certainly isn't true for the large parts of the underlying APIs that have to be implemented as native code - see http://www.apple.com/macosx/features/java [apple.com]:

          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
          • This isn't strictly true, at least not on the Apple JVM,...

            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.

            Apple developed an innovative new technology that allows Java code to be

  • by RockHorn ( 896105 ) on Friday August 10, 2007 @12:12PM (#20183989)
    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!
    • by sapgau ( 413511 )
      All that is true and is the reason why convincing a business/client to use java is always so easy. Is convincing the slashdot audience that java is good enough instead of reinventing the OO concepts with a new language every year.

      • by abigor ( 540274 )
        The "slashdot audience" is mostly non-programmers who have convinced themselves they belong to an open source "community" and students who have never written a single line of production code in their lives. So it's no surprise that they are a tough sell, since they generally have no idea what you're talking about.
    • 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.

      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

  • Sun can still do better ... and easily.

    "We've known that we weren't going to be able to satisfy everyone in the open-source and free software worlds. There are incompatible licenses and philosophies and approaches," Sands said. "We're trying very hard to figure out some way to bridge this, but we've not been able to do that."

    [...]

    The compatibility kit itself, though, is not an open-source project. "We wouldn't want people being creative about what compatibility means, because then you end up breaking

  • "Suck it, IBM"
  • 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.

It appears that PL/I (and its dialects) is, or will be, the most widely used higher level language for systems programming. -- J. Sammet

Working...