I got a comment a week or so ago on an old post that immediately rubbed me the wrong way. The post was talking about an open source version of Java and its many flaws. In the post, I concluded that it was an admirable project, but wasn’t mature enough to distribute widely. The commenter immediately went for my jugular –here it is:
So you would prefer no Java support at all for free software users? GCJ/GIJ currently aims to support popular apps such as eclipse, azureus, ooo2’s java components and that is the reason it is included in the distros, it is useful at it’s current state even if it does not happen to run every possible java app. You could always modify JUploadr to be runnable on gij so you don’t force anyone to change to a non-free version of java just to upload some pics to Flickr.
Last time I checked, there is a version of Java available for Linux, so you really have to be impressed by someone who starts a conversation with a strawman argument. I especially like the last sentence and how it simultaneously trivialized my application and demanded that I re-write significant portions of it. More impressive is the implication that I’m forcing Linux users to switch java versions. Excuse me? I know jUploadr is a nifty little app, but forcing people to switch?
If you read my post, I really didn’t lay into the free version of Java (GCJ/GIJ) when it would be easy to do so. GCJ acts like it’s Java 1.4, but it doesn’t implement a large part of the Java API. That’s like buying a Ford and then finding out that the engine is actually an engine-like shell with no internal parts. I ask you, if you bought a car like this, would you want to build the internals of the engine when there was a Ferrari sitting next to the Ford that you could just take?
I replied that GCJ was nice and all, but I really didn’t want to spend my development time re-implementing stuff that should already be there. The API is one of the reasons I use Java after all –it’s nice to have a bunch of well debugged code to do stuff that you don’t really want to program 500 times. I also said that if he wanted to help, he was more than welcome to. He wrote back –still not offering to help, by the way– and dropped this bomb:
My suggestion to work around this in JUploadr assumed you have desire to let your users have a good experience and make it possible for them in the first place to run the software at all. Few people are going to change to a Sun supported processor architecture/OS or change their values because of JUploadr. They’re simply not going to have running it as an option.
So now the problem is that I want my users to have a bad experience with bad software that doesn’t work well. His argument is really getting strained here since I actually disallowed GCJ/GIJ because I wanted to have my users (you know, the ones who were running my software) to have a good experience. I wanted them to do advanced features like being able to save their preferences, and have that oh-so-useful feature of uploading their pictures to Flickr. You know, the things they can’t do in GCJ. Furthermore, I really admire the two-facedness of his ‘argument’. I’m supposed to write my own preferences API, and it has to work in every architecture/OS/processor that GCJ ’supports’. That’s a task that’s most likely bigger than writing jUploadr in the first place –and the kind of task you’d expect the GCJ/GIJ people to tackle. Finally, I realize that no one is going to change their computer so they can run jUploadr, and it really doesn’t bother me –I’m doing this project out of the desire to have a great program so I can upload my pictures to Flickr. That a thousand or so people use it makes me feel very happy indeed, but I don’t feel that I have some sort of responsibility to support every arcane architecture out there. You know something? If you’re running QNX on a HP-UX processor, you’re not going to run jUploadr. Ever. Sorry.
I’ve been running Linux for ten years now, and have contributed to several open source projects and have to say that if this is the face of the new open source zealots, you can count me out. I’m shocked at the sense of entitlement given off by these posts. I’ve worked hard to write this software, and it rocks. People seem to really enjoy using it, it’s high quality and has an intuitive interface. But apparently, that’s not enough for some people, I have to meet their exact ideology as well. That’s just too bad because if I were to do so, I’m absolutely certain jUploadr would not be as good as it is.
Oh, one last thing. Mr. Open Source Zealot™ runs windows half the time.
May 17th, 2006 at 6:36 am
Luckily this shouldn’t be an issue for much longer, as SUN announced a new license for Java that is compatible with GNU/Linux distributions. Additionally, they are finally going to open source Java!
http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=104&STORY=/www/story/05-16-2006/0004362906&EDATE=
May 18th, 2006 at 7:48 pm
But I still won’t be able to make jUploadr available for QNX running on a Dragonball Z processor!