• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Is Java ready for the desktop?

 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I am working for a company that has demonstrated the main features of a new product using C++. The demo is less than a Mb but there are a couple of features to add I have been asked to evaluate whether or not Java is a good choice for the final product. The main perceived advantages are the available APIs and easier porting to multiple platforms.
There don't seem to be many desktop applications in Java. The only widely distributed desktop application that I am aware of is the Limewire file sharing application.
1. Is it feasible or risky to develop an application that is targeting a mass market using Java?
2. Are there any situations where Java should not be used?
3. Can anyone point me to guidelines for developing for the desktop using Java?
Thank you in advance for taking the time to answer these questions.
Mike
 
blacksmith
Posts: 1332
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Mike JOSEPH:
I am working for a company that has demonstrated the main features of a new product
1. Is it feasible or risky to develop an application that is targeting a mass market using Java?
2. Are there any situations where Java should not be used?
3. Can anyone point me to guidelines for developing for the desktop using Java?
Thank you in advance for taking the time to answer these questions.
Mike


1. I am currently porting a small specialized desktop application from c to Java. In my opinion, it's risky to do this for a mass market application. The main problem is that you can't expect most of your customers to have a Java virtual machine installed, especially a recent one.
If you are slightly less mass market - that is, if your customers are sophisticated enough to follow one page installation instructions that might include downloading a VM - then you may be okay.
2. I wouldn't use Java for a graphics intensive application (like a state of the art first person shooter game). Most business applications should be fine.
3. Use Java's Swing toolkit. Unfortunately, I can't recommend a good book, because both of the ones I bought were less than fully useful, but I'm sure there are some out there.
 
Ranch Hand
Posts: 60
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Mike JOSEPH:

1. Is it feasible or risky to develop an application that is targeting a mass market using Java?
2. Are there any situations where Java should not be used?
3. Can anyone point me to guidelines for developing for the desktop using Java?
Thank you in advance for taking the time to answer these questions.
Mike


1. I'd say it is definately feasible. Warren's point about a VM not being available is important, but can be circumvented by packaging your product in a good installer which also installs a VM if necessary.
2. For cross-platform business applications (which is what your question is about if I understand correctly), I cant really think of anything.
Perhaps if you need it to work with certain other products that do not support Java.
3. There is a Swing Trail or something like that on Sun's website. It gives a decent quick overview of what is available in Swing.
[ March 10, 2004: Message edited by: Maarten Vergouwen ]
 
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
To answer your questions directly:
1. Absolutely not - there are many high quality examples already out there.
2. I agreee with Warren - Swing/AWT is not the best tool for producing GUIs. They are however one of the few cross platform tools. Its a trade off.
3. Can't help you there - there are however countless sites out there which offer examples.
There are plenty of professional quality desktop applications out there already written in Java, so its certainly good enough to do most desktop apps. There's no need to rely on the user having a JVM installed, just wrap the JVM installation in your app's install process (which is a common enough practice - even large enterprise apps like Oracle do this). It removes many a configuration issue - Java makes great claims to be a Write Once Run Anywhere language; the truth is less clear cut than that.
My one reservation with using Java for desktop apps is the fact that Swing/AWT don't necessarily make the best GUIs. You might consider using SWT instead. For the best example of a high quality desktop app written in Java (using SWT) take a look at Eclipse.
 
Ranch Hand
Posts: 688
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Just out of curiousity, has anyone been able to port from C to Java in a massive scale? Small, business specific ones are relatively easy to port, but the larger scale ones.
1. Is it feasible or risky to develop an application that is targeting a mass market using Java?
This depends on your developers, not the language. If you have Java programmers, instead of programmers that learn java from those 24 hours books.
2. Are there any situations where Java should not be used?
This hsould be done on a business level. Meaning, if your application gonna make you money on linux, mac platforms, then sure, writting in java is fine. But if none of your customers use Linux/Mac/Unix, then why bother with it, it's only a waste of time and money.
3. Can anyone point me to guidelines for developing for the desktop using Java?
As much as I would love to, I been looking for a definitive guide myself. I do however recommend Swing from Manning press. Very solid book.
 
Warren Dew
blacksmith
Posts: 1332
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The point about packaging the VM with the installer is a good one. However, I personally beg of you that if you do so, you set up the installer and runtime configuration to be respectful of people who do in fact already have an existing VM installed, and not walk all over it. I've just run into too many installers (not unique to Java) which mess up a configuration that I took a long time getting to....
I disagree that Java is necessarily inappropriate even if your primary target is Windows. I used to think that, but more recently, I've noticed a lot of people are using Java who are so Windows centric, they don't even realize Java is available for other platforms. Java is a cleaner language than C++, especially Microsoft's version of C++, and development costs are lower because of that. Key advantages include (1) garbage collection, so you don't have to manually free things and you don't have to worry about memory leaks, and (2) utility libraries, like the collections classes, that are substantially easier to use than C++ templates.
(Note, I like C++, at least the ANSI version, but it's appropriate for a different set of problems than Java is.)
 
john smith
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
//However, I personally beg of you that if you do so, you set up the installer and runtime configuration to be respectful of people who do in fact already have an existing VM installed, and not walk all over it
Absolutely - Oracle drives me up the wall everytime it does this.
 
Ranch Hand
Posts: 1170
Hibernate Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
if the application is part of a service you are providing, and you know you can install any required support files, then go for it. Otherwise you have to consider the already installed base on your target platform.
performance wise and compatability wise, java is top notch. especially when crossing mac/windows/linux/unix world.
If windows is your world, why bother java?
www.eclipse.org is a good platform for java GUI programs.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic