Early computers were programmed by setting a series of switches and pressing the equivalent of an "Enter" key. Each entry comprised one instruction to the computer, which caused programming to be a time-consuming process. Programming languages were developed to speed this process up and allow more people to become programmers. There are now many languages for a programmer to choose from, and they range in complexity and ease of use from low-level languages, which are closer to machine language, to high-level languages, which are closer to human language.
High-level programming languages approach human language in syntax and are, therefore, easier for humans to use. This distance from machine language makes high-level language programs easier to write, and there is less of a technical skill requirement for such a programmer. BASIC, a popular beginning language, is one example of a high-level language. The name is actually an acronym which stands for "Beginner's All-purpose Symbolic Instruction Code." COBOL is a high-level language used in the corporate world, and its closeness to English allows less technically skilled personnel to write COBOL programs. This results in a huge cost savings for a company that uses COBOL. A disadvantage of these languages is that they typically provide only plain text graphics, since they are unable to produce the graphics of lower-level languages.
Middle-level languages have been developed in recent years to fill the gap between high- and low-level languages. Many of these languages fall in the "object-oriented" category, and the list includes such languages as C#, C++ and Java. These languages are helpful in developing graphical user interfaces that run on personal computers, providing a "front end" for the legacy mainframe applications that they connect to. This helps the programmer to "put a pretty face" on a former "green screen" application, which can be a competitive advantage for a software product. Middle-level language programmers tend to be somewhat more technically skilled than high-level programmers and are typically paid more.
Low-level languages are further away from human language and are not easily read at a glance. Languages, such as Assembler, require highly skilled technical people, resulting in a higher cost to an employer. The cryptic nature of the syntax also can cause longer troubleshooting times, depending on the skill level of the technician. Personal computer assembly language programs can produce stunning graphics, but mainframe assembly language programs typically are used as utilities, rarely producing any output at all.
Machine language is the lowest level language, comprised of 1s and 0s organized in groups of eight to form various characters. Each 1 or 0 is a "bit," and 8 bits form a "byte." It was the difficulty in programming early computers using machine language that necessitated the development of programming languages. Programs written in the languages falling into the categories mentioned above are typically "compiled" into machine language so that the computer can read them. Programmers who can read and understand machine language are highly skilled, and command high salaries.