HTML5 Canvas
Written by: Simon Sarris
Featured Refcardz: Top Refcardz:
  1. Apache Hadoop
  2. Web Driver
  3. MVVM
  4. REST
  5. ADO.NET
  1. HTML5
  2. Ajax
  3. jQuery Selectors
  4. CSS Part 1
  5. Git

Link Details

Link 11851 thumbnail
User 111696 avatar

By bloid
via mikeomatic.net
Published: Jan 25 2007 / 00:12

I don’t think the fault lies in anything fundamental to Java. The language’s failure on the desktop is nothing more than a series of mistakes by its steward, Sun Microsystems.
  • 14
  • 0
  • 3116
  • 0

Comments

Add your comment
User 111696 avatar

bloid replied ago:

1 votes Vote down Vote up Reply

I reckon Mike should look again... With Java 6 there is a huge push to fix a lot of the stuff he says was wrong...

User 201565 avatar

Rob Lang replied ago:

0 votes Vote down Vote up Reply

A lot of what Mike has to say is still true, Java is not integrated with the operating system enough to make it a lightweight component. Distribution is still not as easy as packaging an exe for windows systems. I found myself thinking "Oh yeah!" and "That's a good point" all the way through this article.

User 160294 avatar

drobert_bfm replied ago:

2 votes Vote down Vote up Reply

Distribution is actually a joke for Eclipse RCP-based apps. All that's required is an unzip; not need for any installers or registry keys. Even Swing apps are pretty simply to install overall; it takes no longer to create an installer for a Swing-based app than it does for windows apps, if you use the right tools. So the distribution issue is a red herring.

User 200965 avatar

jola_zm complained ago:

2 votes Vote down Vote up Reply

jola_zm reported this link as inaccurate on 01/25/2007 @ 10:10:38

From the title, he seems to imply Desktop Java is presently dead. All his evidence is from 'long ago' though(like Forte). No one doubts that Desktop Java used to be bad a long time ago...that's the impression left on everyone's mind, and he's just repeating the general FUD from long ago. But things have seriously changed now...and if you think Swing is still slow and bad etc then you are missing out.

User 206442 avatar

18thstreetmike replied ago:

0 votes Vote down Vote up Reply

Hey guys,

I just want to reiterate that the point of the article was not to bash Java. I like the language a lot. I also know that it has gotten substantially better over the years, and that it sounds like FUD to be referencing a situation that hasn't existed for some time.

The article was about how Sun made some substantial misteps in the late 90's that ruined the mainstream goodwill that the language had when it first came out. Back then it was *the* way to add interactivity to websites, and I remember thinking about how one of the main reasons I wanted Windows 95 (instead of WfW 3.11) was that Java didn't run on Win16. At the time it felt like the sky was the limit for the platform, a single language to replace them all, at least for building standard desktop/web apps. Due to poor execution and questionable strategic decisions, the moment passed.

While Java has continued to get better over the years, it already lost the mindshare it enjoyed in the early days and will never again get a chance to replace native platform APIs on the desktop in any meaningful way. Maybe that is good, maybe it's bad. I just wish it had more of a chance.

User 111696 avatar

bloid replied ago:

1 votes Vote down Vote up Reply

I think you are correct in that respect... Trying to code java GUIs to run on Windows, Linux and Solaris as of 5 years ago was a nightmare...

However, with things like http://www.dzone.com/links/java_2d_and_jogl_the_flip_side.html
And the work Roman, Chet and others have put in to making java GUIs beautiful again (I'm looking forward to the Filthy Rich Clients book http://www.dzone.com/links/filthy_rich_clients_a_subtle_teaser.html ), I don't think it's too late by a long shot :-)

User 202112 avatar

dgary replied ago:

1 votes Vote down Vote up Reply

The article is completely true, as of early 1999.

But really, that's like bashing Windows 98 SE or MacOS8 now.

User 160294 avatar

drobert_bfm replied ago:

1 votes Vote down Vote up Reply

Understand this: Is there a desktop .NET? a desktop Perl? or even a desktop Python? Not in any significant way. Almost every sizeable desktop app is coded in C++; the glaring exception is Eclipse, which is coded in, drumroll, JAVA!!!

All languages which rely on garbage collection have issues on the Desktop, where there's a large number of objects of highly varying classes created. In a server app, object pooling can go a long way to reduce the inefficiencies inherent in garbage-collection. But on the desktop, those rules don't apply. Even then, Java beats every other language of its kind in its ability to create and destroy large number of objects effectively. No other VM comes even close.

So your choices are: C/C++, or Java. .NET (C# and VB.NET) haven't really taken off on the desktop for large apps (no self-hosting Visual Studio on the horizon); they have managed to cover the same space as Swing apps: smaller, single purpose apps and run-of-the-mill client-side business apps.

So is Java dead on the desktop? No more so that any other language, when you think about it.

User 205597 avatar

frustrated replied ago:

-1 votes Vote down Vote up Reply

I am inclined to agree that there is a problem. Until a couple of days ago I was on 1.3.1. I wanted to upgrade to 1.6 because I was having trouble dereferencing objects put into containers. The generics of the new version sounded like just the thing. After the install I find I am having trouble reading my homebrewed classes. Messing with the classpath, I finally get it to compile, but when I type "java ProgName" I get another problem seeing the code. In 1.3.1 you left all your classes in the same directory and it just worked.

At best you are talking a mixed bag. You really have to ask who they are writing this language for. I do not enjoy the scavenger hunts.

User 0 avatar

Scoundrel replied ago:

0 votes Vote down Vote up Reply

Google "Java tutorial". You can find out how to write a class file, compile it, and run it! Amazing.

Here is a class! MyClass.java

public class MyClass {

public MyClass() {
System.out.println("Wow this was hard");
}

public static void main(String[] args) {
new MyClass();
}

}

Compiling and running this example is really difficult as you can see:
D:\java_temp>javac *.java

D:\java_temp>java MyClass
Wow this was hard

Sorry if this sounded harsh, but it just puzzles me why you'd bash Java6 when you really don't understand the basics of Java. You need to set the classpath when you have files in different packages or when you're using other libraries (jar files). Basically, you need to set it when you're doing anything more than a simple demo. But since you've used 1.3 before, you should know this..!

Try using NetBeans. It's free, cross-platform, it's backed by Sun, and it will make your life much easier.

User 61814 avatar

MarisO complained ago:

0 votes Vote down Vote up Reply

MarisO reported this link as lame on 01/26/2007 @ 03:54:59

Add your comment


Html tags not supported. Reply is editable for 5 minutes. Use [code lang="java|ruby|sql|css|xml"][/code] to post code snippets.

Voters For This Link (14)



Voters Against This Link (0)