Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Java Programming

Gosling on Opening Java 453

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

Gosling on Opening Java

Comments Filter:
  • Well, legally... (Score:4, Insightful)

    by Anonymous Coward on Saturday May 01, 2004 @06:21PM (#9030239)
    The boss. They paid him for his work, so it is there's to do with as they please.
  • by spellraiser ( 764337 ) on Saturday May 01, 2004 @06:29PM (#9030293) Journal

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

  • by ItMustBeEsoteric ( 732632 ) <ryangilbert AT gmail DOT com> on Saturday May 01, 2004 @06:30PM (#9030297)
    "If we do something to make Java even more open-source than it is already"

    Is it even possible for something to be partially open source? As far as I've always been concerned, something either is or it is not.

    I know someone will definitely say "well, X part of Y OS is open source, while the OS isn't" but Java isn't an OS. Even in that case, let's use OS X. Are its Darwin portions open source? Well, yeah. I doubt we'll argue that? Will any /.-er in their right mind say OS X is open source?

    Hell no. And I love my Macs.
  • by Curtman ( 556920 ) on Saturday May 01, 2004 @06:32PM (#9030315)
    This sounds a lot like pkware's strategy with DCL [pkware.com]. They actually tried to tell me I should use it because its patented. I told them it's surprising that we'd even consider using it in spite of it being patented.
  • by malakhi ( 318136 ) on Saturday May 01, 2004 @06:36PM (#9030339) Homepage
    goto statements in Java are virtually useless. There are other, better ways to accomplish anything a goto statement would be used for in Java (break and continue come to mind Remember, Java is not C or C++. It has it's own way of doing things. That's why we use Java. If we tried to "fix" everything C/C++ developers thought was "wrong" with it, we'd just have C all over again.

    Thanks, but no thanks. I'll stick with my "evil" non-GPL Java.
  • by Chalybeous ( 728116 ) <chalybeous@nOsPAm.yahoo.co.uk> on Saturday May 01, 2004 @06:38PM (#9030354) Homepage Journal
    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?
  • by creidieki ( 110659 ) on Saturday May 01, 2004 @06:42PM (#9030380) Journal
    I'm very confused by both the article from Gosling and the discussion here.

    "Java" is a programming language, right? Programming langagues doesn't have source code, they have specifications. Are they talking about open-sourcing a specific compiler for Java? Or are they talking about releasing or loosening license restrictions on the specifications for the language?
  • by njcoder ( 657816 ) on Saturday May 01, 2004 @06:45PM (#9030397)
    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.

  • The boss (Score:5, Insightful)

    by Omega1045 ( 584264 ) on Saturday May 01, 2004 @06:45PM (#9030400)
    So, who should have custody of the child, the father...or the boss?

    I think making Java open source would be very cool. But I am sure all of the developer who invented Java were paid well for their time, and Sun should make the decision.

  • Re:So... (Score:5, Insightful)

    by Rosco P. Coltrane ( 209368 ) on Saturday May 01, 2004 @06:45PM (#9030409)
    What kind of idiot would confuse a freakin' computer program with a child?

    A computer program is much like a child : when you release the first versions, it keeps on crapping out and you're constantly after it to fix it, then it slowly grows and grows and costs more and more money to maintain, then it's big enough that it becomes an ugly unmanageable thing that keeps on making unreasonable demands on the system, then when it finally matures, it leaves the development team and goes in maintenance mode until it's end-of-lifed.
  • by blackdragon7777 ( 720994 ) on Saturday May 01, 2004 @06:47PM (#9030423)
    When you download java, you get the source files along with it. GPL is not the only license that makes something open source.
  • by David Hume ( 200499 ) on Saturday May 01, 2004 @06:48PM (#9030424) Homepage

    What's important is that they open-source it before Sun tanks, or before some nasty company takes control of it. In short, they ought to do like Netscape did, and I'm sure even McNealy would rather do that than any other alternative...


    Well, at least as long as they don't admit to doing so publicly. :) Can you say, "Shareholder lawsuit for waste of, or giving away, corporate assets?" I knew you could. :)

    Yes, your Honor, we decided to essentially give away our valuable intellectual property for no consideration (i.e., nothing in return) before some "nasty company" could either: (a) buy the property; or (b) pay more for Sun's stock based on Sun's owndership of the property. NO, we wouldn't want that! Not if it meant Microsoft might get the property. Similarly, we couldn't possibly take the risk that MS would buy the asset out of bankruptcy, thereby enriching our creditors and/or stockholders.

  • by Feren ( 97175 ) on Saturday May 01, 2004 @06:52PM (#9030446)
    [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.

  • by njcoder ( 657816 ) on Saturday May 01, 2004 @06:57PM (#9030470)
    He says "if done carefully". Open sourcing Java isn't just a simple matter of replacing the license.txt file. There is a lot at stake and you don't want this to be the thing that kills Java.

    Of course if it doess all the OS zealots will say "see they did it too late".

    I don't see Gosling's comments as as strong a call to open source java as other's do.

    He's saying there could be a good thing.

    The rest of Sun thing it could be a good thing too that's why they were looking into it. It's neither an easy decision to make nor an easy one to implement.

    • When you download java, you get the source files along with it. GPL is not the only license that makes something open source.
    Both of the above assertions are true. However, in the context of the parent, they imply that because Java comes with source files, Java is open source, while is categorically false. The "open" in open source represents a freedom to modify and redistribute, which is encoded in the GPL and other open-source licenses. The sources that come with the Sun Java distribution -- which, incidentally, only cover the standard class libraries -- are not "free as in speech".
  • by xmorg ( 718633 ) on Saturday May 01, 2004 @07:12PM (#9030559) Homepage
    I dont know if its a good idea to open source Java. Imagine every website you come to demanding that you install their "version" of the java plugin. Which then of course, in addition to adding addware to your system, will generally screw up your java environment. MS VM anyone?
  • by Wesley Felter ( 138342 ) <wesley@felter.org> on Saturday May 01, 2004 @07:14PM (#9030568) Homepage
    One thing Gosling neglects to mention is that it costs tens of thousands of dollars to get access to the test suite.

    While compatibility is great, a major advantage of open source is the ability for people to make and distribute experimental changes (after all, new features often start out as experiments).

    While anyone can get the source code to Sun's VM, there is concern that looking at the code taints you for life, unlike open source.
  • Response to Mono? (Score:5, Insightful)

    by PCM2 ( 4486 ) on Saturday May 01, 2004 @07:16PM (#9030582) Homepage
    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.
  • by psycho_tinman ( 313601 ) on Saturday May 01, 2004 @07:24PM (#9030628) Journal

    Ok, I'll bite. Sun is in the application server market, they have their own product [sun.com]. 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.

  • logicly (Score:1, Insightful)

    by Anonymous Coward on Saturday May 01, 2004 @07:24PM (#9030629)
    Saying that Java is Gosling's is like saying that the US government is Bush's.

    While one can argue that Gosling is the core hand in Java, he neither financed it nor did most of the work.

    More importantly, if it is open sourced, what license would it be under to prevent forking and the like since a (the) core value of Java is its universality?
  • Re:Why open Java? (Score:5, Insightful)

    by JustinXB ( 756624 ) on Saturday May 01, 2004 @07:28PM (#9030646)
    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.

  • by ron_ivi ( 607351 ) <sdotno@cheapcomp ... m ['ces' in gap]> on Saturday May 01, 2004 @07:29PM (#9030659)
    Parent wrote: "The boss. They paid him for his work, so it is there's to do with as they please."

    Which boss? And no, bosses can't always "do as they please" (Tyco). They have fiduciary responsibilities to make responsible decisions.

    Also, bosses can delegate authority.
    Just as the shareholders delegates some responsibility to the board, and
    just as the board deligates some responsibility to the executives,
    a high-level exec delegates some responsibility to middle level execs.

    Ultimatelly, they should be accountable to the shareholders - but where the chain of deletaing authority for software licensing stops probably depends on the management chain in place. There's no reason why this decision couldn't be delegated to a software-strategy person in some companies and be a board-level decision in others.

    IMHO a CEO _should_ delegate domain-specific decisions to the most qualified person (and I'm just speaking hypothetically, not about java/gpl now). Not sure about "Legally", though - somone else will say if a CEO has a fiduciary responsibility to delegate such decisions or not.

  • Re:Why open Java? (Score:3, Insightful)

    by T-Ranger ( 10520 ) <jeffw@NoSPAm.chebucto.ns.ca> on Saturday May 01, 2004 @07:30PM (#9030665) Homepage
    Open Source and GPL have very little to do with each other. GPLing something would Open Source it, but the inverse is not necessaraly true. I think that there is exactly one person who thinks that Java should be GPLd.
  • Fragmentation (Score:4, Insightful)

    by Florian Weimer ( 88405 ) <fw@deneb.enyo.de> on Saturday May 01, 2004 @07:33PM (#9030692) Homepage
    A couple of years ago, most vendors certified their Java software just for selected Sun JVM versions. This meant that most serious Java users had to install different JVM versions on their systems. In a sense, Sun had already fragmented Java on its own.

    Has this changed in the meantime? Is Sun's Java implementation fully backwards compatible now, and do other vendors trust Sun in this area?
  • by forlornhope ( 688722 ) on Saturday May 01, 2004 @07:38PM (#9030730) Homepage
    Somebody probably already said this, but...
    I dont get why Sun can't keep the trademark and make people pass the test suite to us the Java trademark. Isnt this what happened to UNIX, the trademark went to one company and you have to pass a test suite to call your product a UNIX. This would be optimal for sun because Java would get a lot more use and development, while they still get to control what is called Java.
    Maybe there is a difference that I just don't see, but it seems like they are doing this already, just also placing that as a restriction on distributing the changes as well. GPL the source and keep the trademark. Its that simple.
  • by NZheretic ( 23872 ) on Saturday May 01, 2004 @07:40PM (#9030741) Homepage Journal
    It would benefit the entire Java based industy, including the free software, open source and proprietary based vendors, to open license the core J2ME,J2SE,J2EE libraries and Java to bytecode compilers.

    Java's primary strength, the ability to write code which is constantly portable across many vendors platforms, would be greatly enhanced if all of vendors were using the same core libraries.

    To insure that the standard base core would not become polluted with incompatable forks, the source could be licensed with a clause requiring any incompatable changes or any additional classes or methords to be moved to and occupy only the vendors namespace. Another clause would require that the vendor version of Java bytecode compiler and any GUI IDE defaults to generating portable bytecode, without embedding any vendor specific references.

    The OSF definition of an open source license clause five explicitly states: "The license may require derived works to carry a different name or version number from the original software."

    Contributions to the core standard would be required to licensed under the same open source license. The existing JCP standard body could decide what becomes part of the Open Java Core. Sun would still retain the veto, and the Java J2ME, J2SE and J2EE brand would be still be protected under trademark law.

    It should not be necessary to open source license Sun's JVMs. In the long run it could greatly benefit Sun to develop the JVM under a dual license as it doing with OpenOffice.org and selling StarOffice.

  • RTFA, my friend (Score:5, Insightful)

    by melquiades ( 314628 ) on Saturday May 01, 2004 @07:41PM (#9030745) Homepage
    <flaimbait>Stallman is less open minded than Java is open source.</flaimbait>

    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.
  • Re:Why open Java? (Score:5, Insightful)

    by mindriot ( 96208 ) on Saturday May 01, 2004 @07:47PM (#9030776)
    s/Java/Netscape/

    I'm sure people said the same thing when the Mozilla project came to life -- and see where they're standing today. Of course things might go wrong -- but we, the Free Software community, can have an influence on that. And frankly, we don't really want "forks with incompatibilities" either. I don't really think that "the end of Java" is a possibility.
  • A good thing (Score:5, Insightful)

    by Earlybird ( 56426 ) <slashdot @ p u r e f i c t ion.net> on Saturday May 01, 2004 @07:53PM (#9030811) Homepage
    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.

  • by dbIII ( 701233 ) on Saturday May 01, 2004 @08:02PM (#9030858)
    So, who should have custody of the child, the DEVELOPER...or the boss?
    Now if we follow the example of RMS with emacs - the boss would get the full say in it and sack the developer. Fortunately, one thing that RMS did correctly is that those who wrote the emacs program based on RMS's text editor macros released it under the GPL. Because of that, the developer of the time could keep on going with a forked version after RMS objected to X windows support, so we ended up with an emacs with features which were previously not implemented because they did not contribute to the hurd.

    I think RMS should sit this one out - his licence is good, but his "you're all evil if you don't use my own personal licence" comments are not going to help anyone.

  • by PCM2 ( 4486 ) on Saturday May 01, 2004 @08:11PM (#9030919) Homepage
    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).
  • Re:Why open Java? (Score:3, Insightful)

    by njcoder ( 657816 ) on Saturday May 01, 2004 @08:14PM (#9030935)
    Ok, so you've pointed out how this benefits the Free software community. How would this benefit Sun?

    There is nothing stopping people in the Free software community from using, Java now.

  • Re:wow! (Score:2, Insightful)

    by aristotle-dude ( 626586 ) on Saturday May 01, 2004 @08:23PM (#9030974)
    Use it at your own risk? Come on. If it is based on OO and they use the same format, what is your point besides being a GNU/Troll?

    GPL != Open Source. GPL is one of many Open Source licenses.

    Proprietary software has it's place as long as it uses open standards and formats.

  • by gidds ( 56397 ) <slashdot.gidds@me@uk> on Saturday May 01, 2004 @08:32PM (#9031030) Homepage
    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.
  • by Milton Waddams ( 739213 ) on Saturday May 01, 2004 @08:40PM (#9031064)
    bindings with GTK!?!? but what if someone ran a GTK'd app on a machine with no GTK libs? what would be the point in writing an app in a cross platform language with bindings for a platform dependent library?

    this is why java isn't and shouldn't be gpled. open source is great for certain situations but not for others. i think that it's great that java comes from one company, it means that it's completely controlled.

    why are people pushing so much for this? java is free (as in beer) and is very well documented. there is no need to "port" an app that you write, all that's necessary to run a java app is the jre. and you can write an open source java app if you want with no restrictions.

    oss advocates like this guy above are well intentioned but they can do more harm than good. with freedom comes responsibility and unfortunately developers can be egotistical and not think about the greater good of software when they make decisions.

    really what's more important, a model that's free (as in speech) or something that works.
  • by Curtman ( 556920 ) on Saturday May 01, 2004 @08:44PM (#9031085)
    That was pretty much word for word my exact question. Apparently, some people see vendor lock-in as a good thing. They treated me like I was from another planet when I suggested that software patents might be a bad thing. 'What happens when pkware goes out of business', was my follow up question. I never heard back.
  • by Brandybuck ( 704397 ) on Saturday May 01, 2004 @08:48PM (#9031103) Homepage Journal
    If we choose to use the term 'Free Software' instead, there is no confusion.

    To someone who hasn't drunk the FSF Koolaid, "free software" means software that is free of cost and/or relatively unencumbered by legal restrictions. Since Java is free of cost, and relatively unencumbered by legal restrictions, most people would consider it to be "free".

    "Free Software" is just as confusing as "Open Source". Actually it can be more confusing since
    "free" has about fifteen more synonyms than "open".
  • by raindog2 ( 91790 ) on Saturday May 01, 2004 @08:49PM (#9031108) Homepage
    I mean no disrespect to the GCJ project, or Classpath or any of the other contributions to the goal of a fully compatible free software Java implementation. But...

    Saying that GCJ's existence proves Java is not proprietary is a bit like saying that WINE proves Windows is not proprietary.
  • by gidds ( 56397 ) <slashdot.gidds@me@uk> on Saturday May 01, 2004 @08:57PM (#9031145) Homepage
    Java is a platform -- it has a specification, and Sun's own implementation. Which are we talking about here?

    At present, anyone can build a clean-room implementation of the Java specs; if it passes Sun's compatibility suite, then you can call it 'Java' and do what you like with it. I'd say that's pretty open already.

    What more could be done? Well, one thing is to open up the specification. Sun already accepts outside input to that, via the JCP; any further would probably mean dropping the compatibility requirements, and letting anyone call anything 'Java'. A Very Bad Move(tm)! We'd get lots of competing 'Java' platforms that were all incompatible with each other, no-one would know what to write for, and it would kill the language.

    The other thing is for Sun to open-source their own particular implementation. That would have several good effects, e.g. much easier porting to other platforms, fixing of bugs, optimisation, &c -- but they'd have quite a job to ensure that the results still had to pass their compatibility suite. (Or, again, chaos would reign.)

    One final thing: Java gets a very biased press on /. If you believed what you read here, you'd think no-one used it, that it had died a death, that it never ran beyond a crawl, and that it epitomised everything that was bad about closed standards in comparison to the wonderful openness of C#. But that's all rubbish. In the real world out there, it's about the highest-demand skill; it's behind a staggering amount of development in the corporate, commercial world; implementations have come an awful long way in the last few years; and the platform as a whole is far more open than C# will ever be. I think it merits a place on the 'Reports Of My Death Have Been Greatly Exaggerated' list, alongside BSD and Apple...

  • by OmniVector ( 569062 ) <see my homepage> on Saturday May 01, 2004 @08:58PM (#9031149) Homepage
    i was looking for this post. and i was thinking of modding it up but felt i'd rather reply. you hit the nail on the head. if sun doesn't open up java now, it stands to let C# walk all over it. there's a major problem with java right now in that no distro in linux can bundle it. installing it in most distros is a pain in the freaking ass and requires going to some java website, clicking agree on a bunch of stupid licsense agreements, etc. in short, it's not SEAMLESS. and java support should be in every distro out of the box such that java could become *the* new language for desktop development via java gtk/gnome bindings. you have to take a look at the current stance of java. it's preinstalled on all os x machines. it *could* be bundled with linux machines, or easily installed via apt-get install sun-jdk or emerge sun-jdk, but as it stands we can't do this because it requires that damn website/license agreement crap. switching to gpl would fix this, and suddently grind the C# momentum to a halt i think. c# honestly has a few nice perks but the advantages stop there. the ONLY advantage you get out of supporting C# is the windows world suddently has the ability to run your apps. and i'm all for allowing easy porting, but i don't think the solution to porting is to make it easy for the crappiest OS in existance to have easy port capabilities. we should set our standards higher, and worry more about making the best environment out of the tools we have. and currently java is more portable via applets, preinstalled on os x, and if gpled preinstalled in linux, than just supporting windows.
  • Re:Why open Java? (Score:5, Insightful)

    by Ogerman ( 136333 ) on Saturday May 01, 2004 @09:00PM (#9031154)
    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.

    Open Source fragmentation is a myth largely propagated a certain proprietary vendor's FUD campaign. Successful open source projects simply do not fork. Why? Because there's no interest and it's way too difficult with large scale software. There is one GNOME, one KDE, one Apache, one Linux kernel, one GNU Compiler Colection, one OpenOffice, etc. Similarly, an Open Source Java would be a large project with so much momentum that any unlikely attempts to fork would be rapidly ignored and wither away. Not to mention Sun would still hold the Java trademark..

    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.

    Wrong again. Open Source developers are terrifically anal about sticking to standards. You don't see a dozen different C compilers each with a slightly different dialect do you? You don't see KHTML or Mozilla trying to extend web standards do you? Even more obvious: You don't see the existing clean-room Open Source Java projects deviating from Sun's specifications do you? -- and they're not even under legal obligation!! Fact is, an Open Source Java is the only way WORA can ever hope to fully live up to its promise. (btw, that's Write Once, not Compile.. minor correction) Three reasons: 1.) more ports 2.) better quality control 3.) less Java implementations floating about, whether proprietary or open.

    Let Sun has Solaris and Java. Stop trying to force them to open source their software.

    Nobody's trying to force Sun to do anything. They're simply asking because it would be mutually beneficial.
  • by soloport ( 312487 ) on Saturday May 01, 2004 @09:10PM (#9031208) Homepage
    Forks are a healthy thing. When a FOSS project goes bad (e.g. the head of the project looses his/her mind) forks allow the community to escape a bad thing.

    If the fork is made for good reason, the world follows. If a fork is just someone's rant-child, the world ignores it and it whithers on th vine. Forking is one way projects evolve. When two branches (resulting from a fork) survive, there's also usually a pretty decent reason.

    From the perspective of the CIO, forking should be seen as no more of a risk than a vendor being tossed around by a corporate buyout. It happens, but it shouldn't stop one from buying the tools one needs.
  • Re:Why open Java? (Score:1, Insightful)

    by Anonymous Coward on Saturday May 01, 2004 @09:14PM (#9031235)
    Lets remember here that open-source in the GPL sense does not mean free.

    I sometimes wonder how many people reading /. know what the GPL restrictions on redistribution actually are.
  • Who cares? (Score:3, Insightful)

    by hak1du ( 761835 ) on Saturday May 01, 2004 @09:27PM (#9031279) Journal
    Sun has had almost a decade to follow through on their initial promise of submitting Java to a recognized, existing standards body and they haven't done it. Instead, they have set up a process in which their customers and users do enormous amounts of work for them and Sun reaps the benefits and have the final say.

    Most disturbingly, Sun still has complete ownership of JCPs (read the license agreement, say, for JCP 32 [jcp.org]).

    Sun has had their chance. Java has been a positive influence on the industry, but it is time to move on to something else, both for legal reasons and for technical reasons.
  • Re:Why open Java? (Score:4, Insightful)

    by Ogerman ( 136333 ) on Saturday May 01, 2004 @09:35PM (#9031322)
    How does BSD provide less freedom? Are we talking about freedom of the code again? I'll let you on a secret. People can have freedoms and rights. Objects and information do not have rights. People can own information and inanimate objects.

    BSD does not insure that what people create and then desire to be free, remains free. There are both philosophical and commercial reasons why this "restriction" can be desireable.

    And, by the way, people cannot own information. They can only be granted a temporary monopoly on the use of information within the borders of a soverign state that grants such monopoly. Big difference philosophically and legally speaking. And, in case you're wondering, this viewpoint is fully backed up by the US Constitution and legal system. It's not "GNU/Koolaid" or hippie-speak.

    How do you expect Java to be open sourced without Sun's consent? It is the IP of Sun. Careful about calling people idiots when you make statements about Sun being forced to do something with their property.

    Sun's Java implementations are copyrighted by Sun. Clean-room Open Source like Kaffe / GNU ClassPath are not. (and legally they're not even Java(tm) but they effectively they are) Nobody ever said anything about Sun being forced to do anything with their own code. It would, however, be mutually beneficial if they released as much as possible under a freer license instead of fighting what they cannot stop.

    Open sourcing Java under any license would be a mistake. Numerous forks of the code would occur completely destroying the "write once, run anywhere" nature of java. Maybe you don't understand that not everyone runs either Linux or windows on their desktop (not to mention phones, set top boxes and PDAs).

    This is 100% pure recycled FUD. Since when do large, successful Open Source projects fork? Even more so, since when do Open Source projects go against established industry specifications? If Sun GPL'ed their Java code and somebody tried to fork it to be a jerk, nobody else would pay attention. It's entirely against the community ethos to fork without significant cause or out of spite. Practically speaking, large projects have gravity regardless.

    As a programmer of in-house proprietary software, I'm painfully aware of forking issues. At times we have two developers working on two future versions and releasing patches to the version in production. :D

    That's not forking, it's a management problem. Forking is when somebody purposely takes all the code and runs in a different direction.
  • Re:Why open Java? (Score:4, Insightful)

    by JustinXB ( 756624 ) on Saturday May 01, 2004 @09:37PM (#9031326)
    Open Source fragmentation is a myth largely propagated a certain proprietary vendor's FUD campaign. Successful open source projects simply do not fork. Why? Because there's no interest and it's way too difficult with large scale software. There is one GNOME, one KDE, one Apache, one Linux kernel, one GNU Compiler Colection, one OpenOffice, etc. Similarly, an Open Source Java would be a large project with so much momentum that any unlikely attempts to fork would be rapidly ignored and wither away. Not to mention Sun would still hold the Java trademark..
    The Linux itself is fragmented across distros. Try taking a Red Hat binary to SuSE, there will be trouble.

    There are now 3 projects who will use the X windows standards, and I can tell you there will be fragmentation. Each will try to improve it somehow and bye bye compatibilty.

    There may be one GNOME and one KDE, but each use a different GUI toolkit resulting in the same effect as fragmentation.

    Wrong again. Open Source developers are terrifically anal about sticking to standards. You don't see a dozen different C compilers each with a slightly different dialect do you? You don't see KHTML or Mozilla trying to extend web standards do you? Even more obvious: You don't see the existing clean-room Open Source Java projects deviating from Sun's specifications do you? -- and they're not even under legal obligation!! Fact is, an Open Source Java is the only way WORA can ever hope to fully live up to its promise. (btw, that's Write Once, not Compile.. minor correction) Three reasons: 1.) more ports 2.) better quality control 3.) less Java implementations floating about, whether proprietary or open.
    GCC has it's own extensions, as does the GNU C library. Same goes for gmake. You can't compile software that use these extensions on Solaris using native compilers.
    Nobody's trying to force Sun to do anything. They're simply asking because it would be mutually beneficial.
    No, it would only hurt Sun and Java.
  • Re:Why open Java? (Score:3, Insightful)

    by doc modulo ( 568776 ) on Saturday May 01, 2004 @09:44PM (#9031362)
    Satisfying the Open Source community is the only logical way to go for Sun.

    Sun is a hardware company, they sell high-price, high quality servers. They sell their own processors which are incompatible with Intel.

    To make everyone compatible with their servers they release the Java platform out into the world. Now everyone can run their programs on Sun hardware and hardware sales increase. As far as I know they don't make a lot of money out of software sales compared to their hardware sales.

    So their strategy rests on the fact that everyone is running programs on the Java platform. Sun needs to spread Java as far and wide as possible so they get the most possible customers for their hardware.

    A growing number of computer users are switching to open source/Free source, especially on the server side of the market. Open source software is going to grow bigger in the future so this group is important to have as a customer for Sun.

    Here's the big one. The open source community don't want Sun to "pull a Microsoft" on them! Who's to say that when Sun has spread the Java platform everywhere, they won't abuse their position to treat users the same way Microsoft is treating it's users?

    I'm not sure if Sun has completely embraced the idea of giving away the platform to increase hardware sales. They seem to want it both ways. Control of the platform as well as the increased hardware sales. I've heard people say that the Java spec can't be implemented in an open source way because of something in the license. I heard Sun was having arguments with the Blackdown team over their open source Java implementation.

    Sun has blocked Microsoft from Embracing and Extending the Java platform in the past using their power over the Java platform, this was a good thing, it ensured that Java was not fragmented and stayed a powerful platform to make users compatible with their servers. However, it seems that now, Sun must let go of some of it's power to satisfy the Free Source community and keep them as hardware customers. Strenght against fragmentation is good, but letting the Java platform become a little more open doesn't have to mean that it'll become weak against attacks. As long as Sun convinces the Open Source community that it can't hijack the Java platform for evil in the future, those people will use Java. Sun doesn't have to go much farther than that in my opinion but Sun has to make it clear to everyone they ARE basically giving away java control in return for more hardware sales. That attitude has to shine through in their actions.

    Then the Free source community might use Java more than mono's C#, Python, OCaml or whatever in the future. IBM sells services, Sun sells high-end hardware to more geeks, Microsoft slowly dies and everyone's happy.
  • Re:Why open Java? (Score:5, Insightful)

    by Quattro Vezina ( 714892 ) on Saturday May 01, 2004 @09:49PM (#9031384) Journal
    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.
  • Re:Solaris & Java (Score:2, Insightful)

    by narkotix ( 576944 ) on Saturday May 01, 2004 @09:54PM (#9031404)
    You want it to be called Java, you make it pass the test suite.
    kind of like the old method of naming programming standards like F77, C85, etc etc?
    It sounds theoretically possible but like how feasable would it be considering there is a new java release/patch every 2nd month?
  • by Anonymous Coward on Saturday May 01, 2004 @10:05PM (#9031450)
    I guess I must have missed something. I seemed to think that java pretty well kicked ass over the last decade or so. I also thought that most books at the book store dealing with programming were about java.

    Granted C# is the new hot language.

    But can you tell me why with all the penetration java has had that it must be open source?

    This argument is total bullshit. Java has done just fine without being open sourced. All open sourcing it will do is lead us to having a bunch of incompatible versions. Hell, just look at C++. Show me 2 different implementations that support the language the same. Show me any that fully comply to the standard. Certainly not the GNU version. And shouldn't it be the gold standard.

    Like I said, this open source debate is bullshit. The only thing that will happen is we'll have incompatible versions and Microsoft will walk away with everything.
  • Re:Why open Java? (Score:5, Insightful)

    by evilWurst ( 96042 ) on Saturday May 01, 2004 @10:17PM (#9031506) Journal
    "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.
  • Re:Why open Java? (Score:5, Insightful)

    by Ogerman ( 136333 ) on Saturday May 01, 2004 @10:18PM (#9031509)
    The Linux itself is fragmented across distros. Try taking a Red Hat binary to SuSE, there will be trouble.

    This is an improper example. Try taking some C source and compile it on both RedHat and SuSE -- same results. Fragmentation would be if RedHat or SuSE modified the Linux kernel or supporting GNU software so much that code would need significantly re-written to work.

    There are now 3 projects who will use the X windows standards, and I can tell you there will be fragmentation. Each will try to improve it somehow and bye bye compatibilty.

    Not even close. Read this: http://www.xouvert.org/faq.html#2.1 It should be especially noted the strong emphasis on sticking to standards. There are many X11 implementations and they are very much compatible, though some are at different levels of specification advancement.

    There may be one GNOME and one KDE, but each use a different GUI toolkit resulting in the same effect as fragmentation.

    This is an example of diversity, not fragmentation of an original standard. Would you say that there should only be one programming language? I should hope not. Each has its advantages. It should be noted, of course, that there is a growing movement to harmonize GNOME and KDE, but that's another topic of discussion.

    GCC has it's own extensions, as does the GNU C library. Same goes for gmake. You can't compile software that use these extensions on Solaris using native compilers.

    It can be easily argued that the only reason C compilers have extensions like this is because there does not exist as active a standards body as say, W3C or SCP, to recommend changes before they are tried experimentally. There are also different ISO C versions. I believe some of the GNU C "extensions" are actually part of the C99 ISO spec. Solaris's native compilers may be using an older spec, but I'm not familiar. Also, you can use the -pedantic option with gcc and it will warn you of any code that uses extensions beyond C89. There is little to make me believe a similar scenario will exist with Open Source Java. The industry has learned since C/C++ the value of creating standards early and then sticking with them. As I said, Open Source developers tend not to deviate when solid standards exist. Java is a solid standard.

    No, it would only hurt Sun and Java.

    How much have GNU ClassPath and the various open JVM's hurt Sun and Java? And how much have they deviated from Java specifications? The answer to both is: not at all. If Sun relaxed licensing on code for their implementations, it would only serve to promote their own over the clean-room versions.
  • Re:Why open Java? (Score:2, Insightful)

    by BokLM ( 550487 ) * <boklm@mars-attacks.org> on Saturday May 01, 2004 @10:27PM (#9031538) Homepage Journal
    and why do you think it is different ?
  • by shaitand ( 626655 ) * on Saturday May 01, 2004 @10:33PM (#9031557) Journal
    A few things that can be done to improve on java. Make the standard a standard housed with an officially recognized standards body which does not allow patented features to be accepted into standards.

    Right now java is in sun's hands and nobody has a say in the standard but sun.

    And yes, open source sun's implementation, it's the only one anybody codes for! It does little good to split off a non-sun java vm. If they gpl it we don't have to worry about Microsoft doing this again either.

    And yes sun java is still slow as hell, whatever you say, you can't change that. With things opened up the interpreter will be drastically improved... it's not like sun will stop working on it, and it's not like sun alone could ever compare to what the community can do with it. Just look at Open Office 1.1 if you want an example.

    Java being in demand is all the more reason to open it up, why do you think people are clammoring for this? Sun needs to learned that closed standards and closed sourcecode are not where the money is anymore and start gpling all their software (it's not like software is sun's money maker anyway). If they want to be friends with this community they have to contribute to it and work in an open to all fashion (not merely visible to all).
  • by ClosedSource ( 238333 ) on Saturday May 01, 2004 @10:57PM (#9031633)
    Since when is readabililty a concern of any 'C' derived language? To wit:

    +=,-=, etc.
    var++ vs. ++var
    & vs. && etc
    >> vs. >>>
    ?:

    The GOTO may be bad practice but it's one of the most readable statements in Java.
  • Re:Why open Java? (Score:5, Insightful)

    by Ogerman ( 136333 ) on Saturday May 01, 2004 @10:57PM (#9031634)
    Yes. A certain vendor that did itself try to fork Java, and now has a competing product that is extremely similar to Java.

    What this proves is that it doesn't take Sun Open Sourcing their own implementation for a fork to occur! And yet, the existing Open Source implementations of "Java" are not forking from the spec.

    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'.

    How exactly could they muck around with a GPL (or similarly licensed) Sun Java to win? They couldn't release proprietary versions. They couldn't make changes without telling everyone. They couldn't completely fork the code and still call it Java (Sun trademark). And they don't even need Java anymore since they have .NET and CLR. MS is really out of this picture. Oh, one more thing: they won't touch anything GPL with a ten foot pole because that would only further legitimize it to those on the fence.

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

    Linux distros are not a proper comparison because they are a conglomeration of very diverse software. Here, we're only about talking the JVM and a set of libraries. There's no incentive to fork and any 'tweaking' would only be within the implementation of the specs. With Sun still holding the trademark, they would still be the sole source of endorsement. So "Bob's J*** Derivative" could fork and tweak to heck and back, but typically only experimenters would use it. And if they came up with something really great that SCP approved of.. cool! roll it back into the official codebase that normal people use.

    well, maybe that's already true. Why make it worse, though?

    Because there's virtually nothing to lose and a lot to potentially gain.

    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.

    Sun would still be a strong leader, even if they Open Sourced their implementations. Weak leadership or poor quality is what encourages forks. As for IBM and Oracle contributing, that's what the SCP is for. It works and is well established. Why would anyone want to diverge? All that would do is make them look bad.

    For the record, I'm undecided about the opening-up of Java.

    Java is already being opened-up. (http://www.kaffe.org/links.shtml) It's just a matter of how long that takes. If Sun helped out, it would happen a lot sooner and dramatically increase their influence over the whole 'open Java' scene.
  • Re:Why open Java? (Score:3, Insightful)

    by nathanh ( 1214 ) on Saturday May 01, 2004 @11:01PM (#9031641) Homepage
    Please enlighten me? Why GPL Java? Java is pretty good right now.

    A GPL Java might become a standard part of the Linux desktop (really GNOME/KDE desktop). Right now it doesn't even rate on the meter.

    I can appreciate Sun's position. They want to avoid a fork and the current Java license was a good attempt. Unfortunately it's too restrictive for most Linux distros. Oh sure, I can install a free JVM like Kaffe or Jikes but nobody seriously thinks they're "there yet". And the majority of value in Java isn't the language or the JVM. The value is in the class libraries. The free class libraries definitely aren't there yet.

    So I'm on Debian and I can't install a decent Java environment from the primary apt archives (only from third party apt sources). And if it's not part of the standard distribution then nobody is going to target it for their applications. I see a lot of enthusiasm for Java anyway, but it's mostly in the webspace where people are expected to be intelligent enough to download and install Sun's J2SE by themselves. Java isn't "integrated" with Linux like Perl or Python or Bash has been integrated. An open source J2SE would allow it to be a standard part of Linux, alongside Perl and Python. It doesn't have to be Sun's J2SE either, but none of the other J2SE implementations look like they'll be finished this decade, so Sun's J2SE is the only practical choice.

    Think of it this way. Nobody seriously thinks that the majority of apps for a future version of GNOME will be written in C. It's hard to write C code. You have to do your own memory management. It takes a lot of skill and a lot of effort. Even the "flagship" GNOME applications like RhythmBox and Galeon have their fair share of memory leaks and segmentation faults. GNOME needs a framework and language for writing simple apps. Stuff like image viewers and music players and cheque-book balancers. Stuff that isn't performance critical. Take a look at the current apps being written for MONO, like Muine. They're written in C# and use the Sharp framework but the performance is really good. Because modern apps don't do a lot. A modern application is just glue between the underlying libraries and objects. An interpreted language like C# is fine for that.

    So it must really burn Sun's boots that there is a good chance that a future version of GNOME will promote MONO for writing Linux desktop applications. Sun knows that would be the death blow for Java on the desktop. Linux and Microsoft in arms against Java, who would have imagined that would ever happen! It's in Sun's best interest to ensure that Java is the preferred applications language for the GNOME desktop. But that's never going to happen with the current license.

  • by shaitand ( 626655 ) * on Saturday May 01, 2004 @11:20PM (#9031694) Journal
    How could it possibly kill java to open source it? I imagine sun would remain the maintainer, so it's not exactly like anything is going to go in they wouldn't approve of.

    The whole "millions of forks" argument is pointless. Anyone can look at the specs and implement a Java VM NOW and many DO. In fact there are open source Java VM implementations ALREADY so anyone too lazy to code one from scratch can do it now.

    What we have NOW is millions of forks, if java opens and sun actually accepts contributions as well (if they don't, it WILL fork and eventually settle on another major VM, read XFree86) then alot of those will disappear as additional features they offer become part of the new open source Sun java.

    Open sourcing java alone is not enough though, two other things need to happen.

    1. Sun must actually actively maintain and accept contributions. Or appoint a third party from the community to do so.

    2. The spec must become standardized and be taken out of sun's hands so that the community can actually submit extensions, etc.

    Basically Java must become open. As far as the VM, yes it's a matter of changing the license.txt file and putting the source out there. Fragmentation won't occur if they don't give it a reason to, if sun is slow or unwilling to accept contributions THEN it will kill java.
  • Re:Why open Java? (Score:4, Insightful)

    by Ogerman ( 136333 ) on Saturday May 01, 2004 @11:35PM (#9031751)
    Red Hat is modifying the kernel, don't read the headlines? Although it won't effect the userland, try apply many existing patches against the existing Red hat source code. There will be problems.

    Exactly.. won't affect userland. Which is what I was talking about. I never said distros don't patch the kernel. On the other hand, you can always plug in a virgin kernel without issue.

    It's fragmentation. There's no reason why KDE couldn't have used GTK. But they didn't, and now programs are less portable.

    It seems by your definition, the simultaneous existance of C, C++, and Objective-C is an example of fragmentation. If so, that's patently silly. KDE didn't choose GTK because at the time it was vastly inferior to Qt. Fragmentation would be if KDE had split off of the GNOME project.

    You admit it's fragmentation, good. You're learning.

    I never said that smartass. C/C++ doesn't have the level of standardization that Java does because of its history. Modern languages do and Open Source implementations of those languages are on spec with high precision.

    Then you're a fool. There are millions of reasons why Java will fragment if it goes open source. The C standards are solid standards, but GNU made extensions anyway. Open source developers do what they want, standards or not.

    The C/C++ standards are *now* becoming solid, but they have an enormous history of variation. Some things that are "traditional C" are not part of the ISO standard and this is why GCC supports them unless you turn off support.

    Java already is going Open Source and it's not fragmenting yet. Get your head out of the sand. A forked Java is not in anyone's interests and there's nothing to suggest it will ever happen. It very easily could have by now, but it hasn't. And I'm talking about all the proprietary, non-Sun implementations even.

    Open source zealots would choose an open version over Suns clean-room version. It's what you people do. Sooner or later, the Sun version isn't mainstream.

    You mean: Open Source advocates will choose their own open clean-room version because its the only one they can legally redistribute and it's just as good if not better than the proprietary versions. Sun's version won't be mainstream too much longer if they don't find a way to participate in the inevitable change.

    IBM, for example, could fork the code and really open up to the community. The entire open source community gets behind the IBM version and, after awhile, Sun disappears.

    IBM's code is based on Sun's. They can't legally open it. Now, suppose Sun was to GPL their implementation. IBM could participate openly, but they still wouldn't fork because it would break all compatibility and everybody would cry foul.
  • Re:Why open Java? (Score:3, Insightful)

    by Ogerman ( 136333 ) on Sunday May 02, 2004 @12:15AM (#9031892)
    So under the BSD license whoever writes the line of code gets to determine whether it's free or not. That's sounds quite fair to me.

    Not necessarily. It encourages proprietary free-riding on the efforts of the community rather than a healthy responsibility to give back. That's only good if you don't believe OSS is more than a toy and don't care what direction the industry goes. In the commercial realm, GPL prevents your competitors from holding back their improvements to your code, again free-riding. Thus GPL is more like a social contract than a simple give-away.
  • Re:Why open Java? (Score:1, Insightful)

    by Anonymous Coward on Sunday May 02, 2004 @12:38AM (#9031959)
    You've no doubt never downloaded an IBM JRE, right? SWT is not in IBM's Java.

    IBM has not forked Java with SWT, it has provided a separate piece of software that it has decided is useful in Eclipse, and that some others have used in their own projects.

    Are you suggesting that someone should have a veto over what kind of software may be written in Java?
  • Re:Why open Java? (Score:3, Insightful)

    by the MaD HuNGaRIaN ( 311517 ) on Sunday May 02, 2004 @01:34AM (#9032109)
    Have you forgotten?

    Java was ALREADY forked by none other than our good friends in Redmond.

    "Some vendors, notably Microsoft, have insisted on adding platform-specific features (for example, in Microsoft's case, for Windows) and Sun has reacted strongly....Sun sued and won both damages (some $20 million dollars) and a court order enforcing the terms of the license from Sun." source [wikipedia.org]

    And I really think this is the type of thing that would pollute the language and destroy the whole concept of the platform, and as Marc Fleury points out, Sun's oversight is really what's holding the developer community and the platform together.
  • Re:Why open Java? (Score:2, Insightful)

    by spectre_240sx ( 720999 ) on Sunday May 02, 2004 @02:49AM (#9032313) Homepage
    But that goes for anything closed source. If Cisco goes bust, you won't get firmware upgrades.
    True, but then again, you haven't put months of labor into those switches / routers, etc. either. They can be replaced if they fail, whereas a program written in a sudenly deprecated language has to be ported, meaning a lot of time and money down the drain.
  • by Per Bothner ( 19354 ) <per@bothner.com> on Sunday May 02, 2004 @03:02AM (#9032346) Homepage
    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!

    Nonsense. JDK 1.4 is a very different platform from JDK 1.1 or 1.0. In my Java code I might want to use weak references (say), which are available on JDK 1.2 but not 1.1. I might want to support JDK 1.1 using some inferior fallback backanism. In theory I can do this using reflection, but that's both slow and painful to write. So conditional compilation is reasonable alternative - certainly better than refusing to support JDK 1.1 - which is the solution most Java projects select.

  • by AdamInParadise ( 257888 ) on Sunday May 02, 2004 @03:03AM (#9032347) Homepage
    Sorry, you're mistaken. See this part of the Java Spec, toward the end of the page: http://java.sun.com/docs/books/jls/second_edition/ html/statements.doc.html#236365 [sun.com] Basically, if the condition of your if() is a constant (static final boolean), then the compiler 'may' drop the block entirely. The standard compiler does it. Eclipse doesn't.
    See also the log4j cookbook, which says that leaving dynamic if() for logging statements all over the place has no mesurable performance impact.
  • by Per Bothner ( 19354 ) <per@bothner.com> on Sunday May 02, 2004 @03:44AM (#9032440) Homepage
    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.

    No, it's because some distributions are less cavalier about Sun's license than others. For example, the Supplemental License Term B iii (of JDK 1.4.2) seem to prohibit distributing both JDK and GCJ. Note also that redistribution is "non-tranferable", so somebody who receives a copy of Knoppix can't give it to somebody else. In fact your only allowed to reditribute JDK "for the sole purpose of running, your Programs".

    Note also (3 RESTRICTIONS) "you may not modify, decompile, or reverse engineer [Sun's] Software."

    I wish people who made these claims about Java being "Free enough" would actually read the Java license ...

  • Re:Why open Java? (Score:5, Insightful)

    by killjoe ( 766577 ) on Sunday May 02, 2004 @03:55AM (#9032464)
    Let me.

    It would help propagate java further by having it included by default in every single linux distribution.

    The OSScommunity could fix some of the long standing bugs in teh JVM. The bug parade also include tons of feature requests which although very popular are not important to sun. If Java was open sourced these feature requests would be implemented and make java a better platform.

    They could save money that they spending on java development now.

    Last but not least. It would prevent java from becoming another cobol. Java is facing heavy competition from .NET. In a year or so parrot will come out of beta and preliminary results show that it will be faster then the JVM. If parrot fulfills it's promise (and there is no reason to think that it won't) you'll get all the advantages of the JVM while being able to use perl or python.

    Parrot has the potential to be a very disruptive development for java. Sun needs to be proactive about defending against it and .NET/mono. Right now they are simply pretending that there is no threat and they can go along like they always have.
  • Re:So... (Score:3, Insightful)

    by Distinguished Hero ( 618385 ) on Sunday May 02, 2004 @09:18AM (#9033249) Homepage
    My intention was to illustrate that although Sun might be reluctant to open source Java, they have made several crucial contributions in the past, a fact many on Slashdot are far too eager to overlook. Many people are painting Sun as the Great Satan for not open sourcing Java; I merely meant to poke fun at this mentality and show how hypocritical some people (not necessarily yourself) can be. As for death, there are certain vegetative states which make the matter far less absolute than you make it out to be.
  • by glenstar ( 569572 ) on Sunday May 02, 2004 @10:27AM (#9033494)
    I do think the entire OS should be called GNU/Linux, instead of just Linux, as most of the packages are GNU stuff.

    You know, all it would take to make that a reality would be an advertising clause in the GPL saying something like "If you use this software in your program you must acknowlege the GNU project by either prepending 'GNU/' to the program's name, or...'

    Trying to retroactively rename things GNU/ is just plain silly.

  • Re:Who cares? (Score:2, Insightful)

    by aristotle-dude ( 626586 ) on Sunday May 02, 2004 @04:18PM (#9035440)
    Excuse me? C# is not a standard language. The part MS published to the ECMA is only a fraction of the language. None of the GUI stuff works outside of windows. Most of the class library is closed and proprietary. As many have said, Java is a standard, not a product and anyone is free to re-implement the standard but they can only call it Java if they purchase access to the test suite to be certified.

    As for your comment on Java not being cross-platform, that is not a flaw in the language or specification but rather the hostile attitude people on a certain platform (linux) have towards Java. If linux had an official version of the JVM, there would be no issues. Have you used Java recently or is this insight of your based on here say on the net? I can write a Java app on the mac and have it work with little or no modification on windows or another unix platform with a Java JVM. I'm well aware of wx and QT.

    QT strongly tied to X-windows and could hardly be considered a cross-platform solution. wxWindows also look out of place on other operating environments as it tries to imitate windows dialogs and widgets. No thanks. Java AWT, on the other hand, can support a number of GUI personalities including OS X, Windows classic, Motif and CDE.

    One final note, those solutions you mentioned will not work on non-pc environments. I am not aware of wx supporting anything other than OSX, Mac OS 9, windows and linux. What about all of the PDA and Phone OSes? You PC centric people talking about cross-platform development make me laugh.

And it should be the law: If you use the word `paradigm' without knowing what the dictionary says it means, you go to jail. No exceptions. -- David Jones

Working...