OT: Speaking of Microsoft competitors...

Ole Eichorn comes up with one of the most concise descriptions of one of my big hangups with Java:

I continue to mess around with Java, in the form of IBM's eclipse framework.  It is a beautiful IDE and makes Java development of desktop applications very easy.  However, deploying desktop applications is not easy; you have to use Sun's Java Web Start, which is a whole lot more complicated than simply distributing an .EXE.  And there seem to be performance problems...  Of course, it is cross-platform, but that only helps developers, not users. [emphasis mine]

[Critical Section]

I'm not going to get into the “.NET is better than Java” or vice-versa discussion here. I just think that Eichorn sums up very well the problem with the cross-platform arguments in favor of Java. Until users of a Java application can be assured a consistent and high-performance experience on every platform, cross-platform doesn't strike me as a terribly compelling argument. NOTE: that's my opinion, I'm not stating it as factual for anyone else, so please don't deluge my comments section with rants about how I don't know what I'm talking about, etc. I'm not running /. here, just my humble little blog. :-)

5 Comments

  • It can be as simple as distributing an EXE. You can package all the classes in a single jar file and set the main class for the jar. If the JRE is installed on the user's machine, they can just double click on the jar and the program runs.

  • Interesting points, especially as you are correct, 'we' normally see this from the developer's view, not the users'. Here's a question, though (still from the user's view). What if I am an 'alternative OS' kinda guy (Linux, OS-X, FreeBSD, whatever), and java helps bring more applications to my desktop than I would normally have?



    Some of something is better than none of nothing.



    I do agree that I'd like not see a java or os platform flamefest, that's why I'm trying to focus this on the user!

  • John,



    My point was not focused on deployment (although that was mentioned in what I quoted, so I'm sorry if that was confusing), but rather on performance and consistency of experience, both of which, I understand may have to take a back-seat when building cross-platform Java apps. Yes, I'm sure that there are ways to work around it, and no, I'm not attempting to slam Java for this. I just think that Ole makes a good point in that we tend to look at the benefits of our development tools from a developers' perspective, rather than from the users. Cross-platform availability *doesn't* matter to the people using the applications. It *may* matter to the people paying for them, and to the developers writing them, but that's not the same thing in most cases.





    Jerry,



    You make a very good point that for those who don't have the option to write for Windows, Java provides more options than none at all. One would hope that the work being done on Rotor and Mono will help address this, at least to some extent. Interestingly, Sam Gentile just blogged about compiling his first C# program on Mac OS X, using the shared-source CLI, so the idea of cross-platform .NET isn't exactly pie-in-the-sky, either.



    Alas, I don't think .NET solves the cross-platform problems of consistency of experience and/or performance for end-users either, since some of the UI issues are difficult at best to solve in a consistent fashion without requiring a substantial install to support your app. That said, it will be interesting to see how the whole Rotor/Mono development plays out, particularly with the recent acquisition of Ximian by Novell.

  • One area that I still see as a useful place for Java (though less so if the MS browsers don't support it cleanly) is for an Applet. It can do things that are not easily done in other ways. I have not done one in a while (mostly because I am doing Intranet applications where there are reasonable alternatives in most cases) but when I did, and when it works, it really *IS* cool.



    On a golf game Java Applet I did a couple of years ago, I got a complaint from someone running a SpartStation complaining that the fonts on the applet were not readable on his machine. After suppressing my surprise that it worked at all, I told the user that barring access to a SparkStation, I had little chance to fis the problem...

  • Doug,



    That highlights very neatly one of the weaknesses of the "write once, run everywhere" argument in Java's favor. It's a great idea in theory, but in practice, there can be minor incompatibilities on various platforms that mean that while your app *may* run, it does not end up looking acceptable, or may have other issues. Thus, in order for you to be confident about deploying to multiple platforms, you have to invest time and money in testing each potential target platform.



    Not that that's any different than the current state of Web development, when you start using features like client-side script and CSS/DOM. And as I said previously, I don't know whether cross-platform efforts around .NET can solve the problem either, since it's really about how different platforms implement some things in rather inconsistent fashion. Until I actually see it work, I remain skeptical that "write once, run anywhere" will ever be more than a marketing line, whether we're talking about Java *or* .NET.



    But then, "write once, run anywhere" has never been a priority for me, so I'm not too worried about it. :-)




Comments have been disabled for this content.