Using Java for a shareware application

I recently posted a question on the Joel on Software forum asking what others experiences have been when using Java as the implementation platform for their shareware application. See the post here .

To deploy a Java desktop application on a customer’s computer requires that they have the Java Runtime Environment (JRE) installed. The JRE is certainly not as widespread as some other platforms, for example the Flash plug-in which everyone needs to check out the latest YouTube video. Every time you add a step to a potential customer’s shareware installation, you set up a barrier, or at least a speed bump between customer and your software. In this case, the speed bump involves downloading an additional 14MB for the JRE. This may not be too bad in the age of widespread broadband, but it then walks the user through a wizard asking them to make certain choices. If the user balks at any of these steps and cancels, you’re sunk. However, my current product, CaptionIt!, pays the same runtime tax except to Microsoft since it uses the .NET 2.0 framework and that’s a beefy 23MB download. This has caused far fewer problems than I expected, so I believe the same will hold true for a Java based app.

Several people also felt that Java GUI’s don’t perform well or don’t look as good as native GUI’s. Java has fought a torturous uphill battle to shake this image, and I suspect it may never truly succeed. The initial Java 1.0.2 release came with a GUI library known as the Abstract Windowing Toolkit or AWT. This AWT, it was not so good. Both from an API perspective as well as interface experience, it had very poor performance and was very difficult to work with. As they say, you never get a second chance to make a first impression. So now, more than 10 years later, people still complain about Java GUI’s being to slow and ugly. The reality, and I speak as someone who has cranked out Java Swing apps for the last 6 years is that they are now quite snappy, use hardware-accelerated operations for drawing, and can look pretty slick with some tweaks here and there.

Probably one of the most convincing things mentioned was that with minimal effort, your app can run on Windows/Mac/Linux. Now the Windows user base may be far larger than the other 2, but why artificially limit yourself? I suspect that for next product I will have to think long and hard about moving to Java.

Explore posts in the same categories: Technical

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: