Skip to main content

Freedom could lead to forking

19 replies [Last post]
cajo
Offline
Joined: 2003-09-28

Were the Java language to be made free, it would fork immediately.

I happen to know this is true; because unless someone beat me to it, I certainly would! :-)

For example, one new version I can readily think of, would certainly support operator overloading, as well as multiple inheritance. I think everyone could even guess the correct syntax already.

So is forking the language a bad thing? No!

Here's why:

The Java team has made their position on this perfectly clear already: they will not provide certain oft-requested features; under any circumstances.

They are certain they know what's in our best interests. So for non-free Java, there are currently no options; other than to pick a different language.

But some of us really think Java is the best language yet! So we're caught in a dilemma.

Now with free Java; consider for example: What if a lot of developers really liked some new Java++ extensions, and began prefering it to "standard" Java? The Java team would have to reconsider their position. Naturally they would be free to add the code to their own compiler as well; and thereby eliminate the need for the fork. The core language would be free to gain all of the most demonstrably popular features!

If most developers didn't use some new features, then it would remain a non-issue for the Java Team. But at least those who really wanted them would be allowed to use them.

This is the essence of freedom! Let developers decide what features are useful or not, after all, they are the ones who have to use them. It would allow the Java language, and its user base, to grow in exciting new directions. Java would become a truly living language. Dead languages, on the other hand, are typically used only in Cathedrals. ;-)

Reasonably, I think Sun should require conformance to the TCK, (at no charge), to ensure that any new versions of the Java language would have no compatibility issues with the rest of the runtime environment.

-John

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
sirian98
Offline
Joined: 2005-12-02

Fork away!
but first change the data structure to a global starting from the VM like in "Forums>>WishList>>Global Packaging for java?". with global packaging all of the base classes would branch out into their own little packages, letting the programmer cut in at any point and do their own thing. It still manages to keep security constricted to within the VM, but allow new functionality at the choice of the user who's VM it is. WOW consumerism is great. Each program defines it's own VM if it needs to while keeping java java. It would be kind of like an OS, but safe!
Please Read my Forum and tell me what you think

murphee
Offline
Joined: 2003-06-10

Er... Why are you talking about "free Java" and "forking"? What you want (as far as I can tell from your post) is a new language, with some similar syntax to Java, that has some further features (Operator Overloading,...).

Have you seen the JVM Languages list http://flp.cs.tu-berlin.de/~tolk/vmlanguages.html

This lists loads of languages for the JVM, some of them are exactly what you want (ie. extensions of the existing Java language).
You don't need to fork anything for this; just look at AspectJ, which is also a extension of the Java language which features Aspect Oriented programming constructs;

--
murphee
http://jroller.com/page/murphee

linuxhippy
Offline
Joined: 2004-01-07

I think you guys do not understand what he wants to tell us.

The main argument not to open java is that it would fork immidetly, and that this would have no consequences at all.
Most developers do not want an extended java-version, and those who like this can use a forked version, which isn't java anymore.
Once Java would be free it would be accepted as way to go for free software development.

jwenting
Offline
Joined: 2003-12-02

we understand him all too well and his attitude is exactly the reason the language should remain under the control of Sun.

His fork would not be Java you say, but you're wrong. If the OS zealots get their way the language spec itself becomes subject to forking and thus anyone who wants to can create a new language based on it and call it Java.
This would lead to a million languages, all called Java, in no time. All of them would have (mutually incompatible) JVMs, thus destroying the platform independence which is Java's greatest selling point.

In effect, those wanting to destroy the language would quickly get their wish because noone will know what JVM to use (and of course the multitude of JVMs won't coexist happily on the same machine) so noone could use Java any more (what Java anyway? Which of the million dialects?).
You'd have the mess of mutually incompatible C++ compilers as well as a need to create a million OS dependent versions of your application to run on every possible JVM implementation your users may have.

cajo
Offline
Joined: 2003-09-28

Zealot? Moi? ;-)

I'd say I'm perhaps more of a [i]technological anarchist[/i]. I don't really go in for labels though, as they quickly become confining.

Besides, it seems to me all the dire [i]'sky is falling'[/i] predictions of the non-free software proponents, smacks more of zealotry. I do not understand how one can cling to such a philosophy, when there is all this mysteriously successful free software around, in direct contradiction to these beliefs.

I could grudgingly welcome ANSI, or more preferably ISO, Java. It's still not free of course, but at least it would be an aristocratic, as opposed to the currently autocratic stewardship.

My viewpoint allows room for flexibility, how about yours?

jwenting
Offline
Joined: 2003-12-02

Have you ever heard of the JCP?
It's far more open than any ANSI or ISO committee will ever be.

If you look closely there are no completely open programming languages like the OS zealots want Java to become.
C++ and C are dictated by ISO.
Perl, Python and all the others are dictated by their creators.

The only reason given by the OS zealots to want the JLS to be open source is that companies are evil (though they usually wrap that in some mumbo jumbo that's what all their arguments boil down to).
Most of them have never used Java and never intend to, all they want is to harm the platform for the further glory of their chosen language (usually C or Perl).

robilad
Offline
Joined: 2004-05-05

> Most of them have never used Java and never intend
> to, all they want is to harm the platform for the
> further glory of their chosen language (usually C or
> Perl).

INTERCAL.

cajo
Offline
Joined: 2003-09-28

Ah, glorious [url=http://www.catb.org/~esr/intercal]INTERCAL[/url], especially on my favorite, the venerable System/360 :-)

Those were the days. Perhaps they will be again!

Perhaps an [url=http://www.ofb.net/~jlm/intercal.html]INTERCAL++[/url] compiler for the JVM.

Anyone?

robilad
Offline
Joined: 2004-05-05

> Were the Java language to be made free, it would fork
> immediately.

I doubt that Sun will ever do that. It's their source, though, so whatever they do with it is cool with me.

You can't put a 'must not distribute unless passes a TCK' restriction in a free software license, so that would not really be free. There is of course a very simple solution: release the TCK under a free license, so that everyone can check how compatible different Java implementations are on their platform.

It takes more than the JVM to do the work, as for example running IBM's JDK on debian-powerpc shows. It simply crashes all the time.

I'm sure it's been certified and passed the TCK with flying colors on whatever powerpc platform IBM tested it, but it just doesn't work on Debian, unless you mess with some environment variables.

I'm sure there are subtle issues with Sun's JVM on other, non-certified platforms too, but as noone is able to isolate them because Sun does not allow us to get the TCK, let alone publish the results, noone can report them back to Sun to help them improve the JDK.

So the implicit message from Sun, if you are running the JDK on Gentoo, *BSD, Debian or another unofficial platform is: buy Red Hat, that's where it's certified to run. Which strikes me as very funny, given Jonathan's recent focus on the more negative sides of Red Hat.

cheers,
dalibor topic

yishai
Offline
Joined: 2003-11-16

[i]You can't put a 'must not distribute unless passes a TCK' restriction in a free software license, so that would not really be free. There is of course a very simple solution: release the TCK under a free license, so that everyone can check how compatible different Java implementations are on their platform.[/i]

What you can do is put a 'You cannot use the Java brand or name in your marketing without express permission from Sun' and then tie the permission to passing the TCK and whatever other non-free conditions Sun would like.

So you could fork it, but you couldn't call it Java, or claim that it runs like Java which would immediately give it a marketing problem.

murphee
Offline
Joined: 2003-06-10

This and further considerations are discussed in this blog entry (Open Source Java FAQ):
http://www.jroller.com/page/murphee/20040426

cajo
Offline
Joined: 2003-09-28

Ausgezeichneten blog Werner!

With regard to your other post: By forking, I do not mean to create a new language; rather to allow Java to grow in functionality via a more competitive, developer-driven process.

cowwoc
Offline
Joined: 2003-08-24

I would like to inject my own opinion into this conversation:

1) My feeling is that most people just want a faster turnaround time for bug fixes, feature requestes and (probably) more informal methods of interacting with Sun engineers. Once that's out of the way, we'll be in a much better state to discuss the more controversial topics -- but until that happens, why are we distracting ourselves?

2) Personally I would like Sun to fork Java once every 10 years. Specifically, release J2SE 2.0 (or by now, 6.0 I guess) in a manner that is not constraint by backwards compatibility issues. Specifically, work on improving API cohesiveness, remove multiple ways of getting the same thing done (i.e. the old way and the new way). etc... The underlying language can remain 100% the same (maybe minor performance tweaks for Generics?) but the focus would be on API refactoring. Meanwhile, they'd keep on supporting J2SE 1.x ... J2SE 2.x would be a testtube baby until there would be enough momentum by developers to move it into the spotlight as the standard distribution and I think this *can* happen. Hey! Even Microsoft eventually dropped APIs from newer releases of Windows. Sun has to acknowledge there are some benefits to dropping some old baggage.

We can keep on deprecating things until the end of time, and I understand the purpose this serves, but at the end of the day the API cohesiveness is suffering and there needs to be a major refactoring sometime in the near future or Core J2SE will go the way of J2EE. Not good.

Gili

atrajano
Offline
Joined: 2004-04-08

Didn't it happen already with C#? :) I'm not sure who came first with annotations, but C# came out to production with it first.

Even shared archives, I think Apple/IBM got those out first and its just coming into Sun, but .Net already has them.

dog
Offline
Joined: 2003-08-22

"For example, one new version I can readily think of, would certainly support operator overloading, as well as multiple inheritance. I think everyone could even guess the correct syntax already."

Yeah.. the complete list might include:

- Multiple inheritance
- Templates (fully functioning)
- Operator overloading
- Destructors
- Direct memory access (pointers)
- Unsafe mode
- Self-made gc's

Now THAT would be a cool language!!

.. oh wait! WE ALREADY HAVE THAT LANGUAGE IT'S CALLED C++

Why don't people get this:

WE MOVED AWAY FROM C++ BECAUSE IT WAS A DIRTY HACK..

DON'T MAKE JAVA THE SAME DIRTY HACK C++ IS!!

You want a "Bazar language" use C++ or Perl. I think it is the antithesis of Java culture.

Or better yet.. write C++ for the JVM.. then you get the best of both worlds, but don't muck with the Java LANGUAGE.. make your own.

terkans
Offline
Joined: 2004-09-17

If you truly wish for a language with those features, write your own compiler to build that language for the JRE platform. Many languages are already doing that, and making sure they interoperate well with the existing Java libraries. Take a look at the languages discussed in the alt.lang.jre columns at ibm/developerworks/java for examples.
Most of those languages are open-source, so grab a copy of their compiler, and start coding your own dream language.

Maarten

mthornton
Offline
Joined: 2003-06-10

"The Java team has made their position on this perfectly clear already: they will not provide certain oft-requested features; under any circumstances."

It isn't just the Java team, but a significant proportion of the user community also want nothing to do with certain proposed extensions.

To be sure there are extensions I would like, but in my opinion forking the language is too high a price.

zatoichi
Offline
Joined: 2004-03-08

"For example, one new version I can readily think of, would certainly support operator overloading, as well as multiple inheritance."

Then it would no longer be Java. Neither of those would advance the language and I agree with the Sun engineers that some things should [b]never[/b] be added to the language.

bkamal
Offline
Joined: 2003-06-10

I am not sure what is that you could possibly do with forking that you cannot with the existing features in Java.