Re: A question @Mark Wilaard (and other developer)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Now I have a little bit time, to reply to your comment (I will also write this reply in the forum at http://forums.java.net/jive/thread.jspa?threadID=18036&tstart=0 ).

Yeah thanks. Please also include my other replies if you see fit.

Done.


I think three different OpenSource implementations would be the worst case scenario, if Sun makes its Java OpenSource. Ans I also think, that Suns sees so like I. And I think they want to make it OpenSource, to have _not_ three different implementations.

I disagree. Actually there are already quite a couple of (proprietary) implementations of the Java platform which is also fine for Sun, so why would it be bad for Java to have a couple more?

The diffrent proprietary implementations are based on Suns Java. So it is unlikly that they are more different to Suns Java, then having a completly new and different implementation. Or to show it with browsers: Safari is also a proprietary browser based on KHTML. But it is more compatible to Konquerer then to other browsers.


Well, first thing is, the technical POV is not the only one important to some parties. For example, if Sun would decide to choose to license under GPL, that would be a problem for a reason for some parties to use Classpath or Harmony. Then there are already a couple of VMs that are written to use GNU Classpath and it is probably not trivial to port them to use Sun's class libraries. Then I'm sure there are even some interesting parts in GNU Classpath. I'm thinking about the Gnome/Cairo peers that fit better with common Linux platforms than the Motif based peers that Sun has.

A different you only feel if you use AWT. But if you use Swing there isn't much different, which peers are used.


I am not sure about GNU Crypto but my feeling is that we cover some areas that are not covered by Sun there (and vice versa of course).

In this case a merger would be better, I think.


In the future there could also be interesting cooperation, I am think about the AWT/Swing area here, where GNU Classpath could possibly focus on specialized peers and Swing L&Fs for Gnome and KDE, while Sun focuses more on the core or something similar. Likewise for other areas too, where Classpath and/or Harmony could work one implementing the glue to specific platforms that Sun doesn't want to care about etc etc.

Hmmm... but I still think, it would be better to use Suns Java then for other platforms. There is a difference, if you have one program and port it to different platforms or if you use a complete new written version For example there existing NeoOffice, which is a fork of OpenOffice.org. But they are functional the same. But KOffice and OpenOffice.org are _completely_ different. One of the reasons is, that OpenOffice.org and NeoOffice have the most parts the same code.


A good comparision of the different Java-implementations would be the situation with the different Browsers. All Internet-Browsers want to show the internet-sides. So all takes the same resources and wants to do the same with it.

I also don't think that it's a good idea to have only one browser. I am quite happy that there are a couple of them and that everybody can pick whatever he likes best. I think it's good to have IE, Mozilla, Opera, Konqueror etc all around. The browser situation actually is a good example why having several implementations is a good thing. Think when IE had a marketshare of >95%. This is (arguably was) a time of stagnation, Webdesigners forced to use ugly hacks to make their pages load etc. Having more then one implementation in the market produces an interesting competition and somewhat forces everybody involved to write code that is portable.

The direction, which new features browser have to implement, makes the W3C. Since over five years, the W3C have decided, that SVG-files can be shown in browsers. And how SVG files can be interact with JavaScript andf HTML. Firefox have implemented SVG. Would Firefox the only browser, then there would already a lot of SVG-pictures on some sides existing. But now we must wait until the last browser also supports SVG.

It is also to mention, that SVG isn't fast to implement. And SVG-viewer and -editors are also different then browser-implementations. So there existing SVG-files, which you can see in Inkscape, but not with Apache Batik. Or with Batik, but not with Firefox. Or with Firefox, but not in KDE (KSVG). Or with KDE and not with GNOME (libsvg or librsvg). Or with GNOME, but not with Inkscape.

So, if other browsers are also implementing SVG, there would be SVG-files, which you then also only on one of the browsers can see, but not on the other one.


And imaging, then the JCP decide, that SVG will be part of Java.
The Harmony people can make use of its Batik. Sun have in its Java-implementation already Apache-code, so for Suns implementation it would also no make problems. But Batik is neither under the GNU Classpath license nor have the autors of it signed the Copyright-Assignment, to give the FSF the copyright. So then, GNU Classpath would to reimplement also SVG and the whole problem comes also to Classpath.


The very same thing holds true for Java and actually we already see the bad effects of the dominance of the Sun implementation, which is that many developers write their code against undocumented API, against Sun specific bugs etc etc. That wouldn't be possible when we had several implementations sharing the market equally.

You are right. All have it pros and contras.
On the other side: If Suns implementation is the only one and OpenSource, why not document the undocumented API and make it official?
Important is only, that the API isn't platformdependent.


I thinnk what you and Sun (and many other devlopers) actually care about is not having several implementations of the platform (which we already have, even outside of the Sun/GNU/Apache world), but the problem of keeping them together and most importantly _compatible_. That means that a program written against one implementation should run on other implementations too. (given that the program doesn't use non-public API and doesn't make use of bugs/special behaviour of one impl). In order to avoid that, Sun would need to make the TCK more open. I think this has already been said and I don't felt the need to repeat this. So what I think would be helpful for Java, Sun, and the GNU and Apache community is 1) a sane license to allow cooperation and code exchange and 2) opening up the TCK so that all 3 implementations can be compatible.

You are right, an open TCK would be nice. But the TCK can not test all. And implementations with the same code, are mostly more compatible to each other, then implementations with different code.

Or to mention the pixelgraphic-fomat png: As I know, there existing also only _one_ implementation of png: libpng. All programs are using it. And it have no disadvantage, of having not a second or third implementation of it. Respectively one other implementation of it exists. It comes from Microsoft and Microsoft use it in its InternetExplorer. But that implementation have problems with transparency in png-files.


Greatings
Patrick    -- alias theuserbl




[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux