Sun Microsystems Inc is open to relinquishing stewardship of Java to a neutral third party, but is apparently against releasing the language to open source under GPL.The company’s software chief said an organization such as certification and program management specialist KeyLabs could be suited to managing Java. However, Sun is anxious to prevent forking, with different versions of Java and therefore a KeyLabs-type guardian would have to continue compatibility testing.
How often does a programming language get forked?
Python -> Jython?
use bsd license or simular then
No Integers then? Damn.
The whole point of the GPL is that if someone implemenets an addition or a ‘fork’, then you can take the code and implement it back to the original platform. GPL is the perfect license due to its ‘viral nature’, as some trolls like to call it. Microsoft wont touch it with a 5 ft. poll (unless its through SCO )
How About…
By Anonymous
Python -> Jython?
Umm, nope. Python is a standard. CPython is the implementation that most everybody uses and the one leading the Python the Standard. Jython is another implementation to the Python standard (I believe it is still 2.1). Saying Jython is a fork of Python is like saying one implementation of a C compiler is a fork of another.
GPL it but Suns keeps the trademark. Pass the conformance test at KeyLabs and you get a license to use the trademark. A GPL’d semi-compatible Java that can’t be called Java isn’t worth much.
Yes, the GPL makes sure that the fork is open, but what if MS makes a java-fork that does stuff a bit differently. They have to release that code, but then it is Java’s standard’s body job to support the changes to make them compatable, otherwise MS has forked the project.
How often does a programming language get forked?
Pretty much every time someone writes a compiler. Even when there’s a standard for the language, the little extensions start piling up and all of sudden you have a dialect.
How often does a programming language get forked?
Microsoft already did it once with their JVM. As great as an open source java sounds, I must agree I have not been able to think of a way to prevent fragmentation of java if this happens. And one of the main philosophy’s of Java is write once, run anywhere – without this java is no longer java.
“Microsoft wont touch it [GPL] with a 5 ft. poll (unless its through SCO”
They did. They can’t “embrace & extend” it. They’ll just have to comply, which they did. It’s called Microsoft UNIX Services For Windows and was outsourced to a 3rd party company. GPL and BSD all over the place.
How often does a programming language get forked?
Smalltalk > ST-80 (several vendors) | ST V
C > Ansi-C | Objective-C | C++
LISP > Scheme
Just to name the big 3.
The GPL is a higly-selective form of evolution. Whoever comes up with the best implementation would rule the day. Whoever forks it still has to provide the code if they want to distribute it.
Most vendors will go with Sun, because they were the original creators of the language and they have the brand name.
Sun may not want to go with the GPL because doing so legitimizes it, which they may not want to do, given that 1) they have funded SCO, and 2)SCO is suing IBM and claiming that the GPL is unconstitutional, bad for your health, and a million other things.
Whoever comes up with the best implementation would rule the day. Whoever forks it still has to provide the code if they want to distribute it.
You’re missing the point altogether. Sure the “best” version may have the most users. However there is still the possibility of multiple, incompatable versions. “Write once, run anywhere” means that it will run under ANY jvm the same way, and that is wat Sun does not want to risk – it has NOTHING to do with the GPL.
Saying sun is afraid of legitmizing the GPL is like saying Linux wouldn’t want to legitmize it. Don’t forget that OpenOffice is released under the GPL and also has their own linux distribution (Sun Java Desktop).
This is definately one of the best articles I’ve read on OSNews. SUN made a very god decision by NOT following this hype and opening their property. We can finally close this chapter where some people whine that they can’t have the source and probably trash it and make it incompatible like they did with many other things.
Thanks SUN!
BSD license? Wouldn’t that be even worse (from Sun’s perspective)?
Software group executive vice president Jonathan Schwartz told press this week: “Linux GPL allows for people to fork. There’s no forking in the kernel, because the kernel is supplied by one guy.”
What does he mean with “supplied”?
There might be no forking, but there’s multiple branches, patchsets, and patches all over the place.
Why not make Java an ISO standard and release the related Java source code under an Open Source compatible license? The ISO standard would preserve the integrity of the Java language and platform, and the Open Source license would allow third party developers to port it to whatever platform they want.
The solution seems clear to me. What am I missing?
The geneology even more interesting then that. After Lisp 1.5, many different varients of the language (MacLisp, ZetaLisp, Interlisp, etc) developed. Other languages sprouted from a Lisp origin, including Scheme and Dylan. Smalltalk also has a lot of Lispyness in it.
This actually goes to show you that languages forking isn’t necessarily a bad thing. Today, you’ve got several Lisp-family languages that have different design goals. Very loosly, Common Lisp is large and useful, Scheme is small and elegant, Smalltalk is completely OOP, Dylan is fast, etc. If Lisp had been forced to remain a single language by some standards body, many of these innovative languages would never have developed.
Java is interesting because it too seems to be getting popular as a basis for new languages. Take, for example, Pizza and Generic Java. Freely-available sources to the Sun JIT could be a great boon for such projects. Of course, if you’re just trying to maintain the status quo…
Why do they have to conform to an existing license? Why not just use an existing open source license as a base, and add a “no-forking without our express permission” clause?
This actually goes to show you that languages forking isn’t necessarily a bad thing. Today, you’ve got several Lisp-family languages that have different design goals
Yeah, but Java’s main design goal is “write once, run anywhere”, as been pointed out. It totally defeats the purpose to let the same thing happen like in Lisp or others. Preventing incompatibility, when it’s absolutely essential, among a variety of implementations is *impossible*.
Personally I don’t care for Java, but Sun shouldn’t have to feel compelled to do anything. It’s their invention. Open Source is great, but if someone doesn’t want to do it, OSS advocates shouldn’t complicate things. It basically comes down to giving developers a guilt trip, about products they have little say-so in, and it just escalates — They should feel lucky their voices are heard at all.
If someone told me they could improve my songs or my paintings, I’d tell them to “fuck off, do your own shit”, and if they persisted, I’d stomp their faces in. “Freedom” is relative.
If someone told me they could improve my songs or my paintings
Heh, covering my tracks here: What I mean is, if someone told me to give up my rights and ownership to improve my stuff etc..
Which is, a completely bizarre concept…and really, software is no different as an “art”…If the artist wants that kind of work process, then great…It’s the villianization of IP that I don’t like.
don’t forget, Sun Java isn’t the quickest of the bunch, java has already been ported to other platforms and open source JVMs exist. Having the code to the sun one is unnecessary and quite frankly lazy. Not everything needs to be open source to be an open standard.
don’t forget, Sun Java isn’t the quickest of the bunch, java has already been ported to other platforms and open source JVMs exist. Having the code to the sun one is unnecessary and quite frankly lazy. Not everything needs to be open source to be an open standard.
Exactly. It goes back down to my “F*ck off, do your own sh*t” comment. So somebody has done their own, so why not support that?
By Opensourcing Java, it would become a community project allowing other developers to analyse the source and add features, etc… while still being the major force behind the project (much like Sun is with Gnome and OpenOffice) This would allow rapid development growth and attract more developers to the platform because newer better features would be added faster. Now if someone decides to fork Java and add features, etc…, it wouldnt be able to be called Java, this way you still have the “write once run everywhere” mentallity, since if you write a java program it will work on *any* Java VM since only the official one can be called Java.
Now if they liscense it under the GPL, that means any fork has to make their source available, so any cool new features could be easily added back into the official Java so compatibility between implementations would stay high.
Now if they decide that they want to make it opensource but *not* community, like for instance XFree86 model where only ceartain people can work on the main project, a fork will probably occur which allows community involvement, in which case, it will become better than the official Java over time and Sun either must implement the community Java back into the official, or die a slow miserable death as noone will use the official implementation anymore.
You dont really have to worry about forks unless a) it is not a community driven project and/or the core team are bastards (XFREE), b) development basically stalls without any new enhancements (XFREE), c) the need for a similar yet different project (Debian/Knoppix)
Sun could be like what morton is for the 2.6 kernel, decides what is implented and what isnt for the final version other patches / forks can occur, but the main branch will be the one maintained by sun everyone would have to adhere to that standard one for “Write once, run anywhere” functionality other patches / forks can deal with specific developments not specifically the required functionality, if the patches/forks prove worthwhile then they can be merged back into the main tree like how the kernel works,
morton had his own patchset the mm1 patches, they were proved as worthwhile patches and are being rapidly merged back in. At the same time other patches exist that deal with specific issues and probably wont ever be merged. Ultimately if this is done to java for the coders that want the “Write once, run anywhere” functionality they will code to the standards of the main branch. If the coder isnt particularly bothered about that functionality then they can go with a fork/patchset that may not be compatible, ultimately it gives more flexibility to the coder working on top of java and the coders working on java. As far as i can see java would only benefit from this. If it is gpled, then there is no chance it would be assimilated by a company like microsoft that would deliberatly break compliance to the java core, at most people working on it would want it all to fall in line.
They could add a clause along the lines of forking for experimental work to be allowed but not to fork to make java non standards complient. You get what i mean. Basically stopping any platform from abusing compatibility for their own platform gain. At the same time allowing free development that may break, platform independance. Ultimately even if microsoft where to try and embrace and extend it, so as to break compatibilty everyone could see exactly what they have been up to and if its shown that they are breaking compatibility for no other reason than their own gain then they would be forced to run the same core as everyone else, if however its shown that what they have done provides improvements into windows then it can be merged back in.
I hope someone understands what im trying to get at.
I told you so, I was notified of this months ago by Sun, as you can see in my previous posts. The GPL is not right for Java, its not right for alot of things, but it is right for some things. The BSD does not prevent forking however sun does love the BSD.
They will likely create their own license.
The biggest problem with bsd is it would lead to exactly what sun dont want, Masses of incompatibility. If java was released under the bsd licence forget java ever working correctly working on the microsoft platfom it would be embraced and extended within the day it got released under the bsd licence. (dont forget ms already have their own, standards breaking jvm and they would happily try and destroy java)
Microsoft would stand to gain a lot by breaking javas independant platform notion.
“By Opensourcing Java, it would become a community project allowing other developers to analyse the source and add features, etc…”
This is exactly what they DON’T want to happen, MS added features which could have been ported back but they didn’t want them!
As for .net dying, I don’t know what planet you live on but every single company I deal with is currently implementing it and moving from other technologies (which scuppered my plans for an open source firm!) so I hardly think it’s dying. remember, 90% of desktops run wondows and .net is the best way to implement a windows solution.
I think comparing Java to other open source applications like OpenOffice is inappropriate.
First of all, Java the language should remain stable without adding new features. The language itself right now is already powerful. Any other additions is just candy for the developer or will only be used by 1% of them.
Java the VM can be open source but I’d question whether anyone would want to tinker with the source. Only algorithm geeks would want to touch it. Most modifications are just for speed, performance and conformance.
Java the library/API can grow but it doesn’t need to be open source to grow. Java already has an extension mechanism to handle third party libraries. Only the most useful libraries that benefit the most people should be included in the official release. The entire library is already 14 MB so it should shrink rather than grow.
Java development tools are already open source. Netbeans, Eclipse, Ant, JUnit, etc.
Forking of Java is not possible. If it is GPL or not.
Java have already a trademark.
All Java-incompatible implemantations will never called “Java”.
So, Suns fear is unfounded.
yeah, you may right.
“IBM” also a trademark.
every PC nowaday once called “IBM-compatible”,
and everybody happy with it.
people knows it’s not IBM,
but also knows that it just works like IBM’s.
so having “IBM” on the box or not, is not a matter.
First of all, you have OpenOffice.org which hasn’t exactly seen extensive forking into rampantly-popular competing projects. Sun could learn from their own experiences for once.
Secondly, Sun can still control the Java trademark (or better still an independent group could do so), thus preventing interoperability sabotage by malicious third parties.
All this shows that Schwartz is living in the early 1990s with his restrictive control mechanisms and notionally independent standardisation bodies. Had Sun actually made a real open source release five years ago, Java would be shipping in supported versions on dozens of platforms, and Microsoft would have been under real pressure to play along. But what happened instead? Sun supports one of their own operating system and architecture combinations (possibly Solaris/Intel as well now), along with Windows/Intel, eventually getting round to shipping a Linux/Intel version way after they should have.
Yes, there’s the “community source” release, too – another sign that Sun risks “not getting it” until it’s way too late and everyone else is using something else.
C++/C is a perfect example of project mgmt not being able to say NO to change requests.
With Java we get a Tight Security Model.
With a GPL’s Java I’m sure we will get POINTERS in a matter of days, and there goes the security model.
First of all, as those who believe in the cause of OSS, we must commend Sun Microsystems for their continued support and cooperation with the community. The contributions they have made have been invaluable. Though they have certainly benefitted from this relationship also, but they have also reciprocated. Now as far as Java is concerned, they are being perfectly reasonable. Sun is willing to open up Java because they feel it will benefit them in competing with MS. It would fail to compete with MS if Java lost it’s cross-platform capabilities in any way. That is exactly what would happen if forking were to occur. This would benefit no one. The main benefit to the community would be a loosening of the stranglehold MS has over the entire software industry. That is why we need Java. That is also why Java needs us. This is a big thing, make no mistake about it. This is Java vs .NET, Us vs Them, Good vs Evil, etc… I know that everyone here hates the MS monopoly and .NET represents a further and significant extension of that monopoly. We as members of the community need to rally around things like OpenOffice and Java because it is the closest thing there is to an alternative to MS Office and Visual Studio.
I would rather go for a BSD License for Java, I would not GPL the Java code. If they did GPL the Java code then we would have the same problem that we have with Linux, 100 different distributions and 100 different ways of getting the same thing done.
First of all, none of the 100 different distributions would be called Java if Sun enforced the trademark. How many Red Hat distributions are there, other than those produced by Red Hat? Hint: it’s a single digit number.
If they did BSD the Java code then we would have modified versions of that code embedded in a bunch of products without any means of inspecting the implementation. Not that there’s anything wrong with a wider usage of the technology, but it would open up a much bigger set of problems than your hypothetical GPL situation.
the dual stream approach is not a bad idea. just as openoffice and netbeans is developed separately, with sun taking snapshots and beefing them up (maybe with licenced/non-free components) and releasing them periodically.
this would mean that those who wanted the assurance of Sun’s name could use the Sun-Java whilst the more adventurous could use an OpenJava?
t
Adding pointers to Java! Funny. If that happens even I would jump ship.
Now answers IBM. Have a look at:
http://www.computerwire.info/cgnews/23CC6B4EBA60CC8788256E4E00090CE…
>Forking of Java is not possible. If it is GPL or not.
>All Java-incompatible implemantations will never called “Java”.
One could always pull a Lindows type shenanigan and call the fork Lava or something.
Anyway going GPL would be extremely bad, that would mean people wouldn’t even be able to link suns basic java packages to closed source apps because the GPL doens’t allow this, only LGPL does.
“Anyway going GPL would be extremely bad…”
HELLO?! The whole point is to dual-license Java: you as a developer either choose the GPL and release your stuff as open source, or you license it from Sun and get to keep your stuff proprietary. This article says it all and more:
http://linuxtoday.com/developer/2004022402326OPCYDV
> Smalltalk > ST-80 (several vendors) | ST V
> C > Ansi-C | Objective-C | C++
> LISP > Scheme
but these forks were beneficial. forking has become a four letter word but there are cases when it is simply time to fork.
i also am not sure that your analysis of C is correct. ObjC and C++ are not really forks of C. they are new languages based on C.
as for Scheme, this was beneficial to keeping Lisp simplified and in the realm of education. Lisp itself has probably benefited from Scheme.
as for Java, yes someone should still be in control. Perl has Larry, Linux has Linus…there is a need for an authority.
HELLO?! The whole point is to dual-license Java: you as a developer either choose the GPL and release your stuff as open source, or you license it from Sun and get to keep your stuff proprietary. This article says it all and more:
That’s just as bad, that’s falling into a QT like trap. If choice is “buy java or GPL your code”, then most comercial developers will move to .NET.
Explain what pseudo-logic you used to come to that conclusion, please. And explain how that “logic” reconciles the fact that we’ve got several (to a degree incompatible) BSD forks, but only one Linux kernel.
And before mentioning stuff like Real Time Linux, note that those are development branches, not forks!
You bet Lisp has benefited from Scheme. For example, the entire concept of lexical scoping that was incorporated into later Lisps (eg: CL) came from Scheme. Now, this has already happened with Java — Generic Java became generics in Java 1.5. Thus, forking has already proven to be beneficial.
Java have already a trademark.
All Java-incompatible implemantations will never called “Java”.
So, Suns fear is unfounded.
But what happens if HP supports OpenJava, IBM supports NetJava, Dell supports FreeJava and none of them are Java compatible?
Forking is mostly bad, because programmers then have to deal with many different variants. A language fork can actually kill a langauge if its different variants gain popularity and then some will prefer variant A and some will prefer B and so on.
GPL is nice but like other OSS license, it also suffer from the problems of forking. Take for example, emacs vs xemacs fight.
Today if i develop a software in linux, i have to make 10 binary package for 10 popular distributions. If i am a company, it will put so much extra burden of testing on me.
SUN has taken the right decision to not let Java go OSS without control because a fork will break “Write Once Run Anywhere” completely.
How i wish there was one linux standard instead of 100 different distributions. I wish LSB picks up and becomes a standard. Even whole OSS community now is realizing that forking is bad and we need to have standards.
look at C and C++
do gnu, ms, borland, intel, sun, .. have a compiler that implement the *same* C/C++ languages??
can we say this is a fork of programming language?
how many #ifdef lines we need to put into our C/C++ header files, just to make sure that they will compile on as many compilers as possible?? (don’t expected “every”)
no vender cares about ISO or any standard body, if they not forced to do so.
@bact’ – That’s really inaccurate. Most compilers these days are ISO C compatible. So you can write good, portable ISO C code without any more trouble. Good C++ compilers are harder to come by, but that’s not because people don’t care about the ISO C++ standard. Its because the standard is relatively recent (ratified in 1998), but moreso because its fricking hard to implement the C++ standard. Parsing C++ is extremely difficult. There are only a few working C++ parsers in existence — G++’s, Visual C++’s, and EDG’s are the ones that come closest to being correct.
People actually care a lot about standards — EDG prides itself on being the most conformant front-end, Comeau (which uses the EDG-frontend) bills itself as the most conformant compiler. The Visual C++ team hired Herb Sutter (an important member of the C++ community) to help reform their compiler, and made VS.2003 an excellent C++ compiler. And for years the gcc people have put a huge emphasis on making g++ extremely compliant.
@Wolf – For the last time, the “hundreds of distributions” thing has *nothing* to do with forking! If RedHat and Debian aren’t compatible, its not because RedHat is using a forked “RedHat GNOME” and Debian is using a forked “Debian GNOME” but because RedHat includes GNOME 2.4 while Debian includes GNOME 1.4 (or whatever). You’d have this same problem even if the code was closed-source! Actually, it is precisely the problem Java VMs have. Code that works on 1.4.2 often won’t work on 1.3.1. If a distro included 1.3.1, it wouldn’t run code designed for 1.4.2, even though the VM code is closed, and Sun keeps tight control over its development. There are a very high-profile forks (emacs, vs xemacs), but the *vast* majority of GPL’ed code is never forked.
Yes, you’re right. It’s very hard to follow the C++ standard.