Programming Languages

Object Oriented

 * modules: refers to programming languages which have the concept of a set of a group of functions that manipulates private data, but which have no thorough protection of either the data (e.g. PHP 4), or do not have the concept of private functions (e.g. Pascal, Python).

Strict Typing
Strict typing means that you explictly need to typecast variables from one type into the other, rather then that is done automatically for you by the compiler. Note that strict typing is only possible for static typed languages (in which the type checking is done at compile time), but not for dynamically typed language, such as Objective-C and SmallTalk (in which type checking is done during runtime).

Exception handling

 * mixed: means that while you can make try{} constructs yourself, most built-in function instead still return a mixed type (for example, a positive integer on success and the boolean false or "-1" on failure) or require you to call a separate error function, instead of throwing an exception itself. This is often the case for languages in which exception handling was added later.

Garbage Collection
Automatic garbage collection; unused variables are automatically free'd, so there are no memory leaks. This is important, because in most programmers are not up to handling memory management. Note that it is still possible to have other leaks, like socket leaks or file descriptor leaks.

Name Spaces
Name spaces prevent name collisions. For example, it allows one to distinguish between sys.log and math.log. Name spaces became well known with Java.

Smart Block Syntax
Most programming languages use curly brackets { } to group statements, forming a block. However, this has the inherent problem that it is often a fight between style fanatics to either save space and write it on the same line as the condition, or style fanatics to write it on a seperate line, aligning the opening and closing brackets. There are better alternatives for curly brackets (most language designers feel that curly brackets where a terribly idea in the first place). The Block Syntax page lists some alternatives.