There are literally thousands of programming languages and variants, though most are largely unused and many have been scrapped on the relic pile. Today, programming and development happens on just a handful of popular programming languages, with the choice being usually a matter of what type of development is being done and the preferences of the team doing the engineering.
In general, programming languages are broken into two categories: compiled and interpreted. A compiled language has the finished program condensed into machine code for direct use by the computer without requiring re-interpretation every time. Interpreted language will be written to be read real-time by the computer (through an “interpreter”) every time it is run. In general, compiled languages are used for software that is going to be run on a client machine repeatedly or that is very complex and relatively resource intensive. Interpreted languages are usually run on third-party machines separate from the user’s machine (e.g. web servers) or are small “add-ons” to larger, compiled software such as browser plug-ins. On the Web, most scripting languages and markups are interpreted while most browsers and server-side operating system tools are compiled.
Obviously, there are always exceptions. Here are the most common programming languages in use today along with some strengths and weaknesses for each.
C, C++, C# – The C family of programming languages are all based on the same general code syntax, but differ in their framework. C is a popular language for game programming, for example, because it lacks the baggage for object-oriented programming (OOP) that C++ contains. This makes it compile to slightly faster code than its brethren. Interestingly, C++ can be written without using OOP if the developers prefer, but is primarily an object-oriented option. It’s used quite often in large-scale collaboration because each team or individual can work on a single object that fits into the entire code and code can be easily re-used to save effort and time. C# (pronounced “C sharp”) is similar to C++ but is far more structured and is used in distributed environments.
COBOL The COmmon Business-Oriented Language is one of the oldest programming language still in relatively common use. First implemented back in the late 1950s, COBOL has been revamped many times in its history, the current being on the 2002 standard to add OOP and other modern functionality. It is largely used in government and some older commercial enterprise. It’s far from being a legacy language, however, having implementation in about 80% of government and finance computing.
Fortran is used by scientists because it is meant primarily for number crunching. It allows variables to be as large as system resources allow (limited by memory limits) and so is popular for those whose calculations must have extreme precision. Fortran has little use out side of the scientific and banking communities and is an unforgiving and extremely structured, format-centric language.
Java is very similar to C# in many respects and is one of the only languages that can be pre-compiled to become hardware independent. Thus is is very popular for multi-platform application writing for games, web-based software, and browser-based or small-footprint games. Java is popular with many developers because it is very light on web services (server, network) as it puts most of the work onto the client’s computer.
LISP, Scheme are often used in computer science research because of its simple list storage structure. Scheme is a variant of LISP with a simpler syntax and fewer features, sort of a LISP-lite, and is often used for smaller projects and as a learning tool for LISP. Researchers use these languages to test machine limits, run experimental tests on components or the machine itself, etc. The list data output is in unnumbered arrays that can give the scientist a lot of information in a simple way.
Pascal is largely just used for learning. Computer science students are usually very familiar with the Pascal family of languages. It’s only major proponent commercially is Borland, which uses Delphi as an OOP version of Pascal.
Perl is an interpreted language primarily used in server-based, database-driven development. It’s one of the most-used common gateway interface (CGI) languages on the Internet. Although often replaced with PHP and similar languages today, Perl is still an active and often-used language in development, especially on legacy sites.
PHP is used for both website design (as an addition to HTML or in place of it) and on *nix-based servers as a scripting option. It is often considered “Perl with bonuses” by some developers, though the two are not very similar. PHP was made from the start as an interpreted OOP and to do common Web-oriented tasks quickly, such as database fetching and page serving.
Python is a newly-popular language choice because of its simplicity and extreme flexibility. It is an interpreted language, but third-party compilers can be used to compile the code into machine-readable executables. The most common type of Python is Cpython, the reference implementation of the language. Its primary attribute is its focus on readability for programmers to make code portable and re-usable.
Ruby – has become quite popular recently thanks to the Rails application framework. Before that appeared in 2005, Ruby was largely a marginal interpreted language used primarily by Japanese developers. Because of a surge in web application frameworks like Rails, Ruby and its variants (Jruby, RubyMotion, etc.) have become popular in the cutting-edge set, but outside of new developments and startups, Ruby is still not a widely-used language.
There are, of course, many other languages still in use today, but most are either derivatives of one (or more) of the above or are relatively little-used. Have a favorite? Let us know.