von Michael Neumann (neumann@s-direktnet.de)
| Sprache | Vererbung | Templates (*1) | Typisierung | Polymorphie | Überladen | DBC (*3) | Compiler/Interpreter | Nebenläufigkeit (*4) | Objekt-Orientierung | Persistenz (*5) | GC (*6) | Closures | Besonderheit |
| BETA | einfach |
|
statisch, stark |
|
nein | nein | Compiler |
(Co-Routinen)
|
nur Pattern | nein |
|
nein | Pattern |
| C# | einfach (+Interfaces) |
|
statisch, stark |
|
|
nein | Compiler | ? | OO | nein |
(+manuell)
|
nein | alle Objekte sind COM-Objekte |
| C++ | mehrfach |
|
statisch, stark |
![]() (explizit) |
|
nein | Compiler | nein | hybrid (OO/prozedural) | nein | nein | nein | - |
| C-Talk | mehrfach |
|
statisch, stark |
|
? | nein | Compiler |
|
hybrid (OO/prozedural) |
|
|
|
- |
| Eiffel | mehrfach |
|
statisch, stark |
|
nein |
|
Compiler | nein | OO | nein |
|
nein | - |
| Java | einfach (+Interfaces) | nein | statisch, stark |
|
|
nein | Bytecode |
|
OO | nein |
|
nein | - |
| Object Pascal | einfach | nein | statisch, stark |
![]() (explizit) |
nein | nein | Compiler | nein | hybrid (OO/prozedural) | nein | nein | nein | - |
| Ruby | einfach (+Mixin) | (*2) | dynamisch |
|
nein | nein | Interpreter |
|
OO | nein |
|
|
alles ist ein Objekt |
| Sather | mehrfach |
|
statisch, stark |
|
|
|
Compiler | nein (nur pSather) | OO | nein |
|
|
Iteratoren statt Schleifen |
| Smalltalk | einfach | nein | dynamisch |
|
nein | nein | Bytecode/Interpreter | ? | OO | nein |
|
? ( )
|
alles ist ein Objekt |
(*1) Templates = Generische/Parameterisierte Klassen
(*2) Es ist möglich, dynamisch Klassen zu erzeugen. Templates jedoch gehören jedoch nicht zum Sprachumfang, da es wenig Sinn macht (wegen der dynamischen Typisierung).
(*3) DBC = Design by Contract (Bertrand Meyer); Pre-/Postconditions und Klassen-Invarianten
(*4) Nebenläufigkeit (Multithreading) ist in (fast) jeder Sprache durch zusätzliche Bibliotheken möglich. Gemeint ist, ob Nebenläufigkeit standardmäßig vorgesehen ist.
(*5) Persistenz ist bei jeder Sprache möglich (z.B. durch Dateien oder Datenbanken).
(*6) GC = Garbage Collector = Automatische Speicherfreigabe