Linked by Michael Klein on Sat 5th Jun 2004 06:48 UTC
This was a letter I recently wrote to Sun's head of global communications, Russ Castronovo, after reading his interview with Chuck Talk on orangecrate.com, and then reading the ongoing pro-/anti-Mono arguments over at PlanetGnome. Now that Sun seems to be on the brink of making the decision to open-source Java (or not to), I thought it would be an appropriate time to take action.
Permalink for comment
To read all comments associated with this story, please click here.
Why did the author address this "open letter" to Sun only? Plenty of other vendors have Java stuff like IBM, BEA, Borland, etc. Why doesn't he send the letter to them and ask them to open source Java [sic].
@zerblat:
"If Sun had opened Java, these projects could have started with Sun's code and put their efforts on enhancing Java, instead of spending all their time and effort on reimplementing what Sun already has done."
The beauty of object orientated programming is that other people can write new objects which override/hide existing objects. If people want to enhance Java, they can subclass existing code. No reimplementation needed.
"Also, reimplementing everything from scratch instead of using Sun's code as a starting point increases the risk of subtle incompatibilities."
...which should be caught by the Java test suite or else it would be considered incompatible.
@Shapeshifter:
"Dimension one:
"Hrm. The code in this Swing class is kinda buggy. If I just do this..."
*an hour or two of code tweaking passes*
"There! Now its about 25% faster. Not bad, but at least my cursor doesn't lag anymore. "
"Hm, now what? Shoot... I can't redistribute the modifications, but I can submit them to the JCP as a patch."
*six months pass, the patch is accepted and rolled into the next Java distribution*
"...well, I only had to wait six months." "
Technically you're not even allowed to tweak existing code. Not unless if you wrote an entirely new class that replaces the existing class. Then you can have the new class subclass the old class and then through polymorphism, use it to replace the old class in your java application. That you can distribute freely. I personally have been doing this with many Swing objects (JList, JTextArea, etc.) by writting my own implementation that subclasses them and then slip them into my existing code.
Why did the author address this "open letter" to Sun only? Plenty of other vendors have Java stuff like IBM, BEA, Borland, etc. Why doesn't he send the letter to them and ask them to open source Java [sic].
"
@zerblat:
"If Sun had opened Java, these projects could have started with Sun's code and put their efforts on enhancing Java, instead of spending all their time and effort on reimplementing what Sun already has done."
The beauty of object orientated programming is that other people can write new objects which override/hide existing objects. If people want to enhance Java, they can subclass existing code. No reimplementation needed.
"Also, reimplementing everything from scratch instead of using Sun's code as a starting point increases the risk of subtle incompatibilities."
...which should be caught by the Java test suite or else it would be considered incompatible.
@Shapeshifter:
"Dimension one:
"Hrm. The code in this Swing class is kinda buggy. If I just do this..."
*an hour or two of code tweaking passes*
"There! Now its about 25% faster. Not bad, but at least my cursor doesn't lag anymore.
"Hm, now what? Shoot... I can't redistribute the modifications, but I can submit them to the JCP as a patch."
*six months pass, the patch is accepted and rolled into the next Java distribution*
"...well, I only had to wait six months." "
Technically you're not even allowed to tweak existing code. Not unless if you wrote an entirely new class that replaces the existing class. Then you can have the new class subclass the old class and then through polymorphism, use it to replace the old class in your java application. That you can distribute freely. I personally have been doing this with many Swing objects (JList, JTextArea, etc.) by writting my own implementation that subclasses them and then slip them into my existing code.