Gosling on Opening Java
An anonymous reader writes "It sounds like James Gosling's nudging Sun closer and closer toward open-sourcing Java, as requested variously by IBM,
Eric S. Raymond, and Richard Stallman, though not by JBoss's Marc Fleury. 'Developers value Java's cross platform interoperability and reliability,' Gosling writes, adding 'If we do something to make Java even more open-source than it is already, having safeguards to protect the developer community will be something we pay a lot of attention to.' Surprisingly, 'the creator of the Java programming language,' as Sun usually calls him, seems to be at odds on this issue with his own CEO, Scott McNealy. So, who should have custody of the child, the father...or the boss?"
The boss. They paid him for his work, so it is there's to do with as they please.
Please enlighten me? Why GPL Java?
Java is pretty good right now.
how long until
So, who should have custody of the child, the father...or the boss?
Boss gets it on the weekends, father gets it during the week.
...we need java to be open source, so we can fix all the flaws he left in it. i mean, no goto?!
Java is not open-source at all.
(Pre-emptive response to the argumentative sorts who point out the various GNU Java projects: These are not "Java proper". Java is a Sun product, and it is not open-sourced.)
Honey, I shrunk the Cygwin
first maybe solaris....now maybe java...whats next...open source star office??? oh wait..
We played dungeons and dragons for 3 hours.....then i was slain by an elf
Question from the artice:
2. "Some have asked what IBM would get if Java were open-sourced: doesn't IBM already have the source?"
Gosling's answer: Again yes, they do have the source. It's also true that anyone can get the source. The major restriction is that if folks want to redistrubute their changes, they have to pass the test suite. Which means that about the only thing that they could get from liberalization is to be able to skip testing.
So it doesn't seem to be such a big issue after all. The source is already available, and all that is required to change it and redistribute it is to pass a standard suite of tests. Now, call me crazy, but I think that's not A Bad Thing. This restriction is what helps Java to be uniform and platform-independent.
The benefits of making Java fully open source therefore seem overrated. Isn't the availablity of the source most important? Or perhaps I'm misunderstanding something ...
I hear there's rumors on the Slashdots
"If we do something to make Java even more open-source than it is already"
/.-er in their right mind say OS X is open source?
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
Hell no. And I love my Macs.
Sun has demostrated that for every OS framework based in java they have their own like Java Sever Faces and Struts, for sure Struts is way more flexible and useful despite some confusing configuration variables. There is so much redundancy in Java that soon or later will haunt it back and the so called portability will go to hell.
I say we put the baby through the mulcher. Next...
I don't like programming in Java, but having a free Java (as in speech) would be really great !
Think about how it can be easy to include Java in a Linux Distro.
If Java becomes free, I can imagine a lot of thing. Why not bindings with GTK for example ?
Ploum.net.
This sounds a lot like pkware's strategy with DCL. 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.
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...
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
in the real world all that matters is who DOES have custody, which is essentially guaranteed to be the boss...
Worth noting that Gosling is the one who produced the first non-free version of emacs, which was a direct motivation for RMS to produce the GPL!
He also produced NeWS which was superior to X in almost every way... except... it wasn't open either!
I've always thought that Java will become open source over Gosling's cold dead body, but maybe he'll prove me wrong.
McNealy gets Ja, and Gosling gets Va.
Now that's a fork.
I think I need a new sig here.
For the mods that modded this "interesting" I think most modern developers would agree GOTO is clearly a "four letter word" in programming.
Maybe you should remod this funny, because as anything other than a joke it's frightening. GOTO has no place is readable code.
At my workplace we've all been gosling about whether Java should be opened or not. We must have gosled at least one hour about it, it's pretty hard to decide! Anyway I'm sick of Java, and I'd rather gosle about something else now. What does gosling mean anyway.
What kind of idiot would confuse a freakin' computer program with a child?
Why yes, I AM a rocket scientist!
1) Open Source Java
2) ???
3) Profit
It would be great if java was Free software as RMS et al point out. But at this point, what I would like is just the ability to download sun's java without the goddamn clickthrough. I'd like to just "emerge sun-jdk" or whatever on my Gentoo box and get the damn thing, without having to navigate all the different mutations and bundles.
That's one cool thing about Free software. You can just get the URL and download it, no BS.
So Sun, even if you don't open-source it, can you please just get rid of the clickthrough junk??? Nobody reads it anyway.
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?
"Developers value Java's cross platform interoperability and reliability. They're afraid that if Java is open-sourced then someone will try to fragment the community by creating incompatible versions of Java and ignore the community process, just like Microsoft did. Microsoft did a lot of damage to the community and many developers strongly do not want that to happen again."
Microsoft is one of a handful of entities in a strong enough position to be able to do a lot of damage to the community.
In the present situation, that damage could be avoided by writing a License that, for example, specifically excludes 'any employee of Microsoft'.
Is it just me, or is ezine.daemonnews.org finally deader than a doornail? I mean, what with not having an issue out in two months and all....
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.
Open Source Java DAO Generator
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.
Great ideas often receive violent opposition from mediocre minds. - Albert Einstein
Computer languages are defined by...what? Compilers. And compilers are...what?
I'll let you figure out the rest.
Why yes, I AM a rocket scientist!
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.
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
The open source gnomes tried that one, but it didn't work.
Just why is the parent post marked flamebait? It makes perfect sense.
Banu
Well, at least as long as they don't admit to doing so publicly.
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.
Only Women Bleed (Sex, Sharia remix)
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.
Open Source Java DAO Generator
Well, I DO care for a hot complimentary drink from time to time....
He was (and still is) a Sun employee and developed Java during that time, by today standards any product developed by an employee is property of the company, so even McNealy is the father, McNealy is just the obnoxious uncle that says wierd things when is drunk.
Gosling was just a surrogate father.
BTW what happened to the other people around OAK project?, did sun killed all of them and throwed them into a ditch?.
Well, dear, yes and no...
As has been pointed out, it's a programming language with an environment. Open sourcing it is irrelevant. What it really needs is ISO Standardisation - so that the test suite is not a moving target as defined by a single vendor.
For goodness sake, MS did that for C# and environment that it requires. Anyone can implement it and MS get no say and no kickback.
Please may Sun do the same for Java.
Monday: Open source Java
Tuesday: Forked
Thursday: Enormous whirling clusterfuck
Saturday: Start on new language
Business isn't willing to pay for products, innovation and careers, so we get brands, mortgage commercials and layoffs.
Let's say RMS and ESR pushed Sun to open up Java. What are we gonna call it? Open-Java or Free-Java? Mind you, free as in freedom.
If your program is free software, it is basically ethical
Classic Stallman, talking about ethics again. So guys, which one do you prefer? Open? Free?
Happy Hacking!!!
They've hit hard times for a lot of different reasons. Companies come back. Novell kinda did, Apple did.
Sun has a lot of stuff going for it and they are finally starting to listen to their customers more. Better integration with MS, no more bickering with MS, more support of Linux and open source, more options in commodity hardware, bringing back solaris x86.
Another anology could be that Java could be what's keeping them from hemoraging even more. Release Java, and Sun could be in worse shape. It's a difficult decision they have to make but they're the ones that have to make it. They've been good to the Java developer community and whether they GPL java or not, they're track record indicates that they will take the needs of the developer community into account.
Open Source Java DAO Generator
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?
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.
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.
.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.
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
Now you've got Mono humming right along, with the developers busy implementing two distinct stacks: One that's a Microsoft compatibility layer, for using all the stuff you might have written with Visual Studio, and another that's more Linux-oriented, with GNOME and GTK bindings, Linux printing architecture support, and so on -- the kind of things that people hope would come of an open-sourced Java.
If Sun doesn't care about this, they've got more problems than I realized.
Breakfast served all day!
Anyone is free to make their own implementation of a Java framework. There's an (outdated) list here of alternative implementations (and possibly more here as well).
For example, SableVM and Joeq are the first two that I found on Sourceforge (and there are several more).
So it's not really a question of "open sourcing Java" - because there are already open source implementations of Java (and a few commercial ones as well). It would be a question of Sun opening up their reference implementation of Java.
So the main advantage of opening up their reference implementation would be to focus the software community's efforts more on one Java implementation and to stop the fragmentation. People would still be free to develop their own Java compatible VM's & compilers, but it would provide less of an incentive for them to do that if there's one central, relatively community-oriented distribution.
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?
The man repeats the word "Avalon" in his sleep. His old faithful is gettin fat and doesnt put out as much, and Bill Gates introduced him to a hot young thing that made him want to abandon his family and take up with the slut across town with all the new moves.
http://www.blackdown.org
Don't become a regular here, you will become retarded. -- Yoda the Retard
Do it again. Come on. This time, you'll feel better about yourself. Really!
Why yes, I AM a rocket scientist!
GPL isn't giving it away. its not as if you have to pay for it anyway. whats the difference between freeware and GPL to shareholders?
all it means is that the OSS community can make it better, and Sun can, if they want, use it more in their operating systems or whatever to get more money.
how is GPLing something thats already freeware giving it away?
Oh, wait. You want something Sun spent 100's of million dollars developing, and protecting for free. Like 100% really free.
Sun actually makes millions of dollars from licensing their VM source code to IBM, Apple, HP, BEA, etc.
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?
dont believe you.
look *points*, a purple cat-frog
ok, forget that
i thought we were just on about the runtimes
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.
"We Don't Need No Truthless Heros!" - Project 86
1. Open Java
2. ???
3. Profit!
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.
Stallman is less open minded than Java is open source.
./configure.sh to see why Sun is so anal about this!
... so there's a bit of sour grapes.
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
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
Except that it seems "Solaris maybe, especially if we can knock Red Hat, Java unlikely even though its creator gets it".
Sun need to keep a tight rein on the java name, and maybe the standard process. You want it to be called Java, you make it pass the test suite. That bit makes sense, although its hard to take too seriously given all the things out there like vnc java versiosn "patched to work with macos", "patched to work with ie5" etc.
What matters is that a JVM+class library called "Java" or "J2EE" etc behave in the defined way. Just as "Posix" and "LSB" matter. Implementation, reference code, no reason that can't be truely open.
In the Sun case the fact some of the interface specs are secret for tests for some of the extensions is not umm helpful. Imagine C++ programming where you had to sign an NDA to open a file 8)
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.
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.
1. Performance? My experimentation 6 months ago with compute/object-intensive code showed a fully-optimized GCJ only getting 30% the speed of the latest Sun JVM.
2. Popular applications? Can Jakarta Tomcat with JSP, etc., a common open source Java-based web server be run on it? If not, there is a clear list of what it is missing.
3. Web applications sandbox? How about loading untrusted applications over the internet and running them in a security sandbox?
4. Is GTK or QT really ready to be the free cross-platform Java standard for UI? Is there licensing preventing bundling of IBM's Eclipse UI toolkit with GCJ? Is relicensing under GPL possible?
When we say "Open Sourcing" why do we really mean "GPL"? Granted, the GPL has the advantage from Sun's point of view, as they get any changes back.
But Perl was released for the longest time under the Artistic licence, which (IIRC) allows derivitive works, but doesn't allow you to call them Perl. This could keep the one, true source of Java unsullied by broken or incompatible implementations yet gives everybody else the hope that when Sun tanks Java won't.
In the present situation, that damage could be avoided by writing a License that, for example, specifically excludes 'any employee of Microsoft'.
Have you heard of the Microsoft stance on the GPL?
for the former, use a labled outer loop
... ...
outer: for
for
break outer;
for the latter, "cleaning up properly afterwards" is a textbook case of where you want to use the finally clause of a try/catch block.
Two main things.
The generic any-language answer is that a pre-processor is awkward, fragile, and ugly. It's parsed, processed, and structured differently from the code -- it has different tokens and different semantics; it can lead to code that's a nightmare to maintain, and makes automatic source processing much harder.
And the Java-specific answer is that, as the parent says about 'goto', there are better ways to do any of the things you might want a preprocessor for:
- Probably the main one is to work around different compilers, OSs, architectures, and platforms. But Java is one platform; if you need to do something that different on each underlying OS or system, then you're doing something wrong!
-
Another reason is isolation of constants and other singletons (is that what you mean by your comment about 'login'?); but Java has better ways to handle these (class constants, static finals, singletons, &c).
-
A third reason is optimisation; but that's the sort of thing that a dynamic compiler can probably decide better than you can, especially given that your code may run on different JVMs with different characteristics. (Some 'optimisations' made to early Java code actually slow it down when run on more recent dynamic JVMs.)
-
A fourth is conditional compilation for assertions or other development aids; again, you can do this more neatly with a simple 'if' statement -- and a decent compiler or runtime will optimise it away when not used.
In short, there are no reasons for a preprocessor in Java, and lots of reasons against.Ceterum censeo subscriptionem esse delendam.
I'm confused.. won't Java belong to whoever buys Sun?
For an implementation to use the Java trademark, it must pass Sun's tests. The source is already "open" (easily available). Anybody can make changes and call it "Java", as long as it still passes the tests.
That sounds like "open source". We all want Java to retain its portability, so Sun requiring the tests is valid. The tests could be (and effectively are) under the control of the JCP, so that process is "open", although it is design by committee, which frightens me, but is the basic premise of the FSS community.
The issue is how to make Java free to redistribute. Under the current license, no JVM can be included in a totally free distribution. Is there some license that can protect the trademark and portability that allows free distribution? Can such a license be written that is acceptable to Sun?
Transfer the Java trademark to the JCP. Fund the JCP to protect it. Allow the JVM and all associated tchnologies to use the trademark if the tests score 100%. Allow free redistribution of certified code.
You could still modify your JVM for internal use, but you must recertify it if you want to distribute it. Is that close enough to the intent of the GPL to satisfy RMS? (No, they would not be using the GPL, but that should solve all real world issues without allowing Java to fragment.)
---
MS JVM:
Why do most people assign to malevolence what can easily be assigned to stupidity?
MS did not write a JVM that met the standards. In THIS case, they did it to add proprietary extensions to better allow virus and other integration with their OS.
But MS has a very lengthy record of not being able to write programs very well. Their original claim-to-fame was the BASIC interpreter that could not interpret the BASIC language. Their version became the standard we all learned to program in the early 80s, but they did not change it because they wanted to steal the market from all those other (nonexistent) BASIC interpreters; they changed it because they did not have the technical ability to write it correctly.
They have since won many software markets. I do not know of one case where the software they sold to capture the market was better than the current leader. The closest examples are when they leveraged MSWindows3 to capture the GUI market while making certain their competitors did not have the APIs to be able to write software for MSWindows3. Usually MS writes programs that work worse than the existing leader, then use their marketing and monopoly to conquer.
Every programmer will tell you that it is easier to write an application when there is already a working version. MS has repeated failed to match the existing functionality for their early releases.
Did MS change the JVM because they wanted to corrupt it? Or was it simply that they did not have the technical expertise to write it without corrupting it?
I spend my life entertaining my brain.
Once open sourced, it cannot ever be bought out and buried.
We all know who I'm talking about. And frankly, Sun does look pretty weak these days. I wonder if they'll be around in 5 years.
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
How will opening Java help Sun make more money?
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...
Ceterum censeo subscriptionem esse delendam.
I think it's time for a regime change at Sun. They need someone in charge who is willing to let go of the 1980s software business mentality and adapt to the modern world.
You can't sell proprietary UNIX when others can get it for free. You can't sell StarOffice when you can get OO.org for free. You can't sell $8000 UltraSPARC workstations when you can build more powerful AMD64 machines for an 1/8th the price. You can't lock down a programming language that people want to use when there are so many other competing technologies that they can turn to.
It seems to me that Java is going to be dead within the next couple of years if it doesn't open up and become a Free standard.
Wouldn't it suck if Sun went under and Microsoft bought up all of their assets, including Java, and then killed it all? Don't laugh; it could happen.
-Jem" Open Source and GPL have very little to do with each other. GPLing something would Open Source it"
Read this again and again until you "get" that this is nonsensical. At best.
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.
Okay, I suppose I could read the legalese; but I figured I'd take a crack at you already knowing the answer.
Can anybody implement the spec, and is that right perpetual. What I mean is: if Sun decided, could they invalidate the license for non-Sun implementations? Could they sell their rights to another company that could then either pull the rights, or effectively stifle any innovation, allowing the language to grow obsolete?
You see, as long as Sun can't get people "hooked on their crack" -- giving it away at first, and then charging a bundle -- I don't see the problem with Java as it is. What's the deal?
quiquid id est, timeo puellas et oscula dantes.
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).
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.
Please enlighten me? Why GPL Java?
That question itself points out a core problem with Java: it isn't a standard, it is just an implementation: Sun's implementation (and its derivatives: IBM, Blackdown, Apple). None of the implementations (gc, kaffe, waba) that don't derive from Sun's are even close to being compatible.
Before we can talk about Sun open sourcing their Java implementation, we have to talk about making Java an open standard. Right now, it is further away from that goal than even Microsoft Windows is.
In any case, it doesn't matter anymore. I doubt that it makes much of a difference at this point what Sun does with the Java license. I think the world is going to move away from Java over the next few years--Sun screwed up.
OK, here's the deal with the Java source code: You can get it. You can modify it. You can redistribute it. [...] It has to pass Sun's compatibility tests.
What the Java licenses come down to is that Sun retains control over Java: they can kill anybody who doesn't fit into their business plans, and they can kill any modifications to Java that they don't like. Furthermore, once you look at their source code, they own you.
And, as a purely practical matter, there are no open source Java implementations, there are only incomplete and incompatible bits and pieces. And that's not because open source developers can't handle a project like that, it's because Sun has set things up that way.
Open source should give up on Java: Sun has proven to be a dangerous and unreliable partner, and it would be best to move on to something independent of that company.
"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.
...
That's a huge issue, for several reasons.
First, it effectively gives Sun a veto over any implementation they don't like, because they administer the tests. There is no defined process by which you can appeal their decision.
Second, Sun can change their mind at any time: they own specifications, they own the code everybody uses to implement it, and they can change how they license that. One scenario under which that would happen is if Sun goes out of business or gets acquired--the new owner may want to take Java in a different direction.
Third, being able to make incompatible changes is exactly what open source is about. Large parts of the Java platform just suck and are begging to be removed and replaced with something better.
Isn't the availablity of the source most important? Or perhaps I'm misunderstanding something
Availabilty of source by itself is actually dangerous in the case of Java: not only are you restricted in what you can do with it, if you look at it, you can't even work on competing implementations.
Open source is only useful if you can modify it freely and redistribute your modifications.
Sun's Java licenses not only prevent you from freely modifying and redistributing Sun's code, they even prevent you from writing your own, modified version of Java independently and redistributing that.
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.
+1 Damn Straight!
Open Source is not a trademark because it is a generic term. OSI has a trademarked logo, but that's it.
You want something Sun spent 100's of million dollars developing, and protecting for free.
We're not talking about money. Why do you think a closed source Java bring them more money ?
And why do you think they opensourced OpenOffice ?
wtf.n0x.org
Also, who even owns the code? Gosling didn't write all of it. Sun owns the trademark, they are the ones who can market a toolkit called Java, whatever that may be.
I frankly don't see what Sun has to gain by making Java open source..
I am the maverick of Slashdot
Well, my little rabbit, by making it open source, they still retain their copyrights on it, so they can still licence it to whoever they want.
OTOH, anyone using the GPL version is stuck in the GPL loop, and must open every enhancement he makes, thus helping Sun in the process.
As it is right now, anyone can use the Java platform freely, so it's not like tey will loose much customers in the process. Most of these customers certainly have their own set of patches they don't want to divulge : this is a strong reason not to stop paying the licence fee to the closed source version of java.
You're comparing two things which aren't even remotely the same, AND putting words in my mouth. Nice.
/end rant
Since you've deemed them directly comparable, I'm going to keep using Apple and OS X as my examples to illustrate how I feel. OS X clearly IS NOT OPEN SOURCE. However, Apple is pretty clearly FOR THE OPEN SOURCE COMMUNITY, this can be shown by the giving back of the source code to Konqueror from Safari, and from the Darwin project. See? Not open-source, but for the open source community. So, no it's not like I'm one of the close-minded prats you make me out the be.
There are grey areas, on many things. Not on if something is open source or not. Another example could be if or not someone is dead. This is pretty fucking black and white. Now, how they died--murder? suicide? accident?--might be ENTIRELY up for debate. There are other factors to look at for that.
So I'm trying to get my Debian systems to do Java. I poke around a bit, find the mirror for the Java Debian packages. Edit sources.list, apt-get update, apt-get install j2sdk1.4. So far, so good.
Time to get some apps. Eclipse is in my apt cache already, so I install the platform and the Java build plugins. Run Eclipse. Segfault. The exception log tells me that there's some bad juju between Java and libc6.
So I'm stuck. I could go outside the package system, and do an equivs thing so Java apps in Debian really think I've got a Java runtime. That might work, but it's pretty technical. Or I could give up on apt and do all the manual copying of jars around. That also seems like a lot of work.
Or I could do what I'm in fact doing: nothing.
So I poke around a little more, and find the MonoDevelop apt repository. (Mono itself is already in Debian.) An "apt-get install mono" and "apt-get install monodevelop" later, I'm writing apps in C#, in less time than it took me to figure out why Eclipse was segfaulting. No hassle, no mess, no fuss.
Why? Simple: Mono is open source. Debian people have the right and the ability to make Mono work well on Debian. No bureaucracy has to approve fixes to Mono that make it work better on Debian.
On Java, they'd have to go through all the hassle of getting their software tested every time they tweak a packaging problem or change a path, and then they have to nag Sun to actually pay attention long enough to give the OK. The hurdles are too high; getting Java working well on Debian is just not worth doing. The exception logs are evidence of that.
So maybe you think constant segfaults are "pretty good". Me, I'd rather use a Microsoft technology than clear all the hurdles Sun erects to protect the purity of their technology from those evil users. I doubt I'm alone in that regard.
Mr. Gosling, the star-programmer king of ad hominems, reverses himself. What fun.
Parent is trying to claim open-source fragmentation because gcc has extensions that the Solaris native compiler doesn't. THAT IS NOT A VALID EXAMPLE OF FOSS FRAGMENTATION. In fact, it's logical considering they target different totally different architectures...
It would be great to have a language free of decimal.
-I am an elective eunuch.
...why don't they release Lotus SmartSuite as FOSS?
Got time? Spend some of it coding or testing
You seem to imply that there is someone else willing to buy it for $1 billion, and that by Freeing it they are somehow "giving it away", yet no such thing has been established.
As others have pointed out, the reality of the situation is Sun can either Free it making it as pervasive as Python or Perl is, or they can horde it and be paranoid, and it will be eclipsed by Mono/C#/GNU-Classpath. It is their choice entirely.
As the subject line sugests, I think open sourcing Java would be a great thing for Java. The problem is that it's not such a great thing for Sun. As shown in this thread/article, Sun is not doing so well. They really don't have a lot going for them. Java is one of the few big things happening at Sun right now. Why would they want to let go of Java right now? At the very least, Java makes them look like a good IBM acquisition in case things really start to go south.
Why this surprises me, I don't know, but for god's sake, stop seeing the world with Linux coloured glasses and see it as it really is.
Gosling's position on open-sourcing Java is well understood:
http://today.java.net/jag/page7.html#62
OSS has absolutely nothing of value to offer Java.
This is a very thought provoking post and deserves to be modded up.
Any GNU/Linux distribution cares if it is strict about being Open Source, because it can't include Sun's Java. This is includes Debian and Red Hat / Fedora. Likewise, these distributions can't include (as part of the core distriction at least) any software that depends on non-Free Java, including most Apache Java software. (Apache is heavily in bed with Sun, and is happy to develop code that depends on Sun-only features - though the GNU/Free Java community can run more and more of these Apache packages.)
This hurts (or at least inconveniences) everybody who uses these distributions. If Free Java and Sun could share more code, then there might be a lot GNU/Linux "system" software (including pre-installed applications) written in Java.
I think you were responding to the part about MS. I had difficulty finding the relevance to the Java portion of my post. If so...
I agree the MS has embodied the concept of corporate evil. They have done more to slow the progress of computer technology than anyone would have thought possible 2 decades ago. They have made the market fearful by destroying the inventors, and removing their inventions from the world.
We judge people by their past actions.
MS has been UNABLE to write a decent program in 30 years, so when I see they have failed at their latest effort, I assume that they just do not understand how to do it. But their large bank account implies some form of competence, and since they consistently demonstrate the ethics of a jackal on a mouse farm, many people assume that their failure to write a good program is due to some evil corporate strategy.
It was just a theory. I believe that Billy got lucky, mostly by picking good parents and being born without a conscience. MS has yet to demonstrate any competence at programming, but you may be correct that their awful programming is just part of the strategy to slow the progress of computer technology.
I spend my life entertaining my brain.
You are mostly agreeing with me, but we disagree that Java can survive forking.
The fight is about the trademark. The source is already available. So far, only MS has tried to fork it, and they lost the fight with Sun because of the trademark. That is why their versions are now known as J++ and C#. MS can embrace and extend Java all they want, but they cannot call it Java.
I like that there is only one JVM that cannot run my Java. (The MS JVM 1.1 installed with MSIE browsers makes it difficult to write Applets.) If we allow GPL-style forking, then Java will be forked and we (prgrammers) will need to test for functionality before using it. Yes, there will be pressure to merge the forks, but their existance will make our job almost impossible. Some form of certification program is needed. Today I can release a program requiring Java1.3. I do not want to release a program for IBM Java 1.6, then rewrite it for RedHat Java 1.6, then rewrite it for MS Java 1.6. If I want to do that much work, I will program in C or C++.
We want that
Redhat, SuSE, Debian all shipped Sun's JRE - so it was there, on the CD, ready to go
The current license makes that illegal. That is what needs fixing. Java needs a license that allows free redistribution (of certified versions), but releasing Java under the GPL is overkill because ANY forking will kill Java's primary purpose.
I love that the sandbox and the memory handler (garbage collection) make it easy to write safe programs. Java 1.5 is removing some of the verbosity. But portability is the main strength, and that must be protected.
There are already 3 versions of Java, including a "Mini Java" for cell phones. You can also include many optional extensions (packages) depending on your use. What features are you expecting a fork to improve? Are any of them worth the development headaches of having multiple forks?
I spend my life entertaining my brain.
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.
Uttering logically derived and empirically supported truths to the disciples of the orthodox establishment.
I've never played with any of the open source implementations of java, but would anyone care to inform me how well they perform, and why there are (at least) 3 of them?
Wednesday: ???
and
Saturday: Profit!!!
Seriously, though, that's about what would happen if it became completely open source and there is absolutely nothing funny about it.
Sigs for Nerds. Sigs that Matter.
Im readin a great deal of posts here that talk about the dire consequences of open sourcing sun-java; there will be forking and everyone will make their own little version, etc etc...
/.-post subject ;])).
This 'chaos' argument (as i like to call it) that people like to use (for all sorts of things including 'runaway human population')is invalid because of the one constraint which any real system will exhibit (commonly a resource constraint(Such as the one that inhibits the overly-lengthy
- return the code to the community
- ship only that code on their monopoly platform.
Now the majority of Java written will run only on MS servers withThat make Mono critical to any Java implementation, and doesn't make it any easier than Wine... which is to say, makes it a sngle point of failure.
--dave
davecb@spamcop.net
Yesterday, we talked about GPL-ed Solaris, and we are talking about open source Java... So, what's interesting thing tomorrow?
Ok, death from a purely biological/chemical perspective. Bring in mental activity or the concept of a soul and you open a whole can of worms. I know some people who walk around just find who I swear have no electrical activity in their minds...
1. Performance? My experimentation 6 months ago with compute/object-intensive code showed a fully-optimized GCJ only getting 30% the speed of the latest Sun JVM.
GCJ isn't perfect (yet), but for the most part it produces pretty good code that matches or exceeds JRE performance on most large applications. If you are seeing such a large performance discrepency then most likely there is some bottleneck in the libgcj runtime/class libraries that your code is tripping over. We are fixing such problems regularly, but can't do so if we don't know about them. If your code runs poorly on GCJ then *please* send a message to java@gcc.gnu.org describing what you are doing or, better, with a test case/sample code. We'll do our best to help.
2. Popular applications? Can Jakarta Tomcat with JSP, etc., a common open source Java-based web server be run on it? If not, there is a clear list of what it is missing.
Tomcat runs great on GCJ. The issue today is not so much what GCJ can run, but making it easier for folks to build & run large scale applications like Tomcat and J2EE servers. The "native compiler" compilation and execution paradigm is substantially different from that of the traditional JVM, and this means it can be a lot of work to convert everything from an ant/javac build system to a native one. Solutions to this issue are a big focus for the GCJ development community right now.
3. Web applications sandbox? How about loading untrusted applications over the internet and running them in a security sandbox?
Infrastructure for the java security model is largely in place in libgcj already. There are a few bits remaining to be sorted out, but we should have a completely functional java.security AccessController/SecurityManager within the next few weeks. This will allow you to securely run a) untrusted bytecode, and b) untrusted bytecode compiled to native in a trusted compliation environment.
4. Is GTK or QT really ready to be the free cross-platform Java standard for UI?
Absolutely. Just look at java-gnome. The day will soon come when many of your native linux desktop applications are written in Java, and you won't even notice the difference.
Is there licensing preventing bundling of IBM's Eclipse UI toolkit with GCJ?
Unfortunately, it appears so. IBM's CPL, although a certified free software license, has been decreed incompatible with the GPL. This doesn't stop you writing SWT applications with GCJ, of course - many do. But the SWT itself will need to be distributed with your application or at least in a separate shared library.
Is relicensing under GPL possible?
Better ask IBM. I certainly hope a solution can be found to this problem.
Most of my professional work includes Lotus Notes (LN), but I use the best language for each project, or part of a project.
I started with Sun JVM, then switched to the IBM JVM. I tried a couple of others, but could not find any advantages over the 2 corporate versions. I think IBM included code to make the JVM work better with their products. I had more than one major issue that disappeared when I switched to IBM's JVM. All the core functionality worked with either, but the integration was better with IBM's.
That worked with LN5. IBM decided that including Java with Lotus Notes was hurting WebSphere, so they trashed Java with LN6. Servlets that ran in seconds on an old server would timeout on a much better server. The integration issues with any JVM are worse than ever.
IBM has been using WebSphere to take Java away from Sun. This whole discussion shows the attack has been successful. I wish the Java issue was decided so IBM would improve LN rather than steal technology from LN to improve WebSphere. If the JVM was forkable, then IBM would be the first to fork it. (Not that MS would not try, but IBM has slightly better programmers than MS, so IBM would finish first.) My programs would require the IBM JVM, and that defeats the purpose of opening Java.
I spend my life entertaining my brain.
Unbelievable that someone would mod this as a troll. Some of the /. mods are just plain morons.
Bought and buried by who? Microsoft couldn't even talk quietly about buying Sun without the DOJ having an anti-trust hissy fit. If Oracle can't acquire PeopleSoft then what chance does Microsoft or IBM have to acquire Sun?
Right now "Offical Sun" Java suffers from far too much feature creep for newbies or average users. There are too many editors, graphics apis, and program structure models....and it seems Sun is always making new ones! Frankly they should give up on what they've already lost...They should ditch Swing for GTK bindings, opens source Netbeans [to merge it into Eclipse] and cull any other "extraneous" stuff they've got in the closet.
The idea of the "Core" Java as Sun proprietary isn't really that far fetched...perhaps it would actually be better for the language. After all, even Linux has a pseudo-owner in Linus & GNU in RMS. It's not like people can't take the stuff and do what they want with it, but most of the OSS projects have fairly strong individual or corperate leadership...It helps keep things moving! If Sun was to give up control [or rather follow the users!] over some things they would appear much more responsive. They don't necessaraly have to give up the "gems" to satisfy the public.
I really don't understand what the big deal with open source Java. But I think when your major competitors are calling for you to open source your applications -- well, that can't be a good decision.
More than this, one (who's not a lawyer, dunno what a lawyer would say) could easily interpret "(iii) you do not distribute additional software intended to replace any component(s) of the Software" to mean that your license to distribute Java is revoked if you *ever* distribute kaffe, gcj or any other free software Java implementation.
.NET to replace Java.
Notice that clause iii isn't qualified with "...along with the Software" or anything like that. Even clause i includes the language "for the sole purpose of running your Programs" meaning that if you include it as a general purpose Java VM for your Linux distribution, merely including a couple example programs won't be enough to avoid violating the terms of the license.
I doubt Sun would be that stupid since they do seem to want Java to be adopted, but if a free software implementation of Java were to start stealing Sun Java's fire.... all bets would be off.
It's even possible that Mono could be cause for termination of the above license. Microsoft certainly intends
pub vs public, priv vs private, prot vs protected, ...
"It divides and conqueres with Engineering-Reverse: 10000000 bytes closedsource / 100 haxors = 100000 bytes by haxor."
In order to have a driving force that is aggressive in succeeding STRATEGICALLY with Java, open sourcing it may not be the solution.
Java is competing with others (Microsoft empire) who have that aggressive single minded strategy which open source just may not provide.....million people doing different things but who holds it ALL together into a technical, marketing strategy that can make it succeed ? Solve this question in open source and THEN 'open source' Java. We would all be happier to see Java then succeed regardless of what the evil empire does !