Software
Computers contain hard drives, storage mediums for one's own documents as well as software programs. Software for computers are manufactured by numerous companies and individuals and made to work with a given operating system. Currently, Microsoft has a nearly complete monopoly on operating systems, bringing us all versions of Windows (3.1, 95, NT 4, 98, 98se, 2000, Me, XP). Other operating systems include Apple's OS X (which will only run on Macs) and Unix (and its derivatives). Unix comes in multiple flavors (such as Linux and the BSDs) and will run on a wide variety of platforms.
Not only are operating systems, themselves, written with a programming language, but software made for them is written with the same languages. All software which was written for a computer was developed using a programming language, a sequence of words and symbols which tell a computer exactly how to behave under certain circumstances. When software engineers write programs, they use what is called a high-level language.
High-Level Languages
High level languages include BASIC, Java, and C++. Quite fortunately, a computer is able to differentiate between the various high-level languages and act accordingly. When a computer reads a high-level language, it processes it into its own internal low-level language, a specific sequence of binary digits (0s and 1s). The computer then interprets these binary digits to handle virtually any situation which is posed.
For example, a language tells the computer what is to happen when a user clicks on Button A, and what is to happen when a user clicks on Button B. Computer programming is, simply enough, the ability to think in the abstract. When one writes programs, they think of all of the "what if?" situations which a user might encounter.
Thought Process of a Computer
Quite contrary to what people might believe, or want to believe, computers cannot think. However, they are very good at following instructions. You can think of a computer as taking all of its instructions literally, however. This means that when you tell a computer to do something, you have to be extremely specific for a computer to understand what you want it to do. For example, lets say one hypothetically wants the computer to put a filled glass of water onto the table. You cannot just give it those instructions, alone. Rather, you must specify where the table is located, where on the table to put the glass, and how to put the glass on the table. Leaving out any of these instructions would leave the computer in a world of confusion.
Advantages Of C++
Each computer language has a niche which it is known for. C++ boasts object oriented programming which is very segmented, easy to work with, and doesn't require very many lines of code to perform simple tasks. Although C++ is backwards-compatible with its predecessor, the C language, C is not object oriented while C++ is.
C++ is perhaps one of the easiest computer languages to learn as much of the syntax is very straight-forward. In fact, it is often taught in many college classrooms as a first language for Computer Science majors. The language is not to be underestimated, however, as it is still extremely flexible and functional in the workforce.
Although C++ is a high-level language, it is very powerful in that it allows the programmer benefits otherwise only available in the assembly (low-level) language. For example, programmers have much control over memory management, as can be demonstrated with arrays and linked lists.
Yet another benefit of C++ is its ability to handle OOP, or object oriented programming. By using functions and what are known as classes, certain parts of the code may be re-used multiple times throughout the program. For example, suppose a function was written to add two numbers being passed into it, and to print out the result. This function can be re-used multiple times by passing in two different numbers, each time.
Perhaps one of the most important advantages to C++, however, is its ability to work in cross-platform environments. This is because of an ANSI standard. In other words, C++ code can be used to develop programs for vast operating systems including MS-DOS, Windows, Macintosh, UNIX and Linux, to name just a few. Unfortunately, GUI (graphical user interface) development in C++ among operating systems varies greatly. Microsoft Visual C++, for example, allows for graphics in Windows. QT, meanwhile, can be used on UNIX-based machines.
Advantages Of Java
Java is a fairly new language which has been developed to improvise on C++. Unlike C++, it is completely object oriented. The use of classes in development is not optional.
Java also boasts easier to implement pointers than C++. Linked lists are extremely easy to develop. In addition, many methods (functions) for almost everything you could imagine are pre-defined.
One of the biggest advantages of Java over C++ is that GUI development is cross-platform. The exact same code can be run on virtually any operating system. For this reason, Java is a viable solution for many web-based applications.