Java is being widely used in building complex, distributed applications. The spectrum is amazing: on the one hand we have hand-held devices that run Java applications and on the other, we have huge servers running on-line transactions serving hundreds of users. Since its public debut a few years ago, Java technology has been growing steadily, and is now adopted by thousands of companies and organizations around the world.
Certain features of the Java language such as automatic garbage collection, multithreading, platform neutrality, absence of pointers, and robust exception handling facilitate the development of large-scale applications with amazing productivity. It is a widely prevalent notion that Java is much easier to learn and use compared to C++ and some even claim that Java has overtaken C++ as the world’s most popular object-oriented language. Although in some contexts Java’s performance might be unacceptable, the number and type of applications built on Java technology are continuing to grow day by day.
In this context it is wise to ask whether the quality of Java applications is automatically better than applications built using other technologies, for example, C++. It must be clearly borne in mind that Java by itself cannot guarantee a bug-free, high performance, reliable, scalable application. Features built into the Java language can only assist to some extent in achieving some of these quality factors. The bottom line is that Java programs can also be buggy and can suffer from performance-related problems. If the architecture, design and coding are not good, a Java program will not be very different from a bad program written in C++ or any other OO language.