Slashdot Mirror


IBM Collaborating With Open Source Java Project

lord_rob the only on writes "According to news.com, IBM has begun participating in the open-source Java project Harmony and intends to contribute code to the initiative, according to a Big Blue executive. At this point, IBM's participation is limited to thoughts on design, but the company has plans to contribute code to the project in the future." From the article: "We really like to see the community get started, and they're still working out the rough edges of what they want to deliver. And we didn't want to disrupt that,"

37 of 149 comments (clear)

  1. Eclipse? by VolciMaster · · Score: 3, Informative

    This should line up with their efforts with Eclipse, too. I might get into a little Java programming if the environment were open-source.

    1. Re:Eclipse? by Rhoon · · Score: 2, Insightful

      I always thought Eclipse was open source... I could be wrong on that. I do however hope they plan on making the Java Doc inside the code better than Eclipse's piss poor attempt(was there even an attempt?). There wouldn't be a need to write tutorials on how to use the SWT/JFace APIs if the Java Doc was complete... or even there in some cases.

      --
      "If all the world's a stage, I want to operate the trap door." - Paul Beatty
    2. Re:Eclipse? by LDoggg_ · · Score: 4, Informative

      Eclipse is indeed open source.
      In fact, fedora core 4 comes with a natively compiled version of eclipse and a 100% open source jvm implementation.
      Still needs quite a bit of work, but has definetly come a long way

      --

      "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
    3. Re:Eclipse? by bluGill · · Score: 3, Insightful

      I'm a programmer. I've been burned by bugs in my tools before. Sure MOST bugs are my fault, but once in a while I'm pretty sure it is the tool's fault. With open source I can fix those bugs and move one. With closed source I'm at the mercy of vendors who rarely care about my project.

      Then too, a lot of documentation is bad. Either it doesn't exist, or the program doesn't work like the docs say. The source code is definitive about what is really going to happen, and I can read it. IF you are not a programmer it doesn't matter because you can't read the source, but I can, so it matters.

    4. Re:Eclipse? by evilpenguin · · Score: 2, Insightful

      There is an open source C#. Take a look at Mono, which is a completely open source CLR and C# compiler. They have implemented most of .NET (although not the Windows GUI, they have a GTK GUI which also runs on Windows, so you can write C# on *nix and run them on Windows directly).

      I have read that Mono is complete enough to run VB ASP.NET applications natively on a *nix box. (But not VB GUI apps since they don't have the Windows GUI classes implemented).

      As for "Open Source" bias, it ranges from a political belief that all software should be Free (Stallman), to a more practical belief that no one shoul be subject to proprietary lock-in, which is awlays a risk with a single-vendor closed product.

      For some it is just the desire that software be free (as in pay no money for it).

      I personally subscribe to the "Free Software" philosophy. I believe that we should always be able to see, use, and extend the code we use.

      This is why whenever possible I release my code under the GPL. (Mind you, I haven't put anything out there that anyone has really wanted to use! But it is there, in no small part as payment for all the great Free Software I have been able to use.)

    5. Re:Eclipse? by halivar · · Score: 2, Insightful

      I might get into a little Java programming if the environment were open-source.

      Why wait when Mono is open-source and C# kicks ass? I say this having done both server and GUI Java development for 5 years, and a having been a very vocal detractor of C# at its inception, until I finally tried it out.

      Try Mono; I think you'll be pleasantly surprised.

    6. Re:Eclipse? by superpulpsicle · · Score: 2, Informative

      Need I mention the Eclipse that natively comes with Fedora redhat core4 crashes the OS immediately on execute. So many forums out there cover the hardcore details. To sum it up, Fedora core grows faster than people can test it. It's becoming M$-ish buggy.

    7. Re:Eclipse? by delire · · Score: 2, Insightful


      I'll say it again. Fedora will always be buggy, unstable and untested. That is what it was designed to do, serve as a community testing ground for products and services that may or may not make it into the commercially supported enterprise editions.

      Redhat themselves are very clear about this on the Fedora project page

      Stop complaining about Fedora and get a tested, 'stable', desktop focussed distribution. Most importantly, stop encouraging those new to Linux to try it.

    8. Re:Eclipse? by Pxtl · · Score: 3, Insightful

      Simple - what happens if the platform goes away? What happens if microsoft moves away from .NET, and you want to move to a new platform (PowerPC for example). Hell, what happens if 20 years from now you find you need an old tool you made in C#? Will it still work? Will there be a compatible .NET run-time for 256-bit computers?

      Part of the commercial reason to use opensource is to future-proof yourself against long-term eventualities like this. If Java decides to stop letting you bundle the JVM with your OS, then you can't provide OpenOffice anymore without paying them. If MS stops supporting a platform, then you're screwed if there's an unworkable bug and you're stuck on the platform.

      Fundamentally, when you invest labour on designing products and infrastructure based on a closed-license platform, you gain fealty to them. They now control you - they can make you lose the use of the product of your labour. They can stop providing their product, they can refuse to fix un-workaround-able bugs, or they can just go out of business and leave you high and dry.

      With opensource, you can lose your support provider, but you can never lose the platform - at worst, you may have to maintain it yourself.

      Yes, you may even have a solid, bullet-proof contract with your provider - but what happens when they go out of business?

    9. Re:Eclipse? by A.K.A_Magnet · · Score: 2, Insightful

      Grandparent said it, he (as well as many) support the Free Software philisophy, it's not the same thing as OpenSource (which is more a label aimed at entreprises).

      Each and every free software activist want the opening of ALL source code, no matter if they're actually wanting to have a look at it. As one of many, I don't see any area where I woudln't free my code, but unlike some, I can understand that resources may be non-free (e.g, in a videogame, while the engine should be free, say dual licenced GPL / and commercial licence for the company to make some money, like MySQL, I understand that graphics and creation, music, could be non-free). It doesn't mean music, art in general shouldn't be free but it always depends on your business model.

      So to say, Free software isn't about the ability of the user to fix a bug. It's not about users at all, in fact. It's about the software itself, and its freedom. This is why we talk about philosophy when it comes to free software, since it is a movement of idea, whereas opensource is a business model that uses free software (and which was at first aimed at advertising free software).

      Programming languages are not about being free. They're about being standards (good) or not (bad). People in the free software community want these languages *implementations* (ie compilers, libraries) to be free because some Linux distro (eg Debian) refuse to have non-free packages (at least in the main branch). See the Debian Social Contract.

    10. Re:Eclipse? by andersonbd1 · · Score: 2, Insightful

      Have you ever programmed in java before? We're talking about the jvm/compiler/and core api. All 3 of these aspects are very well documented, and all 3 perform as they should. I challenge you to find a bug and if you do, I'm sure Sun will fix it. A certian open-source mentality doesn't apply here. Sun pays professional developers to develop java - you're not just going to run into bugs here and there that you could have easily fixed if it were open source. I love open source, use it everyday, and wish sun would release their code under a different license, but at least make a valid argument.

    11. Re:Eclipse? by Mr.+Shiny+And+New · · Score: 2, Insightful

      The source code for the Java API is available, but not with a Free license. It ships with every JDK. What's not available is the JVM source... at least, also not with a Free license. But I've been programming Java for years and rarely look at the API source, and have never needed the JDK source.

  2. Talk about fragmenting the standard... by jarich · · Score: 4, Insightful
    Sun's reasoning for not open sourcing Java is that they didn't want to fragment the Java language with competing verions of Java.

    Looks like ~not~ open sourcing Java is fragmenting the Java language after all!

    1. Re:Talk about fragmenting the standard... by ballstothat · · Score: 4, Insightful
      I completely agree with Sun's stance on not fragmenting their code. While their licensing isn't agreeable, there are millions of java powered items out there. If Java turned into a bunch of different flavors (insert mocha, vanilla, hazelnut joke here), then it would be a headache.

      The JRE for Windows XP is already 15.4 MB. If there was 5 different REs that I had to download to use all the Java flavors, that wouldn't be cool.

      I feel that Sun's thinking is sound from a business and usefulness perspective, even if it is starting to backfire.

      --
      10
      20 Print "Balls To That"
    2. Re:Talk about fragmenting the standard... by Jason+Earl · · Score: 3, Insightful

      No matter how compliant Harmony purports to be it is still going to be different than Sun's JVM. Any sysadmin that has ever had to juggle multiple JVMs can tell you that Sun's Write Once Run Anywhere motto can quickly become Write Once Debug Everywhere.

      It's also entirely possible that Harmony won't even try for complete compliance. Don't forget that IBM is still pushing their non-Java SWT instead of Swing. Red Hat already has its own Java stack that's good enough to run most Java Free Software (including Eclipse), but no one is pretending that it's Java.

      Sun has stated that it doesn't want to "free" its J2SE stack because it is afraid that source availability would lead to forks. However, no fork of Sun's code is likely to diverge from Sun's fold as much as a completely new Free Software Java-like implementation.

    3. Re:Talk about fragmenting the standard... by luiss · · Score: 5, Informative

      This project is implementing a Java Virtual Machine. How in the world does this fragment the Java Language any more than let's say Apple or IBM's many JVM implementations?

      Now, if Harmony intends to "extend" the Java Language by lets say, adding new keywords, just as Microsoft did with J++ at one point, then you can start worrying about Java Language fragmentation (in which case Sun would not allow Harmony to call itself a Java(TM) Virtual Machine).

    4. Re:Talk about fragmenting the standard... by Knome_fan · · Score: 3, Insightful

      "No matter how compliant Harmony purports to be it is still going to be different than Sun's JVM. Any sysadmin that has ever had to juggle multiple JVMs can tell you that Sun's Write Once Run Anywhere motto can quickly become Write Once Debug Everywhere."

      But this is a general problem of having different JVMs. So now also having one that is open source doesn't change the situation in any way.

      "It's also entirely possible that Harmony won't even try for complete compliance. Don't forget that IBM is still pushing their non-Java SWT instead of Swing. Red Hat already has its own Java stack that's good enough to run most Java Free Software (including Eclipse), but no one is pretending that it's Java."

      It's possible, but not very likely considering that the statet goal of Harmony is to "create a compatible implementation of J2SE 5".
      As to Red Hat, it isn't Java, because it isn't mature enough and only implements parts of the Java specs. But doesn't this example show that your worries are unfounded, as Red Hat is neither trying to create something different from Java, nor to call something Java that doesn't meat the criteria?

      "Sun has stated that it doesn't want to "free" its J2SE stack because it is afraid that source availability would lead to forks. However, no fork of Sun's code is likely to diverge from Sun's fold as much as a completely new Free Software Java-like implementation."

      Again, you are supposing it is a free software java-like implementation, whereas the goal is to create a free java implementation.
      While you are of course right that having such an implementation would make it easier to fork Java, I don't see why anybody should try to do this, as the chances for the success of such a fork are minimal at best.

    5. Re:Talk about fragmenting the standard... by Linus+Torvaalds · · Score: 2, Interesting

      Talk about missing the point!

      The person you are replying to was pointing out that Sun's stance causes fragmentation of the Java platform.

      Pointing out that Sun not wanting to fragment the Java platform is entirely beside the point. The best thing they could do to avoid fragmentation would be to make their implementation open-source. Anything else, and it will force many people to create new implementations rather than use Sun's.

  3. Neat by Anonymous Coward · · Score: 5, Interesting
    There's been this interesting and very quiet power struggle within the JCP between Sun and IBM. IBM keeps wanting to assert influence over Java and grow the language/platform in ways that they think would be good. Sun keeps trying to simultaneously
    1. keep IBM from taking the language in directions other than Sun wanted to take it in, and
    2. make the JCP a democratic and open process whereby any involved company can take the language in any direction they want.
    This isn't because Sun is evil or malicious or anything; they're just confused about what they want. They honestly want Java to be an open, democratic standard, and they honestly want to control it.

    The "control it" side of things keeps winning, because in the end Sun makes the JVM so they can technically decide what goes in and how it gets distributed.

    This is why I think Harmony is interesting. Sun will no longer control the only good JVM, and if Sun can't stay at least as good as Harmony, then Sun will no longer control the primary JVM. This makes the JCP's democratic ideals a lot more attainable because Sun's just lost their biggest degree of control. IBM trying to weigh in on the side of Harmony, given this context, makes a LOT of sense. They can begin to grow the language how THEY wanted again.

    This is going to be good for IBM, good for open source, and in the long run good for Sun once they realize that trying to control Java too much isn't really in their best interest.
    1. Re:Neat by danme · · Score: 2, Insightful

      >>Sun will no longer control the only good JVM, and if Sun can't stay at least as good as Harmony, then Sun will no longer control the primary JVM.

      How does this differ from the incompatible Java framework released years ago by Microsoft? If Harmony takes "the lead" - will it be possible that it can be taken to court by Sun? Or is it simly because of the monopoly market situation that Microsoft is and were in?

    2. Re:Neat by TheRaven64 · · Score: 2, Informative
      A Java implementation comes in two parts. Part 1 is the JVM. Sun have one, IBM have one, and there are a few others. This is the (comparatively) easy part. Part 2 is the huge class library. Java is a platform - people writing Java code expect everything in the class library to be available. Currently (at least, last time I checked) everyone who distributes Java distributes Sun's implementation of the standard class library (possibly modified slightly at the edges for platform integration).

      If IBM had a complete Java implementation, then they could release it as open source, but if it were modified by the community then it would have to be re-certified as Java before every release.

      --
      I am TheRaven on Soylent News
  4. so? by ThatGeek · · Score: 5, Funny

    "IBM's participation is limited to thoughts on design, but the company likely will contribute code to the project".

    I put this through BabelFish's translator. Apparently, this could be taken to mean:

    "A big company is going to do little to help out, but is willing to share credit for an open source project."

    Me? cynical? Never!

    --
    What are you eating? isItVeg?.
  5. What about GCJ? by AnuradhaRatnaweera · · Score: 2, Interesting

    After the FSF call for volunteers, GNU Java compiler / VM has come of age. It was reported here, too. RedHat Fedora Core 4 even includes a native version (doesn't depend on JVM, but runs as a "normal" binary) of Eclipse, compiled with GCJ.

  6. in summary: by nickos · · Score: 2, Insightful

    IBM says "this is what we want, now get on with making it for us".

  7. Here we go by $RANDOMLUSER · · Score: 5, Interesting

    The Richard Stallmans of the world have long wanted Java to be an open source language, while Sun Microsystems has said that they want to be the single point of control for the language. The biug lawsuit between Sun and Microsoft was about Microsoft making unauthorised changes to the language spec. Through the Java Community Process, Sun has allowed developers at large to make suggestions and improvements to the language if Sun approved of them. Sun controls the specification of the language and the reference JVM implimentation. The battle isn't about the JVM being open source, it's about the language specification. Sun's fear is that by opening the specification, someone's going to say "You know, I've always felt the language should have pointers", and the language will fall into Creeping Featurism the way C++ did. The recent (1.5) introduction of template-like behavior, at the demands of the "more features" crowd is already a step in that direction. No matter how you slice it, it seems we're doomed to a Java with more and more new features (remove run-time array bounds checking for performance, anyone?) and more and more fragmentation.

    --
    No folly is more costly than the folly of intolerant idealism. - Winston Churchill
  8. Swing? by ravenspear · · Score: 4, Informative

    GCJ still only provides limited support for Swing. I don't think it can be said that it has "come of age" until that support is there in a form that at least remotely resembles javac.

    1. Re:Swing? by Jason+Earl · · Score: 2, Insightful

      If you are willing to forgo Swing and use SWT then GCJ is a pretty compelling choice.

  9. Sun, IBM, and Compatibility. by reporter · · Score: 3, Interesting
    According to "Sun Lashes Out at Open Source J2SE", Sun hates the Harmony project.

    Yet, IBM loves it and is now, apparently, committing to it. Once IBM backs an open-source product (e.g. Linux) and ships it to customers, then IBM ensures that the product performs flawlessly. Who can doubt that IBM is a significant contributor to the high-reliability of today's Linux build? The strength of IBM is its commitment to its customers.

    What is interesting is that, from a business perspective, there is no need for Harmony to be fully compliant with Sun's closed Java standards. The route to divergence is to (1) define a new language called "Harmony", (2) place it with a standards body, (3) maintain full compatibility with only the current version of Java (in order to support all of IBM's current customers and developers) but deliberately diverge from compatibility for future versions of Java, (4) arrange for IBM to jettison use of future versions of Java and to fully utilize Harmony, (5) generously borrow the best concepts from Java while ensuring that the word "Java" is never used (in order to avoid a lawsuit), and (6) build support for Harmony in GCC. This strategy could work.

    C# is a ripoff of Java and is quite popular.

    There is nothing magical about the Java name. Just consistently use the name, "Harmony", on this proposed Java variant. Everyone will know that "Harmony" is Java -- plus additional stuff. Even if "Harmony" is only 98% compatible with future versions of Java, "Harmony" could grab the software development if the open-source community backs it.

    1. Re:Sun, IBM, and Compatibility. by braindead · · Score: 2, Interesting

      What is interesting is that, from a business perspective, there is no need for Harmony to be fully compliant with Sun's closed Java standards. The route to divergence is...

      I think that full compliance is important. There's a world of difference between getting people to use a new VM for an existing language, and proposing a new language.

      If Harmony is a fork of Java, then I want nothing to do with it.

  10. Bad sign for Sun by 0xABADC0DA · · Score: 2, Informative

    I think this is a very bad sign for Sun, because it sound to me like IBM hedging its bets for what might happen if Sun is bought out or sells Java. IBM's java virtual machine is based on Sun code, so if Sun sells the rights to Java then IBM is beholden to somebody else (maybe even Microsoft, who would buy Sun just to finally kill Java). As sad as it is to say, I think IBM sees the writing on the wall that Sun just doesn't seem like the reliable bet these days.

  11. No, you're not quite right. by Anonymous Coward · · Score: 2, Informative

    If you'll look at harmony's website, you'll see that they aren't just implementing the Java Virtual Machine as you put it. They are implementing J2SE. J2SE is not just a language. It is a platform.

    Platform fragmentation is as, or more important than, language fragmentation*. A language cannot stand alone. You need libraries. Platform fragmentation is what Sun is worried about right now, not language fragmentation. The JVM is not even part of the "open source java" debate, since open source JVMs already exist and Sun is more or less encouraging them!

    Please see my other comment here.

    * Language fragmentation can still happen if Harmony chooses to implement different JSRs than Sun does for some reason. However it is incredibly unlikely that this would be a bad thing. As long as Harmony stays within the accepted protocols for extending the Java language, and keeps any experimental/unapproved-JSR features cleanly quarantined within the -XX "pragma" flags (both of which things, Microsoft did NOT), this will be fine.

  12. Re:IBM could create Harmony overnight by psykocrime · · Score: 4, Informative

    IBM already has a complete JDK which actually used to be much better than Sun's in terms of efficiency etc. (not sure how it compares right now). They could just release the whole thing as F/OSS under the new JCP rules, and create Harmony overnight. Why have they not done this yet?

    Because IBM's JDK wasn't written from scratch. It's based, to some degree, on Sun's code. I don't know how much Sun code is in IBM's JDK, or the exact details of the license between Sun and IBM, but I know IBM's JDK is subject to Sun licensing.

    --
    // TODO: Insert Cool Sig
  13. Re:IBM could create Harmony overnight by dudeman2 · · Score: 2, Informative

    I believe you are correct, IBM's JDK was not a clean-room implementation - it owes a lot to Sun's JDK. IBM is bound by their licensing agreements with Sun, and the IBM developers that worked with Sun JDK source code are likely 'tainted' enough so that they cannot now work on a clean room implementation.

  14. Re:IBM could create Harmony overnight by TerrapinOrange · · Score: 2, Insightful

    IBM's JVM is based on Sun's. They may be able to contribute bits and pieces, but certainly not the whole thing.

  15. Re:A question about Java by Anonymous Coward · · Score: 2, Informative

    Can someone inform you why SUN will not allow Linux distros distribute java? I know it about licensing but what is the logic behind this?

    The last thing Sun wants is Linux distros being competitive. The "let's support Linux" war was lost at Sun a couple of years ago... Java and its licensing is a weapon in that war. Why make it possible for Linux distros to legally distribute Java easily when it would take sales/support money away from OpenSolaris? *That's* why an open source Java is needed... or preferably, fuck Java altogether and use something better designed and more open... like Mono (whose spec is at least standardised with an international standards body... something Sun refuses to do with Java).

  16. Re:IBM could create Harmony overnight by Dan+Berlin · · Score: 3, Informative

    This isn't true anymore. The old JVM was based on sun's code. The new one is completely cleanroom.

  17. answering my own question by ChristTrekker · · Score: 2, Interesting

    Once I found the Harmony site from someone else's post (hint: it's in the Apache incubator, not a full-fledged project yet), I saw this in the FAQ:

    13) Does this compete with Kaffe and Classpath?

    People from Kaffe and Classpath are helping start this project! Their experience in the open source VM and class library is invaluable, and they bring problems that the larger architecture community discussion can help solve.

    We will have an implementation under the Apache License, but we think of this as complementary rather than competitive. And when we solve a few small license interoperability issues, we expect we'll be able to complement each other even more.

    So, it sounds like a cooperative deal between various players. I've been hoping for an OSS JVM because there is no Java for some of the platforms I use. Having a few big-name drivers behind it will definitely help.