Computer Programming Languages
A comparison of programming languages:
Item | Visual Basic | Object Pascal | C++ | PowerScript | Java | |
Derivation | Basic | Pascal | C | Powerbuilder | Sun Java | |
Ease of use | high | high | low-medium | medium-high | medium-high | |
Platforms | Windows incl. CE | Windows, not CE yet | Windows, others | Windows, Mac, Unix | Most | |
Limitations | moderate | minimal | very minimal | high | moderate | |
OOP: | ||||||
|
single but can mimic multiple via interfaces & aggregation | single and multiple or use of aggregation | not protected or private inheritance | |||
|
yes private, protected, public sections | yes, private, protected, public sections | ||||
|
yes if method declared as virtual | yes if method declared as virtual | ||||
|
yes | yes | ||||
method overloading | yes | yes | ||||
function overloading | yes | yes | ||||
operator overloading | no? | yes | ||||
virtual methods | yes | yes | ||||
dynamic dispatching of methods | yes | no | ||||
in-line methods | no | yes | ||||
delegation | yes | no | ||||
pointers | yes | yes | no | |||
linked lists | yes | no | ||||
dynamic arrays | yes | yes | yes | |||
datatypes: | ||||||
|
yes | no | ||||
|
yes | no | ||||
|
no | yes | no | |||
|
no | yes | no | |||
|
yes | no | ||||
|
yes | no | ||||
Declare class within another class | yes | yes | no | |||
Runtime type information | yes | yes | no | |||
Set handling | yes | no | ||||
Inline compiler | no | yes | yes | no | ||
Range checking | yes (can turn off) | yes | no | |||
Type checking | yes | yes | ||||
Memory management | Record in VMT; dynamic objects only, no custom memory allocation routines | Struct in VMT; static, automatic & dynamic objects;memory allocation; | ||||
Component creation: | ||||||
|
no ??MFC's | yes | yes | no ??PFC's | ||
|
no?? | yes | yes | no | ||
|
yes | yes | yes | no? | ||
|
no | yes | yes | no | ||
Protocol support: | ||||||
|
yes | yes | yes | yes? | ||
|
no | yes | yes | no | ||
|
yes | yes | yes | yes? | ||