Slashdot Mirror


Gosling on Opening Java

An anonymous reader writes "It sounds like James Gosling's nudging Sun closer and closer toward open-sourcing Java, as requested variously by IBM, Eric S. Raymond, and Richard Stallman, though not by JBoss's Marc Fleury. 'Developers value Java's cross platform interoperability and reliability,' Gosling writes, adding 'If we do something to make Java even more open-source than it is already, having safeguards to protect the developer community will be something we pay a lot of attention to.' Surprisingly, 'the creator of the Java programming language,' as Sun usually calls him, seems to be at odds on this issue with his own CEO, Scott McNealy. So, who should have custody of the child, the father...or the boss?"

21 of 453 comments (clear)

  1. Joint Custody by modifried · · Score: 5, Funny

    So, who should have custody of the child, the father...or the boss?

    Boss gets it on the weekends, father gets it during the week.

  2. kudos to gosling... by all+your+mwbassguy+a · · Score: 5, Funny

    ...we need java to be open source, so we can fix all the flaws he left in it. i mean, no goto?!

  3. Not such a big deal? by spellraiser · · Score: 5, Insightful

    Question from the artice:

    2. "Some have asked what IBM would get if Java were open-sourced: doesn't IBM already have the source?"

    Gosling's answer: Again yes, they do have the source. It's also true that anyone can get the source. The major restriction is that if folks want to redistrubute their changes, they have to pass the test suite. Which means that about the only thing that they could get from liberalization is to be able to skip testing.

    So it doesn't seem to be such a big issue after all. The source is already available, and all that is required to change it and redistribute it is to pass a standard suite of tests. Now, call me crazy, but I think that's not A Bad Thing. This restriction is what helps Java to be uniform and platform-independent.

    The benefits of making Java fully open source therefore seem overrated. Isn't the availablity of the source most important? Or perhaps I'm misunderstanding something ...

    --
    I hear there's rumors on the Slashdots
    1. Re:Not such a big deal? by Chalybeous · · Score: 5, Insightful

      The source is already available, and all that is required to change it and redistribute it is to pass a standard suite of tests.

      I agree with the parent. I'm not 100% clued up on such technical matters, but it seems to me that if Java were opensourced, suddenly every developer would implement their favourite functions and fixes, and it could risk losing its crossplatform compatibility.
      As it stands, I understand that Sun is (as the parent quotes) pretty liberal with its Java policy. Would it be worth creating potentially problematic issues by changing this policy to make Java opensource?
      It seems sensible, at least to me, to keep Java as it stands with regard to source changes, or we'll end up having Joe's Java, MSJava, Java for Nokia Mobile Phones, Java Reloaded... all built off the same core, but all implementing the same thing different ways, possibly with platform dependence or crosscompilation compatibility issues.
      I'm guessing that Sun's "standard suite of tests" for additions/changes to Java is designed to prevent this kind of branching, and is (in a multi-OS, infinite-diversity-of-hardware-combinations world) A Very Good Thing.

      Opinions, developer-type /.ers?

      --

      "It is dark. You are likely to be eaten by a grue." -- Zork

  4. Re:Well, legally... by generic-man · · Score: 5, Informative

    Copyright law defines something as a work for hire if it was produced by an individual at the request of a company. All rights to a work for hire are retained by the company who paid for the work to be created.

    Most of the employee contracts are supplemental to this definition. Many companies claim all rights to works created by employees without the explicit request of the company, as well.

    --
    For more information, click here.
  5. Why IBM Wants Open Sourced Java by njcoder · · Score: 5, Insightful
    Basically, they want to be able to have more control of it and Sun, or anyone else to have less.

    The reason for this is that IBM is the big money maker in the Java/J2EE Space. It is fighting strong competition from BEA and now JBoss, maybe soon to be Jonas and Geronimo.

    I think it's a credit to Sun that while they help build and manage the standards, they are not the big players providing the solutions that are being sold in that space.

    They would like to sell more of their Java middleware components and are working towards it but they are not dependant on that to make (lose) money. The fact that they haven't made changes to the specification to favor their products over any one else's products speaks volumes. They have said they were going to open the standards so that others may benefit and everyone will compete on other merits while offering a lot of common features. The market proves they've kept their word.

    I don't see IBM doing the same. Look at Mark Fluery's comments on how IBM forked a version of Axis back into a proprietary product. They did the same with other products they worked on. JetSpeed I believe is one.

    They get the open source developers to help build the application, help people get buy in, then they take the codebase in house and work on it from there making improvements and selling it for mucho dinero.

    That's not a bad thing, and is allowed under the license. The OS community has a good base to start building based on the initial investment by IBM. It's just something that isn't acknowledged by others.

    With the JCP, the new arrangements with the Apache Group, Java keeps getting more and more open (with a little 'o').

    Sun IS doing good things with Java and for the java developer community. They are making it easier for people to contribute back to java. Sun has a lot of things it needs to do in other areas but they really are doing a good job with Java. If it ain't broke why fix it?

    One of the reasons's Java/J2EE is doing so well is because of the competition in the marketplace. Different vendors bring different things to market. Some wind up becoming standards, some get coppied from others. It works out to the advantage of the user community who relies on these different technologies to do their jobs.

    Whether IBM will do this, we really don't know. They have more of an incentive to do this as JBoss is cutting into some of their installations. We do know that Sun isn't.

    1. Re:Why IBM Wants Open Sourced Java by psycho_tinman · · Score: 5, Insightful

      Ok, I'll bite. Sun is in the application server market, they have their own product. Is it one of the big names? No, it's not. Would they like that to change? I am certain they would. Just that it doesn't seem to be working too well at the moment. If you think for a moment that Sun isn't interested in controlling the direction of Java, google a bit for the rants people have written on how "heavy handed" and "autocratic" (I quote those terms because I don't completely agree) they can be in the JCP process.

      IBM already has the source, they have an implementation of the JDK, there is nothing to stop them from making competing products. The fact of the matter is that for IBM or anyone else, once you open source Java, they can fold it back into your own product, but nothing can prevent someone else from doing the same. We, as consumers, have the freedom to decide which implementation we wish to use. Do you honestly think that BEA and other application server makers won't scream blue murder ?

      I can't make a decision either way. On one hand, yes, there would be benefits to open sourcing Java. The community *could* get more involved in contributing extensions and patches to how Java works. The developer community surrounding Java being such, I think the pace of development would proceed at a much higher pace than Sun does. Another worrying factor is that if Sun has to fight for it's survival, it needs to make some tough decisions down the road. How many engineers will be pulled off a project which doesn't (strictly speaking) provide Sun with any revenue ? If Java development is left solely in the hands of a company who's survival is uncertain, then Java development will suffer as a result and I don't like seeing that happen.

      On the other hand, Sun hasn't done badly in it's role as "steward" of the directions in which Java goes.. They've (their marketing has) driven the Java brand relentlessly forward and I think the sheer size of the developer community is a good thing. I can't think of any reason why it would be advantageous for them to spend 8+ years promoting and developing the product, only to "give" it away to the masses. Even the Linux kernel has Linus at the helm. Who else can be trusted to take the helm of such a commercially valuable piece of intellectual property ? Who would resist the temptation to subvert it to their own ends?

      One final note to everyone who wants Java open sourced just so their favourite distro can start packaging it.. please, think a bit. Not all useful software is open sourced now, nor will it be in the foreseeable future. If it's your only reason for Sun to cast out a decade or more of research and development, it's not enough.

  6. Re:Well, legally... by Feren · · Score: 5, Insightful
    [Also, many employees have to sign a contract to say that anything they produce belongs to the company.]

    It's been standard operating procedure for years for most companies to have any employee who might even touch programming sign such a waiver/contract that gives all rights to the employer. Even some of the higher education systems (what we traditionally viewed as a bastion of free innovation because of projects like those put out by Berkely, etc) are taking on this practice. It's gotten to be a very dog-eat-dog world out there and everyone's looking to keep their cards close to the vest in hopes of gaining an edge over their competitors.

    On the other hand it's generally a smart move on the employer's part to weigh the advice of the creator when they're about to do something with the project that the creator feels strongly about. They may not agree and ultimately they may not act on the employee's advice, but it's good form and wise business practice to at least listen to his or her opinion. Every once in a while these folks have an idea what they're talking about and it makes the employee feel as if his input is valued, meaning the company is less likely to lose a valuable resource.

  7. Re:Please Mister the Boss... by vegetasaiyajin · · Score: 5, Informative

    I don't like programming in Java, but having a free Java (as in speech) would be really great !

    There is a very good free java implementaiton. GCJ (GNU Compiler for Java). The library lacks a few things (e.g. AWT/Swing), though, but other than that it is a great implementation. And it is not based on a JVM, but is a traditional ahead of time compiler, so the related disadvantages (as well as the advantages, if any) dissapear. It uses the same (or at least a very similar) object model as C++, so interoperation with it is much easier.

    Think about how it can be easy to include Java in a Linux Distro.
    Sun's Java JVM can be included in linux distributions without problems. Knoppix, SuSE and SoL include it. Don't know about others. The reason some distributions don't include Sun's Java implementation is because they don't want to include it.

    If Java becomes free, I can imagine a lot of thing. Why not bindings with GTK for example They already exist. Check Java-GNOME. It includes GTK and GNOME bindings for Java.
    There are also bindings for Qt and KDE.
    You can also use GTK via the SWT toolkit .
    Java is NOT a proprietary language (despite some ignorant people who say so), you can find many open source libraries for it, and there is at least a high quality free (as in speech) implementation of it.

    --

    My heart is pure, but make no mistake, it's pure evil
  8. Re:"Even more open-source than it is already"... by vegetasaiyajin · · Score: 5, Informative

    When you download java, you get the source files along with it. GPL is not the only license that makes something open source.
    Actually, the source code you get is for the standard library, not the JVM source code. That one is a separate download.

    --

    My heart is pure, but make no mistake, it's pure evil
  9. Response to Mono? by PCM2 · · Score: 5, Insightful

    I think -- and I'm really serious -- Sun should probably be looking at open sourcing Java as a response to Mono, if for no other reason.

    Miguel and Ximian took a look at Java and decided it didn't suit their needs, as far as developing rich desktop applications for Linux (e.g. Evolution). So rather than use Java, they decided it was actually better to implement the .Net environment themselves, from scratch. To me, that sounds like a fairly heavy indictment, and one that Sun should be looking into, if they're smart.

    Now you've got Mono humming right along, with the developers busy implementing two distinct stacks: One that's a Microsoft compatibility layer, for using all the stuff you might have written with Visual Studio, and another that's more Linux-oriented, with GNOME and GTK bindings, Linux printing architecture support, and so on -- the kind of things that people hope would come of an open-sourced Java.

    If Sun doesn't care about this, they've got more problems than I realized.

    --
    Breakfast served all day!
    1. Re:Response to Mono? by PCM2 · · Score: 5, Insightful

      True, true ... you could probably do a lot or even all of it with Java. But my point is that Miguel doesn't want to. He thinks Sun has failed to listen to the market as far as language features, changes to the VM, etc. While Microsoft, on the other hand, has developed what is essentially a Java competitor, only they've taken the opportunity to learn from all of Sun's mistakes or shortcomings. (Plus, .Net does some things that Java will never do, like multiple language support in the VM.)

      So here's Ximian, now part of Novell, pouring a significant amount of resources into developing tools that will make building complex desktop applications easier on Linux -- and they're not doing it with Java. I think that's significant, or at least Sun should see it as being significant.

      Because meanwhile, here's Sun promoting what's essentially a Linux distribution for the desktop, only they're branding it "Java." It's not the Sun Linux Desktop, it's the Java Desktop. One is led to ask: Is that supposed to be some kind of hint? What are we led to infer about Sun's Linux position, based on that? For a company that's suddenly all about promoting Linux on the desktop, just what has Sun done for the Linux desktop application developer lately? What do they intend to do?

      I guess it all comes down to Sun's perpetually half-assed Linux strategy. Do they have a Linux strategy, or don't they? Is Linux on the desktop important or isn't it? They can call their Linux desktop "Java" all they want, but at the end of the day, if the best tools for developing desktop applications for Linux are going to come from Mono... well, good luck, Sun.

      So that's why open-sourcing Java could be a good move for them. Even if it doesn't really change anything much about the way Java works in the real world, at least it could send some sort of message to the growing community of developers who are interested in Linux -- and open source in general -- that Sun is finally ready to either shit or get off the pot.

      As far as the WinForms stuff, Miguel doesn't really advocate that approach over any other. Mono is developing the more Linux-oriented stack precisely to suit the people who have no interest in WinForms development. But, for obvious reasons, a lot of the developers working on Mono are Windows developers. And a lot of the real-world code written in C#, for the foreseeable future, is going to be written on Windows, and a lot of those developers are going to use the tools available to them, including WinForms. So supporting that style of development with Mono is a good thing, as far as growing the installed base of Mono-compatible developers. But even if, at some point in the future, it became problematic, infeasible, or even impossible for Mono to keep up with what Microsoft is doing with .Net, Ximian would still continue to use Mono and the core .Net framework to do their development. They just wouldn't use WinForms (or whatever its successor might be).

      --
      Breakfast served all day!
  10. "Java" is a standard, not a product. by Anonymous Coward · · Score: 5, Interesting

    Anyone is free to make their own implementation of a Java framework. There's an (outdated) list here of alternative implementations (and possibly more here as well).

    For example, SableVM and Joeq are the first two that I found on Sourceforge (and there are several more).

    So it's not really a question of "open sourcing Java" - because there are already open source implementations of Java (and a few commercial ones as well). It would be a question of Sun opening up their reference implementation of Java.

    So the main advantage of opening up their reference implementation would be to focus the software community's efforts more on one Java implementation and to stop the fragmentation. People would still be free to develop their own Java compatible VM's & compilers, but it would provide less of an incentive for them to do that if there's one central, relatively community-oriented distribution.

  11. Re:Why open Java? by JustinXB · · Score: 5, Insightful
    I don't believe bringing Java under an open source license would advance it any way, shape, or form.

    Yes, there be ports to other platforms (I'd love to see Java on *BSD). Yes, there'd be performance patches and probably security patches. But with this comes the down side to all open source projects: Fragmentation.

    One of Javas goals is to provide compile-once-run-anywhere. At the moment, it does a decent job of doing this. Other platforms do this better (Read: Inferno) but Java is trying. With fragmentation, compile-once-run-anywhere disappears and would be impossible to bring back.

    Let Sun has Solaris and Java. Stop trying to force them to open source their software. They already are the second largest contributor of open source software, the first being Berkeley.

  12. RTFA, my friend by melquiades · · Score: 5, Insightful

    Stallman is less open minded than Java is open source.

    OK, here's the deal with the Java source code: You can get it. You can modify it. You can redistribute it.

    BUT...

    It has to pass Sun's compatibility tests.

    OK, so yes, I can see how an ideologue like RMS would lump Sun's Java implementation into the same category as closed-source software. But really, you do have quite a lot of freedom with Java. It's just that Sun (and the Java community, myself included) are very concerned about compability: cross-platform dependability is one of Java's must important features, and forking is a big concern. (Sun was already bitten once by Microsoft making an incompatible "Java" and basically wreaking havoc on the client Java market for years.) Just look at all the crap that goes into the typical C/C++ project's ./configure.sh to see why Sun is so anal about this!

    Gosling explains this well in the article (for those who actually read it...).

    On top of all that, Java != Sun's implementation of Java. Everything in Java is determined by a spec -- the language, the runtime, the libraries, everything. If Sun's requirement that you pass their test suite is too restrictive, just write your own damn implementation of the specs. Yes, I know that's a lot of work. Boo hoo hoo.

    JessLeah is totally wrong on this point: the reason that the GNU Java projects are not "Java proper" is not that Sun didn't make them, but that they are immature and don't completely implement that Java spec. I think this may help explain why RMS is so sore (and unfair) on this point: GNU Java kind of sucks, even after many years of work, his "free software" baby isn't winning in the Java world, and nobody really cares except GNU ... so there's a bit of sour grapes.

  13. A good thing by Earlybird · · Score: 5, Insightful
    Regardless of the motives of third parties who are pushing for the opening of Java, such as IBM, making Java truly free is a good thing.

    Opening up a development process tends to bring more brains to the table, and that exposure, history has taught us, tends up to open the technology up in ways we had not imagined before.

    Consider the flurry of activity surrounding Python after its internal reorganization around the time of version 1.6 -- modified license, python-dev list, PEP system, more lenience towards experimental and backwards-compatibility-breaking changes -- after which we have fantastic new language features, as well as strange, clever new techology such as Stackless Python, Pyrex, Psyco, PyPy etc.

    Or, indeed, consider Linux. We all know what happened with that little insignificant grass-roots project. If Linux had been closed off around version 2.0, would we have an O(1) scheduler today, or configurable swappiness, or hyperthreading, or pre-emptible kernel?

    Regardless of the quality of Sun's engineers, Sun's hold on the Java is constraining its growth. For example, what if I have a wild new idea to make the JVM's synchronization locks lightweight enough to have barely any overhead at all, thus improving the speed of applications? There's a large barrier to incorporating that kind of change. With something like Python you can grab the CVS sources and start hacking. Just the existence of such a point of entry is enough to inspire curious visitors.

    Does Java need hacking? Sure. While my main point is that Sun possesses a finite number of brains -- what wonderful ideas and inventions aren't happening at Sun? -- there are specific areas that will benefit from the attention of outside hackers. JVM performance is still lacking, for one. The bytecode instruction set is still to specific to Java-the-language, as opposed to Java-the-platform, leaving potential other language platforms with much to desire.

    Furthermore, anyone who has struggled with a bug in Sun's Java implementation knows that the process to get a bug fixed is often arduous, sometimes impossible. Last I checked there were serious problems reported years ago and not yet fixed.

    Any language needs to develop in order to catch up with the times. With Java, it has been going rather slowly. With 1.5, Java is, in many ways, playing catch-up with C#. Other technologies spend much time in the pipeline before they are ratified and implemented. JDO took years. Support for "web services" is lacking, at best.

    To me it seems that Sun does not have the resources to drive Java development. Witness Eclipse, which did what Sun never could do: produce a solid IDE. Eclipse is a multiplatform program, yet appears native on every platform it runs on; and supports a myriad of modern technologies, such as background compilation, refactoring, version control, remote file systems, and profiling; and is also a teeming breeding ground for experimental technology, such as AOP, fine-grained source-level version control, graphical editng, and quality control. Eclipse built this house in record time. To see what Sun did, over a considerably longer period of time, check out the ancient, outdated monster that that is Netbeans/Forte.

    In summary, Java is better off in the hands of the community, not Sun alone.

  14. Re:Why open Java? by Ogerman · · Score: 5, Interesting

    I think that there is exactly one person who thinks that Java should be GPLd.

    As opposed to what other license? (L)GPL would probably be the best choice for Sun because it ensures that people cannot create proprietary forks (Microsoft anyone?). BSD or similar less freedom-guaranteeing licenses would be an awful choice. And if you think Java shouldn't be open source at all, well.. you're just an idiot. It's going to happen whether Sun wants it to or not. This whole discussion is only a question of whether they remain a player.

  15. #define PREPROCESSOR "No!" by gidds · · Score: 5, Insightful
    What's wrong with having #ifdef, #define or some other kind of compile directive?

    Two main things.

    The generic any-language answer is that a pre-processor is awkward, fragile, and ugly. It's parsed, processed, and structured differently from the code -- it has different tokens and different semantics; it can lead to code that's a nightmare to maintain, and makes automatic source processing much harder.

    And the Java-specific answer is that, as the parent says about 'goto', there are better ways to do any of the things you might want a preprocessor for:

    • Probably the main one is to work around different compilers, OSs, architectures, and platforms. But Java is one platform; if you need to do something that different on each underlying OS or system, then you're doing something wrong!
    • Another reason is isolation of constants and other singletons (is that what you mean by your comment about 'login'?); but Java has better ways to handle these (class constants, static finals, singletons, &c).
    • A third reason is optimisation; but that's the sort of thing that a dynamic compiler can probably decide better than you can, especially given that your code may run on different JVMs with different characteristics. (Some 'optimisations' made to early Java code actually slow it down when run on more recent dynamic JVMs.)
    • A fourth is conditional compilation for assertions or other development aids; again, you can do this more neatly with a simple 'if' statement -- and a decent compiler or runtime will optimise it away when not used.
    In short, there are no reasons for a preprocessor in Java, and lots of reasons against.
    --

    Ceterum censeo subscriptionem esse delendam.

  16. Re:Well, legally... by xero314 · · Score: 5, Informative
    Contrary to popular belief there does not need to a contract in place for most works create by employees, at the request of an employer. Here is a quote from the U.S. Copyright Office, which does cover Sun's Java Copyrights.

    • In the case of works made for hire, the employer and not the employee is considered to be the author. Section 101 of the copyright law defines a "work made for hire" as:
    • * (1) a work prepared by an employee within the scope of his or her employment;

    To read more go to http://www.copyright.gov/
  17. Re:Why open Java? by Quattro+Vezina · · Score: 5, Insightful

    Of course, you're assuming it will be forked.

    KDE and GNOME have never been forked.

    GCC was forked once, as egcs, and the forks were later rejoined. It was also forked because GCC had serious problems--the fork was rejoined when GCC was effectively halted and egcs became the new official GCC.

    XFree86 was forked once, and only very recently. There was also a damn good reason to start a fork--this wasn't something done on a whim.

    --
    I support the Center for Consumer Freedom
  18. Re:Why open Java? by evilWurst · · Score: 5, Insightful

    "Open Source fragmentation is a myth largely propagated a certain proprietary vendor's FUD campaign"

    Yes. A certain vendor that did itself try to fork Java, and now has a competing product that is extremely similar to Java. If Java went GPL, this company would not hesitate to muck around with it, just because they can, and the company has a history of doing anything it can to 'win'.

    "Successful open source projects simply do not fork."

    Sometimes yes, sometimes no. I would not expect Java to fork in the classic sense of the word (except the version that one particular company would make), but look at Linux as a whole; multiple distros out there, by companies, by individuals, by governments. That kind of "forking" alone would make it more difficult for WORA with Java; it'd increase the amount of tweaking neccessary. Every distro tweaking the JVM a little differently than the others... code then running great on some and flakey on others... well, maybe that's already true. Why make it worse, though?

    And what about BSD? I'd call that successful, and it has most definitely forked. Even its forks have forked. BSD is totally forked! :) I could see the same easily happening with Java; different bright folks wanting to take it in different directions, without a leader, ending up disagreeing too strongly and going it alone. Would Sun and IBM and Microsoft and Oracle and so on always agree on the next level to take Java to? I doubt that.

    For the record, I'm undecided about the opening-up of Java. I like the language, and it's the one I use the most. I'm not as against the idea as I may sound in this post.