> I have a small software company, and we have been trying to decide on a
> set of tools for our next product.
>
> At the end of the day only Java and .Net were left standing. Still we
> can not decide.
>
> Could you please comment on these opinions and give us reasons to go
> for Java?, here they are:
>
> - Java apps are slow in the desktop
Any application can be slow or fast on the desktop, depending on how
well the application is designed. Saying that Java is slow on the
desktop is just not necessarily true. Java applications will take more
memory than a comparable C or C++ application because the C or C++
application will use a lot of the OS features which Java will implement
in a platform-independent fashion.
> - Java apps use a non-standard GUI in Windows
The Windows Look and Feel included with Java Swing is pretty good at
this point, but it is still not exactly like the native interface. You
might also want to take a look at SWT from the Eclipse project
( http://www.eclipse.org/ ). Supposedly it is a lot closer to the
Windows look and feel.
> - Java apps are not compiled to static code, so they are slower than
> C/C++ or at least not faster than VB.
Speed of an application consists of many factors, and often the actual
speed of the program executing is not the limiting factor. A lot of
applications deal with bandwidth issues, poor programming and other
problems which degrade performance. In addition, the Java Virtual
Machine has been improving steadily over the past few years and now does
quite a few optimizations which improve performance. Ultimately C/C++
will be faster than Java, but Java's other benefits (portability,
elegance, ease-of-maintenance, etc.) outweigh the speed differences in
many cases.
> - Java is only good for the server side or the Enterprise side of
> Computing
Java can be used in many places: server-side, client-side, cell phones,
etc. I have successfully deployed applications on both the server-side
and the client-side. It is easier to deploy on the server-side, since
that is where the focus has been recently, but client-side is improving
all the time.
> This are general opinions, we've heard time and time again, still we
> have no evidence that these opinions are true.
Most of the time the opinions are probably coming from people who have
limited experience or no experience with Java. Rather than believe them
you should write some test applications yourself and see the results.
> .Net supposedly does away with most of those difficulties but it
> eliminates or makes it very difficult to target many OSes plus we
> believe is not yet mature.
I would agree with you there, but then you have to ask yourself if
targeting multiple OSes is really that important to you.