Slashdot Mirror


Will Sun's Java Go Open Source?

Ritalin16 writes "CNet report that Sun Microsystems wants to send Java closer to the open-source world, yet keep it safe from harm. "Project Peabody" adds two licenses that make it easier for outsiders to see the code. But Sun stops short of embracing open-source. Sun's licensing practices for Java are closely watched. Proponents of making Java open-source argue that a different license and development process will help accelerate usage of Java, which faces ongoing competition from Web open-source scripting tools, such as PHP, and Microsoft's .Net line of tools."

35 of 519 comments (clear)

  1. off-topic-a-roony by aendeuryu · · Score: 5, Interesting

    Hey, is anybody using the gnu java compiler much? How's the performance on java programs made with it? Obviously there'd be some positive side effects, but exactly how much could the community benefit from having Sun's compiler open-sourced?

    1. Re:off-topic-a-roony by LnxAddct · · Score: 4, Informative

      Despite the other posters, gcj compiles things very nicely. It also has support for many things including SWT and basic AWT (enough support to compile jogl (opengl bindings)) Its definitly an alternative and has made major headway recently. It can compile eclipse and the Apache Tomcat server as well. GCJ is nice for compiling natively, and we already have an open source JVM called blackdown. Sun opening Java would be nice, but certainly not essential.
      Regards,
      Steve

    2. Re:off-topic-a-roony by iamacat · · Score: 5, Interesting
      The community would benifit from having a Open Source java implimentation

      Well, there are already at least a couple - Kaffe and GCJ, why not just contribute? Sun already did the hard part - theoretical research, design, marketing - for free. Actual coding of well-researched projects is not that difficult. You can even study Sun's source code to learn general concepts for your own project as opposed to just "lifting" it.

      See, there is no shortage of C/C++ compilers and nobody is grumbling about AT&T not releasing their stuff under GPL.

      ...because it would allow distributions to distribute java runtime enviroments...

      SUSE and gentoo already do, I would guess someone (Debian?) made their own decision not to ship Java rather than being disallowed by Sun.

      Like you could begin writing Java-based GUI applications and then distibute them yourself without requiring your audiance to agree to restrictive licenses and download and install Java on their own.

      Enjoy a license-free download! And the winner is:

      Probably a bit to late for all that, unfortunately. Sun had it's chance and now Linux has managed code in the form of Mono (open source .NET implimentation) and C#. So sun has much more stiffer compitition then it would of had in the OSS world if they released a java runtime enviroment without restrictive licenses a few years ago.

      Do you mean Microsoft released their own .Net implementation under GPL?? I would say Java platform is far more open than MS stuff. Gnome developers just have some unexplainable love for Windows.Forms as opposed to Swing.

    3. Re:off-topic-a-roony by v01d · · Score: 4, Informative
      No! C# is an open ISO and ECMA Standard!


      C# != .NET

      Not even close.

  2. Already ditched by skomes · · Score: 5, Funny

    I already ditched java a long time ago. After trying some .net, settled on python, who wants to write 10 lines of code, and have to pass through 2 layers of variables to open a file? Python: open(filename,r/w,0) Java: JSKALDAHSJKDHLSA; ASDJH(ASLDHJKLASH); ASJHDJAKSHDJHASD(); REALLYLONGBUFFERNAME();

    1. Re:Already ditched by crummynz · · Score: 5, Funny

      After close examination of your Java code, I think I've found the reason you were having some problems.

      --
      ~ Crummy
    2. Re:Already ditched by mabinogi · · Score: 5, Informative

      OutputStream out = new FileOutputStream(filename);

      next?

      (yes, I know it's still more typing than python, and I know you were tying to be funny, but Java really isn't that much work)

      --
      Advanced users are users too!
    3. Re:Already ditched by linguae · · Score: 5, Insightful

      For small programs, Java can get very wordy and very verbose, especially if you coming directly from C/C++, or from a language like Perl or Python. It does get annoying at first, typing in public in front of nearly every class/method and having to type in System.out.println when a simple printf() or cout or print would do suffieiently in another language. However, once you start making larger programs, Java isn't that bad, and all of those words are there for a reason. It starts making sense after a while, and it really is a nice language, once you grasp the OO concepts and get past some of the annoying differences between Java and C/C++/Python/whatever. It gets really convenient when playing around with Swing.

      Put it like this, I'll bet you that you'll want to code in Java long before you want to code in Visual Basic, or even worse, COBOL. If you thought Java was verbose, Visual Basic is even more verbose, and COBOL takes verbose to another level....

    4. Re:Already ditched by say · · Score: 5, Insightful

      You know, that is an annoyance just because you do not use object orientation much. Java is strongly typed, and it has a lot of advantages. A quite usual way of creating a new variable is:

      Car redCar = new Porsche();

      Or the more familiar:

      List list = new ArrayList();

      This does also enable stuff like:

      Person p = list.get(1); // even if all objects in list are Man and Woman objects!

      If you don't understand the advantages of this kind of casting, you don't understand object orientation, and therefore, you don't need Java.

      --
      Roses are #FF0000, violets are #0000FF, all my base are belong to you
  3. Sun's covert ops by bobdotorg · · Score: 4, Funny

    "Project Peabody" is really the code name for Sun's secret development of The Wayback Machine to send Scott McNealy back to a time when Sun was relevant.

    --
    __ Someday, but not this morning, I'll finally learn to use the preview button.
    1. Re:Sun's covert ops by nathanh · · Score: 4, Funny
      "Project Peabody" is really the code name for Sun's secret development of The Wayback Machine to send Scott McNealy back to a time when Sun was relevant.

      Quiet, you!

  4. No, they want to keep their integrity. by CompotatoJ · · Score: 5, Interesting

    "Sun has elected not to use an open-source license at this time because its commercial customers are concerned with "forking," or the creation of incompatible editions of the base Java software" Currently, Java seems to be close to, if not the lead in cross-compatibility. They do not seem like they want to lose their integrity as a stable cross-platform language.

    1. Re:No, they want to keep their integrity. by Baki · · Score: 4, Interesting

      Others might argue that the same forking might happen to PHP, perl etc. However, do not forget that MSFT actually has tried to fork an incompatible version of Java, they never tried such a thing with other 'cross-platform' language.

      Why? Because Java is the only real threat. Java's real importance is in 'enterprise' development; many large companies have been developing in Java for the last 3-5 years, the importance of Java in such environments dwarfs any other development platform, except maybe for cobol. Thus Java remains the most likely target for sabotage actions, and needs to be protected vehemently.

      Especially now that Java is in direct competition with .NET, further sabotage actions are not unlikely. .NET is just as protected, if not more (also protected by patents probably). For Java at least the spec is open: anyone may make an alternative implementation. For .NET there is no open formal spec at all, and alternative implementations have an unclear legal status.

    2. Re:No, they want to keep their integrity. by civilizedINTENSITY · · Score: 4, Insightful
      .NET is just as protected, if not more (also protected by patents probably).

      Mono Developer Meeting
      Miguel and Novell legal staff are currently conducting a formal patent review of mono, and the team had already split up the components of mono into separate ECMA-based and non-ECMA components (WinForms, ADO.NET, etc) to clearly define what RedHat and others could make use of. Importantly, Miguel also said that Ximian had a letter from Microsoft, Intel and HP stating that they would offer *royalty-free* RAND licensing to the ECMA-submitted components of .NET.
    3. Re:No, they want to keep their integrity. by killjoe · · Score: 5, Interesting

      MS did fork java, they called it C# and .NET.

      Ms no longer cares about java now that they have their own version of it.

      --
      evil is as evil does
    4. Re:No, they want to keep their integrity. by R.Caley · · Score: 4, Informative
      What license can I use that would effecively prevent forking, but at the same time be open source?

      By definition of the term `open source' as it is used now, it means that people can get, change and use the source and at least with some restrictions redistribute the resulting changed version.

      I.e. `open source' more or less means `you can fork'.

      The solution is perhaps to grow up and stop wanting to keep control. Life is to short to worry about that kind of thing.

      And, of course, the fact that control is not enforced by the licence doesn't mean that there will be no central control. I think most people would say that Linus has reasonable control of the future of the linux kernel, dispite the fact that anyone could fork it, and many do for special purposes.

      Consider XFree86 vs X.org for an instance of why the ability to fork is a good thing. Sometime when you get bored with working on your library, or fall under a bus, someone else with enthusiasm can take over, and if they do a good job, their branch will take over from yours and, assuming it wasn't a bus, you can go off and do whatever you are more interested in doing at that point.

      --
      _O_
      .|<
      The named which can be named is not the true named
  5. Re:Integrate into FireFox? by mark-t · · Score: 4, Informative
    The "exploit" to which you refer is not an exploit against Java, or Firefox, or even IE, for that matter.

    It is exploiting a clueless user that doesn't know enough to click "No" when presented with a warning dialog that says that an untrusted application is trying to make changes to the local filesystem, and it asks permission from the user if this should be allowed. Previously, it had been assumed that a user would be ever so slightly clueful enough to not actually permit an untrusted application to do this, especially since they are getting a nice and friendly warning dialog, but hey... I guess user stupidity reaches new lows every week. The people that are vulnerable to this are the same people that think it's a good idea to run native exe attachments in emails from unverified sources.

  6. Get informed by BortQ · · Score: 4, Informative

    Anyone who reads Jonathan Schwartz's blog will know that Sun is gonna open-source java. He's been hinting about it for a while now, interspersed with hyping up the open-source release of solaris. Sun seems to understand that going open-source is there best chance of survival in the software world.

    --

    A Multiplayer Strategy Game for Mac OS X, Windows, and Linux
  7. Java and "Unsupported" Platforms by linguae · · Score: 4, Interesting

    It would be great if the Java JDK were open-source, or at least distributed with a less restrictive license. Installing Java on "unsupported" platforms is a nightmare. Take FreeBSD, for example. First, I have to install the Linux version of Java, because for some reason, the native Java port requires the Linux version for bootstrapping purposes. Next, I have to manually fetch the sources for Java from Sun (since Sun prohibits redistribution other than from Sun's site, and the latest precompiled package for Java is for FreeBSD 4.x, which doesn't work under FreeBSD 5.3; not to mention that I can't really do anything with the sources other than compile them; the license is very restrictive). Finally, I have to compile them, which took me 18 hours to compile on my computer (I'm not trolling; the fastest computer I own is a 475MHz K6-2 with 64MB RAM; I'm poor). For Sun to advertise that programming in Java is about "writing once and running everywhere," I guess "everywhere" is defined by Sun's view on the world. The only reason why I compiled the JDK in the first place is because I need it for my upcoming classes.

    It would be great for all developers if Java were open sourced under an agreeable, OSI-compliant license. Developers of "unsupported" platforms would be able to port the JDK to their favorite operating systems (and redistribute sources and binaries of the JDK, too), which would raise the number of developers using Java, which in turn raises the number of people using Java-based applications. Next, I don't think Sun has to worry much about Java being forked. Look at C, C++, Python, Perl, and Ruby. C and C++ are ANSI-certified, and Perl, Python, and Ruby are open source. As far as I know, there aren't any forks of C, Perl, and the other languages that I've listed.

    In the meanwhile, I wonder how good are the free, open source interpretations of Java and how they stack up to the Sun JDK?

  8. Re:Speaking of Java..anyone know by LarsWestergren · · Score: 4, Informative

    Perhaps if you could tell us why you thought Eclipse and Netbeans suck it would be easier to come with a suggestion?

    Anyway, some of the most popular would probably be JBuilder, JDeveloper, IntelliJ IDEA, KDevelop...

    If you prefer more light-weight IDEs, you can always use ANT together with something like Emacs or JEdit.

    --

    Being bitter is drinking poison and hoping someone else will die

  9. Mono viability by grahamsz · · Score: 5, Insightful

    While i haven't done much research, a little casual testing suggests that opensource JREs run a lot more java software than mono runs .net software.

    1. Re:Mono viability by lupus-slash · · Score: 5, Interesting

      Given than mono can run basically the same java programs as the free java VMs (since they all use GNU classpath and the lib implementation is the limiting factor) and it runs many .net programs out of the box, mono is much more viable than any free software java implementation.

  10. Re:and how's that working out? by LarsWestergren · · Score: 4, Insightful

    Think about the "fairly popular" bit. None of these languages have become as prevalent as Java. With the industrial adoption of Java has come a huge pressure to add more stuff to it, and an increased possibility of forks when people don't get what they want added. See the many different scripting add on libraries for instance.

    We have MSFT pushing their own completely incompatible java-like system.

    Imitation is the sincerest for of flattery. Microsoft has cloned Java, and now you are going to blame Sun for the fact that it isn't 100% compatible.

    Let's see: we have kaffe, gcj, and a handful of other open source attempts to clone java, all of which are not exactly one-hundred percent compatible, and none of which would exist if java had been open source in the first place.

    I think you have to explain your reasoning a bit here, because no matter how I try to read this it sounds like you contradict yourself.
    "Open source versions are forked. Therefore, if it had been open source there would be no forks"?

    --

    Being bitter is drinking poison and hoping someone else will die

  11. gcj is nice by DavidNWelton · · Score: 4, Interesting

    I've been using gcj to develop Hecl ( http://www.hecl.org/ ) with, and so far I've been pretty happy. I found one compiler bug, which I reported and which was then promptly fixed. At FOSDEM, I also had occasion to go visit the Free Java developer room, and the impression I get is that these guys are making enough headway that it doesn't matter what Sun does at this point. Redhat had something like 3 or 4 very sharp developers (Tom Tromey, for instance) working more or less full time on gcj and ClassPath. Sure, Sun has way more people, but for now, all the free guys have to do is play catch up with the spec, not surpass Sun. That comes next;-)

    By the way, I don't think blackdown is actually open source in that it's based on the Sun code.

    I'm curious - does the new Fedora actually ship with gcj and gij as 'Java'? That will be an interesting development to watch.

    1. Re:gcj is nice by k98sven · · Score: 5, Informative

      I'm curious - does the new Fedora actually ship with gcj and gij as 'Java'? That will be an interesting development to watch.

      Actually, yes. Red Hat has actually aliased 'java' to them in the default install for quite some time now.

      The more interesting thing is that FC4 will for the first time include natively-compiled Java packages. And not just any packages, but Eclipse and Apache Tomcat.

  12. Re:zerg by Anonymous Coward · · Score: 5, Insightful

    "Open" means not merely "affording unobstructed view", but also "unrestricted as to participants", "available for use", "obtainable", and "without restrictions".

    So, your objection is that the "open" in "open source" can be interpreted to mean merely available to be viewed, despite the other meanings of the word open. Which is no worse than the problem "free" has, in "free software", since gratis software is quite common.

    Here's the thing -- a random member of the public, hearing the word "free software", will immediately jump to the conclusion that it doesn't cost anything. Especially since the way the word is most often used in the media as "gratis", and since the Windows world is full of "freeware" -- most of it low quality software that supports the proposition "you get what you pay for".

    The same person will not have any idea what "open source" means, since he is unlikely to even know what source code is. Instead of being misinformed by the term, he will notice there is something here he doesn't understand.

    Which is better, from a public-education point of view? The term that immediately misleads your audience from what is meant, or the term that is a semantic nullity, in which you can pour meaning?

    Hint: they're less likely to listen if you tell them their first conclusion was wrong than if you don't have to tell them they were wrong.

  13. Distribute JRE with Linux distro by Ranx · · Score: 5, Insightful

    Until now, you are only allowed to distribute the JRE with Java software. This has always been an problem for creators of Linux distributions who like to include Java in their distribution.

    I seems Sun is gonna change their license at this point so every Linux distribution can distribute the JRE and support Java out of the box.

    This is probably the most important part of the license change and I hear nobody about it.

    --

    Me
  14. Write once, run somewhere by Macrat · · Score: 4, Funny

    Java is crossplatform. Runs on Windows 2000 AND Windows XP.

  15. Re:and how's that working out? by Xtifr · · Score: 4, Informative

    Think about the "fairly popular" bit.

    Ok. I'm thinking of perl. I'm thinking about various systems I've seen and worked on over the last couple of decades. I'm thinking "fairly popular" is a pretty serious understatement when talking about perl. Tcl/Tk? Maybe not so much, but I've still seen lots and lots of it running behind the scenes on all sorts of systems. Python? Ok, I haven't seen much enterprise penetration there. Yet. But it's pretty new, relatively speaking. And it's already got zope, plone and gnue, and looks like it's only going to be growing from there. (Anyway, I can hope, 'cause python sure seems to me to suck less than perl, java, or tcl.)

    Microsoft has cloned Java

    From what I've seen, they haven't merely cloned it, they've actually improved on it. I know, a blasphemous thing to say on /., but I really don't care.

    I think you have to explain your reasoning a bit here.

    Ok. I didn't think it was that tricky of a thought, but since you ask.... Kaffe and gcj are not forked from each other, they're forked (very loosely speaking) from the design of their not-open-source predecessor. Nobody is trying to fork kaffe or gcj - they're already open source, so there's no particular reason to fork them. And if java had been open source from the start, there never would have been any reason to create these competing projects.

    Ask anyone involved with either project (kaffe or gcj) if they would have even considered working on those projects if java had started as open source! If java had been open source there would be no kaffe or gjc! Period! I don't know how I can explain it any more clearly than that!

    And, for that matter, if java were open-sourced, even at this late date, I would expect to see kaffe vanish almost instantly, and I wouldn't place any bets on gcj's long-term prospects.

  16. GJC by lokedhs · · Score: 5, Informative
    Well, the compiler itself it quite good, and actually manages to create code that runs faster than Sun's VM on occations. Last I looked, however, the Sun VM is faster overall, since it can do stuff like inlining virtual methods, which a static compiler is unable to do.

    However, the biggest problem with the GNU compiler is the lack of compliant class libraries. The GNU Classpath project, which aims at creating an open source cleanroom implementation of the Sun class libraries are severely behind. My optimistic guesstimate would place them at being about 3 years from full 1.5 compatibility, at which time we're probably using the beta of 1.7.

    However, GNU Classpath has an easier job ahead of them than the Mono folks, which begs the question as to why they chose to go with the Microsoft technology in the first place.

  17. Re:Doesn't matter much by lokedhs · · Score: 4, Insightful
    Sun is in trouble because GCJ is getting so much better
    Why would an omproved GCJ put Sun in trouble? They're getting another Java implementation done for free == more Java == good.

    Now if you say they are afraid that if they BSD-license Java and then end up having the GCJ team dictating what Java is and is not, then yes. That is exactly what Sun means when they say there is a potential problem with forking.

  18. Re:and how's that working out? by JimDabell · · Score: 4, Interesting

    Now, lets look at some fairly popular languages that have been open-source since the beginning: perl, python, tcl, ruby. Gee, not one of them has shown the faintest sign of forking.

    Actually, there are at least six forks of Python:

    • CPython (the canonical version)
    • Jython (compiles to Java bytecode)
    • Psyco (JIT compilation of a sort)
    • Pypy (Python implemented in Python)
    • ActivePython (ActiveState's fork)
    • IronPython (compiles to .NET bytecode)

    In practice, it's not much of a problem, I don't see why people are so scared of forking.

  19. Re:and how's that working out? by mav[LAG] · · Score: 4, Interesting

    Psyco (JIT compilation of a sort)

    Psyco is just an extension module for CPython, not a fork. And you can add Pyrex to that list - a fork of CPython which adds C data types.

    --
    --- Hot Shot City is particularly good.
  20. Re:Java is open like C by k98sven · · Score: 4, Informative

    Java is a langauge and say it is prorietary is like saying C or C# are proprietary.

    Wrong. There are many implementations of C. There are three of C# (excluding the runtime).

    There is no need to reverse engineer anything since JavaDoc spells it all out for gou,

    No it doesn't. Sun's documentation is terrible in lots of places.

    and heck Sun provide the source code to the files too!

    Looking at Sun's sources if you want to make your own implementation is legal suicide.

    It bugs me that people perfer Mono'a C# over Java because it's "more free".

    It IS more free (see below).

    If they spent half the time coding a JVM that they've spent coding a Mono they'd be done years ago.

    Well, I would certainly like to to see more resources go towards free Java development, but the missing thing at the moment isn't a VM. There are lots of free JVMs (gcj,kaffe,jamvm,sablevm,jikesRVM,cacao and so on), some of which are quite mature.

    The missing part is the class library.

    You can use IBM's or Apple's or your own.

    These are not seperate implementations; They all use Sun's code, notably the class library. They are all covered by the same licensing restrictions set by Sun.

    Is there some big piece that I'm missing that would bother anyone besides GPL Zealots?

    Yes. For instance, what if you'd like to include the install of the runtime in your own installer? Can't do it.

    What if you do embedded work and would like to exclude the parts of the runtime you don't need in order to save space? Can't do it.

    What if you do find a bug in Sun's code, and include a work-around in your code? Bravo. You just violated Sun's license.

  21. You can't study Sun's code to learn from it by DaliborTopic · · Score: 5, Informative
    You can even study Sun's source code to learn general concepts for your own project as opposed to just "lifting" it.
    No you can't. Read the fine license, in particular the definition of Modifications in SCSL 2.3. Sun claims copyright on any code independently implementing any portion of the SCSL-licensed technology *if* you agree to their license. So please don't look at their code if you intend to contribute to free runtimes in the future. It's the same as Microsoft's Shared Source in a different wrapping. cheers, dalibor topic