On Windows/Linux platform,I as a common computer user,could not nearly find any software written in Java.
And I could not find software that was written with Java on desktop application area.It seems that programmers would prefer to use cross-platform Widgets(Qt,wxWidgets etc) rather than Java.
My question are:
thanks.
Desktop applications can be easily developed using Java. We use APIs like AWT, Swing, JavaFX to build these applications.
1.
Java is not good for kernel development. The main reason is control. It's not just about speed (although that is a part of it). Java doesn't give programmers the same amount of control over memory, over exactly how their code is executed. In C/C++, you can usually guess exactly which assembly code will be created, based on your code. Not so in Java.
Note: This is true of C, and also of parts of C++: If you're using a lot of higher-level functionality in C++, you obviously have the same loss of control. But C++ gives the option of going either way.
2.
C/C++ is more used than Java for desktop for many reasons. Probably some of them are historical (they have been used for much longer), probably some of it is the problem of "Look and feel", which basically means that Java programs tend to look like Java programs, and not like most programs on the user's machine (there are solutions, but this used to be true of almost all Java programs, which made programmers stay away).
But the most important thing to understand, I think, is that C and C++ are also much less used for GUI nowadays. Obviously they're still used, but a lot of programmers are moving on to other languages, like C# and others.
3.
If you're talking about famous desktop applications, I think the most famous (certainly for programmers) is Eclipse. It's also a really great application, and certainly looks great, which just goes to show you that Java can be used for good natural-looking desktop apps.
I'm not really aware of any others.
There are at least some operating systems implemented in Java, namely JNode, JOS and JX. Of course you won't see any OS that started its history before the dawn of Java to be implemented in that language. Furthermore there seems to be a long-time bias against managed languages for an operating system kernel; there are some research projects such as Singularity that try the feasability of such an approach but we're nowhere near a point where this is ready for “normal” use. However, you will always need a kernel “core” which is done in assembly or another low-level language which gives you access to parts you wouldn't normally have. But this can be kept very small.
Whether the Java API is consistent or excellent may be debatable, but for many environments the preferred languages are either C (UNIX-likes mostly, many parts of the Windows API), derivatives such as Objective-C (Mac OS X) or C++ (COM-based programming on Windows, KDE, Qt). This doesn't mean you couldn't do this in another language but the documentation usually assumes that you stick to the preferred languages. Another big factor you're apparently counting out is that you would require a JVM on the target system. The only operating system that ships natively with Java that I am aware of is Mac OS X. So you would bother users with additional dependencies. Corporations such as Microsoft are also very reluctant to even consider releasing 3rd-party software they have no control over with Windows so you'll never see a JVM being released with the OS there. (Yes, there once was a Java 1.1 one, iirc but those days are long gone and won't likely return. Also that one was supplied by Microsoft themselves.)
Most Java developers probably use at least one from day to day, Eclipse and Netbeans for example are written in Java. As are some other software development tools, such as Maven or Ant. Another popular program is for example the Vuze (formerly Azureus) BitTorrent client. But at least for me there currently aren't many Java desktop applications I even use on a weekly basis.
It's entirely different for web applications, though, as you can't really tell what they're written in from the outside.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With