Learn Computer Programming - Which Language?


Learn Programming - Which Language Do I Use?

These graphs compare Ubercode to other computer programming languages. Each graph shows the complexity of one language using several measurements. Measurements include the number of low level features in the language, the levels of operator precedence, the number of symbols and keywords and the number of commands in the language run time library.

There are graphs for several common languages, including Visual Basic (v5), Borland Delphi and C++. All graphs have the same scale, and the complexity measurements are discussed in more detail at the end.

Learn Computer Programming - Ubercode

How complex is Ubercode? (see diagram above)

Learn Computer Programming - Visual Basic

How complex is Visual Basic? (see diagram above)

Learn Computer Programming - Delphi

How complex is Borland Delphi? (see diagram above)

Learn Computer Programming - C++

How complex is C++? (see diagram above)

Learn Computer Programming - C

How complex is C? (see diagram above)

Learn Computer Programming - Ada

How complex is Ada? (see diagram above)

The complexity measurements are calculated and used as follows:

Low level features. These count the features from the following list: "Goto" statements, global variables, pointers, untyped binary conversions, bit operations, in-line assembler, programmer-controlled memory allocation, and aliasing between function parameters. These are features which, if misused, make software more likely to crash, according to researchers into language theory.

Levels of operator precedence. The number of levels of operator precedence is a measure of how complex it is to write expressions. In general the larger the number, the easier it is to make mistakes when writing expressions.

Number of symbols and keywords. Keywords are alphabetic syntax elements, and symbols are non-alphabetic syntax elements. Both are used by a language for data types, statements, operators, function structure, compilation unit structure and object structure. The number of keywords and symbols counts these elements, excluding identifiers.

Number of language runtime commands. This is the number of functions, constants, objects, types and other identifiers in the run time library. Identifiers with the same name that carry out very similar tasks are counted as a single function. Languages that allow extra libraries or header files to be imported only include the elements required for writing a Hello World program, to avoid penalizing them for providing a rich range of features. Languages that provide interfaces to the Windows operating system DLLs do not include these interfaces if they are optional. Languages (such as Visual Basic) that always include the full runtime will include the full range, since it is impossible to separate the essential identifiers from the non-essential.

In general, the more complex a language is according to these measurements, the harder it is to learn and use effectively, and the harder it is to maintain existing code.