转载一篇文章,从一定程度上说明了原因。
zz from http://weblogs.java.net/blog/joconner/archive/2008/02/java_applets_no.html
Java applets not viable for this application?
I've been working with a company that creates a chat system that helps companies sell more of their products online. The backend is all Java, complete with Spring, servlets...all good Java stuff. The frontend is...well, it's Flash.
Preferring Java everywhere when possible, I asked about the Flash choice on the customer-facing app -- the actual chat client. The conversation went something like this:
John:Wow, this product uses Java everywhere except on the front, where the customer actually interacts with it. Why choose Flash there?
Dev mgr:Well, Flash was just easy. It was simple to use for such a simple UI too.
John: I see, but it's pretty easy to do that chat UI in Java too. Swing's layout managers are easy now, particularly if you use an IDE like NetBeans to layout the UI.
Dev mgr: That may be true, but the choice is based on more than just ease of creating the UI.
John: Yeah? So what's that?
Dev mgr: Flash is on every client browser. We don't have to install the runtime.
John: Java should be there too, right? Most PC manufacturers include it.
Dev mgr: Maybe, but we know Flash will be there. Flash is all over the web, and chances are that a customer has the runtime already. If they don't, the download and install is fast and easy.
John: OK, but Java will also install easily.
Dev mgr: But Java takes so long to install. It's too big.
John: I don't know if that's so true anymore. There's been a lot of work to make the runtime smaller and more compartmental. So you only download what you need.
Dev mgr: What we need is something very, very simple. A very simple UI with simple functionality to relay chat text. Flash does the job well.
The conversation continued...but I didn't get too far. Maybe Flash does do applets better than Java? Working with Sun for so long, I just naturally imagined that Java was everywhere and that everyone else loved it too. I've always been able to make things work...but apparently not everyone else has. The download size never bothered me...but it does bother some others.
Additionally, I find that perception is as important as reality. So what if Java is now faster, leaner, and great working within browsers? Somehow it doesn't matter. The old perception is still out there -- that it's slow, huge, and difficult to work with in a browser. It's amazing to find out that some just don't see Java as their solution in that space anymore.
I called a few friends who put together consumer-oriented websites. They use Flash too. What about Java? Sure...all on the back end business logic. But what about applications that the customer will use? If they're embedded in the browser, they're using Flash. Wow.
So, how would you approach this? What does the Java community need to do to fight back old perceptions? Why is Flash so much more popular in browser based applications? And how can we get Java there instead?