Note: N/A indicates that a topic or feature is not applicable to the language.
| Eiffel | Smalltalk | Ruby | Java | C# | C++ | Python | Perl | Mathematica with OO System |
|
|---|---|---|---|---|---|---|---|---|---|
| Object-Orientation | Pure | Pure | Pure | Hybrid | Hybrid | Hybrid / Multi-Paradigm | Hybrid | Add-On / Hybrid | Hybrid |
| Static / Dynamic Typing | Static | Dynamic | Dynamic | Static | Static | Static | Dynamic | Dynamic | Dynamic |
| Generic Classes | Yes | N/A | N/A | No | No | Yes | N/A | N/A | N/A |
| Inheritance | Multiple | Single | Single class, multiple "mixins" | Single class, multiple interfaces | Single class, multiple interfaces | Multiple | Multiple | Multiple | Multiple |
| Polymorphism | within common parent | Yes | Yes | Within Common Parent | Within common parent | Within common parent | Yes | Yes | Yes |
| Serialization | No | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes |
| Feature Renaming | Yes | No | Yes | No | No | No | No | No | No |
| Method Overloading | No | No | No | Yes | Yes | Yes | No | No | Yes |
| Operator Overloading | Yes | Yes? | Yes | No | Yes | Yes | Yes | Yes | No |
| Higher Order Functions | Agents (with version 5) | Blocks | Blocks | No | No | No | Lambda Expressions | Yes (???) | Yes, Pure Functions |
| Lexical Closures | Yes (inline agents) | Yes (blocks) | Yes (blocks) | No | No | No | Yes (since 2.1) | Yes | Yes, Pure Functions |
| Garbage Collection | Mark and Sweep or Generational | Mark and Sweep or Generational | Mark and Sweep | Mark and Sweep or Generational | Mark and Sweep or Generational | None | Reference Counting | Reference Counting | Yes |
| Uniform Access | Yes | N/A | Yes | No | No | No | No | No | No |
| Class Variables / Methods | No | Yes | Yes | Yes | Yes | Yes | No | No | Yes |
| Reflection | Yes (as of version 5) | Yes | Yes | Yes | Yes | No | Yes | Yes? | partially |
| Access Control | Selective Export | Protected Data, Public Methods | public, protected, private | public, protected, "package", private | public, protected, private, internal, protected internal | public, protected, private, "friends" | Name Mangling | None | None |
| Design by Contract | Yes | No | Add-on | No | No | No | No | No | No |
| Multithreading | Implementation-Dependent | Implementation-Dependent | Yes | Yes | Yes | Libraries | Yes | No | No |
| Regular Expressions | No | No | Built-in | Standard Library | Standard Library | No | Standard Library | Built-in | Yes |
| Pointer Arithmetic | No | No | No | No | Yes | Yes | No | No | No |
| Language Integration | C, C++, Java | C | C, C++, Java | C, some C++ | All .NET Languages | C, Assembler | C, C++, Java | C, C++ | Java, C, C++ |
| Built-In Security | No | No? | Yes | Yes | Yes | No | No? | Yes (perlsec) | No |