The Source for Java Technology Collaboration
User: Password:



John O'Conner

John O'Conner's Blog

Open source Java? No Way!

Posted by joconner on July 12, 2004 at 02:38 PM | Comments (26)

I don't doubt the usefulness of open source projects. Several valuable projects exist. One of my favorites at the moment is JXTA. Using this project in my own applications is quite rewarding. However, I can't say that it is as well documented as I'd like.

Lack of documentation is a major weakness in an otherwise great product. Of course, JXTA is not alone with this particular shortcoming. There are wikis and faqs, but they all seem inadequate. Nothing beats the well carved, carefully constructed instructions and tutorials of professionally written documentation. Unfortunately, open-source often means poor documentation. It's not poor because of lack of energy or good intentions. My opinion is that most open-source documentation lacks the power and backing of money, the only resource that ultimately matters. I mean, other than a few developers sponsored at major companies like IBM, Sun, RedHat, and a couple others, what software engineers get paid to do the work on open source? Unpaid developers intent on hacking out that latest feature rarely put as much effort into documentation. Will all those free bugfixes or features that developers try to push back into the platform be documented sufficiently? Would Sun still be responsible for maintaining Java? If Sun just manages to satisify its licensees now, will it still be able to do so if it regularly gets thousands of enhancements and new features from open source developers? Can Sun manage that? Can it manage just the documentation even?

Yes, there are lots of factors to consider when thinking about open source Java. I'm just picking one of my nits to harp on. With that in mind, I'm hesitant to support any effort to make Java an open source project. Open source means what? Will the platform be placed up on Sourceforge or elsewhere where others can add features willy-nilly? And will those new features be documented sufficiently to make them useful to others? My complaint against open source, free software is simple...poor documentation. Java documentation has its own problems. Handing Java over to the open source community might compound them...and that's just one of the problems I don't want. Open source Java? No Way!


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Reply
    If every was forking the JDL to patch their pet peeve bugs, we might lose our portability and that is pretty high up there on the list of Good Things about Java.

    Posted by: zgrose on July 12, 2004 at 04:01 PM

  • Reply
    Currently Java is only Portable for those platforms
    supported by Sun SDK, i work on Linux/PPC, and
    i have to use IBM JDK (Wich is not fully compatible
    and doesn't support awt nor swing).

    If Java goes free, independent teams of people
    (maybe myself) will get the job of porting JDK done!
    I could get Java support on my browser!!!!! :-O

    What if there are some non-Sun forks?
    I dont see nothing bad on that, just more options
    to pick, Sun will be still the main JDK fork.

    Posted by: niebla on July 12, 2004 at 04:45 PM

  • bogus arguments
    Currently Java is only Portable for those platforms
    supported by Sun SDK, i work on Linux/PPC, and
    i have to use IBM JDK (Wich is not fully compatible
    and doesn't support awt nor swing).

    Incorrect. Some versions of the IBM JDK may not support graphical APIs but those are the ones intended for use on computers without graphical hardware.
    There's quite a few JVMs out there that are non-Sun yet fully compliant.

    If Java goes free, independent teams of people
    (maybe myself) will get the job of porting JDK done!
    I could get Java support on my browser!!!!! :-O

    That's a bogus argument and you know it (or should).
    Anyone can write a JVM, the specifications are quite available.
    Only restriction is that to release it and call it Java you have to have it picked apart for compatibility by Sun.
    Many have gone before you in this and the system works.

    What if there are some non-Sun forks?
    I dont see nothing bad on that, just more options
    to pick, Sun will be still the main JDK fork.

    The loss of compatibility between implementations will be the death of Java.
    Figure a return to the OS wars of the 1980s where anyone writing software for open sales (rather than custom software for one customer using a single platform) had to release a dozen versions just to cover the major operating systems.
    Java has finally put an end to that and now you (and those who want Java to become roadkill) want to bring it back...

    Posted by: jwenting on July 12, 2004 at 07:32 PM

  • Reply
    The problem with open sourcing Java is that anyone can release his own version and call it Java, leading to a million JVMs that are imcompatible between one another.

    Return of the OS wars is imminent, think of the time we had to write the same code for a dozen operating systems using a dozen different compilers all using slightly different (but mutually exclusive) implementations of the same APIs. Now multiply that by a thousand.

    That's what we're looking at if Java is open sourced and we loose the control Sun has over what can and cannot be called Java.

    Posted by: jwenting on July 12, 2004 at 07:36 PM

  • Reply
    That is simply not true. Trademark has nothing to do with who has CVS access. It can be done so there could be millions of different flavours of CVS floating around, bundled with apps, but ONLY ONE could be called Java. Just like now.

    You have strange problem nowdays, on serverside you have to be extremely carefull with 20+ containers to remain portable, J2ME is a complete mess with dozens of different implementations (which was intentional, Sun gave open hands and control to mobile companies to gain some serious market share), and on desktop you have MSVM 1.1 preinstaled on 70%+ machines (if you go for a volume), or Sun's 1.4+ on 60% on new machines (if you go for a features) or IBM download, or Blackdown for faster Linux implementation, or Apple's VM (1.4 withouth 2D acceleration) if you go for Mac. You could even target .Net with J#. Every single one of them has some custom code and it's own quirks. Most of the serious apps even tune for specific version (e.g. 1.4.2_02) and bundle damn thing within app itself. I hava 15 + VM's on my sistem.

    Preinstaled Java is great, if it is same version everywhere. If people want to go embeded/bundled route, with app tuned for private VM (as they do now, see Thinkfree, EIOffice or any other big serious app), OS Java would have plenty advandages (you could bundle only parts of rt.jar that you need, or tune other parts to suite your needs, and no other app would be even aware of it' existance).

    And when the body that is governing OS Java is ready, it could release Java2SE 7.0 or whatever, spread the word, make it so good that every hardware/OS vendor bundles it, and all people that care about portability/standards could target that release not carring about the rest, less popular/private flavours.

    Posted by: selendic1 on July 12, 2004 at 08:06 PM

  • Reply
    "Open source" doesn't mean everyone on the internet has write access to the source repository. It means if I have a problem with the way HTMLEditorKit is implemented, I can use my own modified version and distribute it with my application. (I can also submit it to Sun in the meantime, of course.)

    The Linux kernel is open-source, and the people who control that are very picky about which patches go in and which ones don't. I don't see how open-sourcing the JDK and JVM would be any different; I'm sure Sun will be very picky.

    But for those of us who don't want to wait for Sun for every little thing, we can use those not-yet-accepted patches to our own projects. Swing has lots of bugs, and waiting years for the next JDK release isn't always desirable.

    I don't see why you think Sun would stop writing documentation for the JDK if its source code were re-licensed. Those two things just aren't related, as far as I can tell. I don't see why Sun would stop doing anything it does now; the only change would be that people could now use the JDK and JVM source code the way they want to use it.

    Posted by: keithkml on July 12, 2004 at 10:04 PM

  • RE: Reply
    jwenting: I suggest you read a couple more open-sourcing-java threads before saying things that have little bearing on reality. You only make yourself look foolish.

    Posted by: zander on July 12, 2004 at 10:04 PM

  • bogus arguments
    "That's a bogus argument and you know it"

    No its not; you seem to think that adjusting Suns JVM to work on another is just as much work as writing the whole thing from scratch.

    Posted by: zander on July 12, 2004 at 10:06 PM

  • bogus arguments
    If you were to do any porting, you'd have to pass the TCK to call it Java.

    The fact you even posted this shows why Java should not be open source.

    Posted by: rabbe on July 12, 2004 at 10:15 PM

  • Java Open Source FAQ
    I don't think that documentation would suffer
    if Java would be released under some Open Source
    license;
    My idea of Open Sourcing the Java platform would
    be to have Suns Java development team remain
    in place and continue their work; the difference would be that outside developers could contribute
    patches for some time (that can get applied or not
    by the Sun developers); if some developer seems particularly reliable and capable,
    he/she can get CVS write access; of course,
    this would only happen after a certain amount
    of time to make sure of the integrity;
    A system like this is already in place at OpenOffice.org (at least when I checked last)
    ... which. Surprise... is also a Sun Open Source
    effort.
    To your documentation concern: if the Sun
    developers get to choose what to commit and
    who can commit, they can certainly make sure
    that documentation is OK (in the interest of the
    whole Java codebase);

    Please refer to my Open Source Java FAQ
    for further fears and doubts you might
    have; I think I can adress all/most of them:
    http://jroller.com/page/murphee/20040426

    murphee

    Posted by: murphee on July 12, 2004 at 10:50 PM

  • bogus arguments
    No, that just shows why an open source release would NOT fragment "Java"... because to call it "Java" you would have to pass the TCK.

    This just goes to show that the base J2SE implementation could easily be open-sourced without endangered the Java brand. Last time I checked, no open source licenses granted free access to a trademark.

    Posted by: ghelmling on July 12, 2004 at 11:08 PM

  • Community Property may be the answer
    Caldera and SCO used to be great companies, but then times changed and they were taken over by patent lawyers.

    When I made my living off of C and C++ I never had to worry that a single company's situation could torpedo my career. Java is now in the same camp as Delphi, Visual Basic, and Power Builder.

    At the recent NoStuffJustFluff symposium in Austin, Bruce Tate playfully suggested that we pool our resources and buy Java. That may not be such a bad idea. It may be time for a Java Foundation or Trust.

    Posted by: johnreynolds on July 12, 2004 at 11:19 PM

  • bogus arguments
    If it were open source there would be no TCK to pass and everyone would be capable of releasing anything under the name Java.

    This is exactly what must be zealously guarded against as such practice would destroy the platform's integrity.

    There's enough trouble as is with different versions of OS libraries not working together, if the compilers and runtimes were to go the same way it would be certain disaster.

    Posted by: jwenting on July 13, 2004 at 04:00 AM

  • So; non opensource projects have beter docs?
    You say that one particular open source project has not-so-good docs, concluding that this is an argument against open source means all closed source projects magically have good docs.

    While I could naturally point you to very well documented Open source projects; I really feel that you need to prove a bit more that companies really create such great documentation.

    Java is created, what, 7 years ago? Looking at the Sun and (for example) the IBM websites I see IBM having more tutorials, writeups and in-depth articles about Java then Sun does.
    Are you claiming that if Java were open source IBM would have published less articles/tutorials/etc ?

    I'd like you to go into this since at the moment your points are just not supported by argument at all..

    Posted by: zander on July 13, 2004 at 04:46 AM

  • Ready, Set, Go
    I interpreted Zander's interpretation of your argument more like this:
    1) There exists at least one OS project with bad documentation, therefore all OS projects have bad documentation.

    Which is a fallacy on your part if accurate.


    Let me explain why:

    OS projects and proprietary projects are both subsets of 'projects'.

    BadlyDocumentedProjects is a subset of projects, as is WellDocumentedProjects.

    However, all the subsets of projects intersect each other, with the exceptions of OpenSourceProjects and ProprietaryProjects (which are mutually exclusive) and BadlyDocumentedProjects and WellDocumentedProjects (also mutually exclusive).

    Therefore the existence of one instance where a member of OpenSourceProjects is also a member of BadlyDocumentedProjects cannot be taken as evidence that *all* members of OpenSourceProjects are also members of BadlyDocumentedProjects.

    If the forum supported graphics, you'd get a Venn diagram... ;-)


    "I think Sun is doing a good job with Java. Java is "open" in that the JCP provides new features, etc via a somewhat rigorous process that produces decent documentation and a standard platform across varying implementations. "
    This point is a bit of a red herring. I also think Sun is doing a good job, by protecting the Trademark through legal threats and allowing the JCP to set standards. However that does not mean Sun couldn't do a *better* job, by harnessing the now very well documented potential benefits of Libre licensing for the reference implementation.

    Posted by: philwebster on July 13, 2004 at 05:10 AM

  • bogus arguments
    "If it were open source there would be no TCK to pass and everyone would be capable of releasing anything under the name Java."

    That doesn't make any sense. Why would Sun remove the TCK and requirements to pass it, because their source code is released under a more free license? Those two things are simply not related, no matter how you look at them.

    Posted by: keithkml on July 13, 2004 at 05:28 AM

  • Java runtime for $$$ ?
    Why non-open source Java? I think the reason given here (documentation) is a joke, a sad joke.
    Sun employees may fear for their future: Java technologies are the only widely recognized Sun products nowadays. And they are basically free (beer).
    By not open-sourcing Java, Sun keeps a future possibility to charge for it. So what to do if Sun makes the next version of J2SE 5.0 release 1.52_3 with a fee for each deployment?
    There are now other good open sources languages for a little application developer like me, and I seriously consider Ruby and-or C# / Gnome. Am I the only one?

    Posted by: fgoret on July 13, 2004 at 07:22 AM

  • In my defense...
    You claim that my assertion is this:
    1) open source --> bad documentation

    Assuming this is true, one could then say this:
    2) good docs --> closed source projects

    Statement #2 does not mean this:
    3) closed source --> good docs

    No, nothing I claimed suggests that IBM would publish fewer articles if Java were open source. In fact, I made the statement that companies like IBM and Sun contribute developers to open source projects.

    While I can't fairly make claim #1 (you, I, and others can no doubt find many exceptions), my experience with a few open source projects is that they have poor documentation. I then made a generalized statement/worry that perhaps Java would suffer similarly. Jumping from that statement, I simply don't want to take the chance...the chance that Java would suffer the same fate as some other open source projects.

    I think Sun is doing a good job with Java. Java is "open" in that the JCP provides new features, etc via a somewhat rigorous process that produces decent documentation and a standard platform across varying implementations.

    Posted by: joconner on July 13, 2004 at 10:09 AM

  • Open Source... definition?
    Do you even know what Open Source means? I suspect that you do not.

    In no way does open sourcing the VM imply that the TCK would have to be abolished. You have been told this repeatedly. Why aren't you listening?

    Posted by: philwebster on July 13, 2004 at 11:54 AM

  • re: Open source Java? No Way!
    I don't think SUN's Java APIs are well documented at all. Except of the core packages that are well documented in books (Chan, Lee, Kramer et.al.).
    Most javadoc I've seen 8open source, commercial) reads like method doSomeThing() does something. Surprisingly ! Or they just point you to some code samples.
    If you need some good docu you have to buy books (at least $50) . IMHO that's a new way to get some money for the work they've done.
    So open sourcing Java will not result in better or worse API doc, but in better code.

    Posted by: gernot on July 13, 2004 at 05:13 PM

  • re: Open source Java? No Way!
    I fully agree. The JavaDocs of the API are ocassionally inadequate. I think Sun tries to turn them into specifications, ocassionally, but still hasn't managed to specify all of java.io properly, for example [1] :(

    I don't think there is an inherent connection between source code license and quality of a product. But free sowftare has the advantage that the barrier of entry for the capable is much lower than for closed source code. So if people think the documentation is sub-par in poen source, they can imrpve it. If people think the documentation is sub-par in closed source, they can do nothing.

    I'd rather be in the position to do something :)

    cheers,
    dalibor topic

    [1] StreamTokenizer is my all time favourite, since I revamped the implementation in Kaffe to follow the specs. This class was in 1.0, i.e it is at least 7 years old, and the API specification of nextToken() is still unuseable. There has been a little bit of documentation in JLS 1st Ed, but that was removed in the following. Thanks, closed source documentation writers, awesome job, there ;)

    Posted by: robilad on July 13, 2004 at 09:28 PM

  • documentation
    If you remember JXTA started as an internal closed project at SUn.. so that trend of bad documentation started with SUn..

    But there is alos bad examples of documentation in commercial projects as well..

    Probably the better poitn woudl have been we need to move away from Developer centered or focused documentation to focus on end user documentation..

    Posted by: shareme on July 13, 2004 at 09:58 PM

  • Yeah, as if Sun's i18n team produced perfect API specs ;)
    There is no spec of the contraints for roll(...) methods in GregorianCalendar up to 1.4.2. There is a blurb in Chen's books, but why is that not in the spec? Has it changed since Chen's books? Noone can tell :( Quick, just from the JavaDocs, pray, tell, which fields in GregorianCalendar can be expected to be variant, and which are invariant? And so on, I could ramble for a while about the quality of the GregorianCalendar/Calendar specs.

    As it is, GregorianCalendar docs are inadequate. I may be putting the blame on the wrong team here, since I don't know if the i18n guys at sun get to do Calendars as well.

    In my opinion, asserting that open source docs are automatically worse, is plain wrong. You can, as the GregorianCalendar example shows, in commercial code end up with a nice, long set of partially useless documentation, instead.

    closed source license =/> quality. :)

    cheers,
    dalibor topic

    Posted by: robilad on July 14, 2004 at 12:21 AM

  • Re: In my defense...
    Ok,

    you write:
    "nothing I claimed suggests that IBM would publish fewer articles if Java were open source."
    and:
    "I then made a generalized statement/worry that perhaps Java would suffer [from bad docu]"

    Thanks; I think I understand your fears here.
    I created and maintain an open source project for some years now; so I know what it takes to become a successful open source project.
    The thing is; if Sun publishes a project everyone downloads and tries it; the name Sun is a huge gain for actually getting people to use the project. An independent open source group needs to really provide a better solution in order for people to really use it, documentation is a huge part of the 'getting a foot in the door' feeling.

    The JXTA project is an excellent example of an open source project that gained popularity DISPITE its bad documentation, simply because its from Sun.
    Projects like: http://jdom.org/docs/apidocs/index.html http://ant.apache.org/manual/index.html and many others have good docs. They would not have become successfull if they did not.

    If you look at the tools market from a supply-demand situation (where in Java land there really is more supply then demand) you should conclude that your fears are unfounded.
    Just like IBM would still be writing tutorials for Java if it were open source, so will many others for any successfull project.

    Posted by: zander on July 14, 2004 at 05:02 AM

  • Yeah, as if Sun's i18n team produced perfect API specs ;)
    Dalibor wrote: "I may be putting the blame on the wrong team here"

    Well, i'm pretty sure this is i18n; search for the docs on how to make the FileChooser translated into a language that is not currently packaged with the JRE.

    I never found it, but I'm pretty sure this is an option. Somehow..

    Posted by: zander on July 14, 2004 at 05:07 AM

  • Open Source Java? The only way !
    If Sun continue to refuse to make Java open source there will only be one outcome - .Net will rule the roost. With the Mono project reaching version 1.0 and gathering momentum as well as Microsoft doing their usual marketing job, .Net adoption is out-stripping that of Java in a big way.

    How do you get back in the game if you're Sun ? Open source the great technology that is Java in order to unleash the potential of the open source community.

    There is no need for Sun to lose control of the beast because all they have to do is take a leaf out of the Linux kernel development book and run things as efficiently as that project runs. You don't hear Linus Torvalds bleating about lack of control and kernel forks all over the place.

    If Sun is serious about the future prospects of Java it would be a grave miscalculation not to take the open source road.

    Posted by: celldee on July 29, 2004 at 04:42 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds