# Java: Strengths

Java is an excellent programming language. For most programming it's better than older programming languages like C or C++.

Productivity | The top reason Java has become popular is because of the increased productivity of Java programmers. It is claimed, and my experience is in agreement, that Java programmers have about double the productivity of C/C++ programmers.
GUI | Java a good, portable library for a Graphical User Interface (GUI). Most programming languages supply only a text mode interface.
Internet | Java lets you easily use the Internet. Most languages were designed before the Internet was born!
Portability | Java programs can run on many different machines (Intel, Sparc, PowerPC, ...) and many different operating systems (Windows, Unix, Macintosh, ...). You can move a C program if it is written very carefully, but it is usually difficult or impossible. In contrast, it easy to move most Java programs.
Reliability | Java programs are more reliable because Java doesn't have very dangerous things like C/C++'s pointer arithmetic. Java also checks array bounds and other error-prone operations. Memory management is much safer because Java does automatic garbage collection.
Libraries | Java has a very large number of packages which extend the language. Therefore it is unnecessary to call the operating system directly.
OOP | Object-oriented programming features (inheritance, encapsulation, and polymorphism) make many programs, especially large programs, easier to write.
Large Programs | Java supports large programming projects with object-oriented programming, packages, and components (JavaBeans).