A common name of the language.
Indicates how well suited the language is for people with little programming experience. A language marked with ``yes'' should be viable for a beginner's first programming language.
How fast your applications are likely to run when you put them into production use. Performance depends more on your algorithmic programming skills than the actual language. As a rule of thumb, C, C++ and Fortran are sometimes necessary because they can offer better performance than other languages - at other times they might be unwieldy for the desired purpose. (One idea for ``benchmarking'' the languages would be to implement a simple sorting algorithm in all of them and compare running times. Anybody want to help me with this?)
Object-oriented programming is an important programming paradigm that is gaining popularity. In object oriented programming, data structures and algorithms are integrated into units, often called classes. OOP is often contrasted with procedural programming (which uses separate algorithms and data structures). It is not strictly dependent on language: you can do OOP in languages not listed as such (C for example), and program in the procedural style in languages that are listed as OOP. I've listed as OOP languages that have special features or add-ons to facilitate OOP. Functional languages (Lisp for example) are a bit different breed - among other things, functional programming is a superset of OOP. Logic programming (Prolog), also called declarative programming, on the other hand, is not related to the other types of programming in a similar sense.
More dependent on the tools you are using than the actual language. There is a HOWTO on GUI development tools for Linux, although it's out of date. With a good graphical tool you can do RAD. Sometimes RAD is based on code reuse as well, so free software could provide a good starting point.
Mentions fields of programming the language is most often used in. Other good (and bad) uses exist, but they are less typical.
Additional information on the language, like capacities and dialects.
PERL Beginner: Yes - OOP: Yes Examples: Scripting, sysadmin, www Comments: Powerful for handling text and strings, very popular Python Beginner: Yes - OOP: Yes Examples: Scripting, application scripting, www Comments: TCL Beginner: Yes - OOP: No Examples: Scripting, sysadmin, applications Comments: PHP Beginner: Yes - OOP: Yes Examples: Www Comments: Popular for web databases Java Beginner: Yes - OOP: Yes Examples: Cross-platform applications, www Comments: Lisp Beginner: Yes - OOP: Functional Examples: Emacs modes (for elisp), AI Comments: Variants Elisp, Clisp and Scheme Fortran Beginner: No - OOP: No Examples: Mathematical applications Comments: Variants f77 and f90/95 C Beginner: No - OOP: No Examples: System programming, applications Comments: Very popular C++ Beginner: No - OOP: Yes Examples: Applications Comments:
Shells are an important programming environment, too. I haven't covered them because I don't understand the field very thoroughly yet. Knowledge of shells is important for anyone who works on Linux regularly, more so for system administrators. There are similarities between shell programming and scripting - often they can achieve the same goals, and you have the option of choosing between native shell and a scripting language. Among the most popular shells are bash, tcsh, csh, ksh and zsh. You can get basic information on your shell with the man command, man bash for example.
Other languages of note: AWK, SED, Smalltalk, Eiffel, ADA, Prolog, assembler, Objective C, Logo, Pascal (p2c converter)