statische Typprüfung
automatische Speicherbereinigung ("garbage collection")
Mehrfachvererbung; entstehende Namenskonflikte können durch Umbenennung ("Renaming") aufgelöst werden
Abstrakte Klassen ("deferred classes")
Generische Klassen (Templates in C++)
Polymorphie
standardmäßig dynamische Bindung; wo möglich, soll der Compiler in effizientere statische Bindung optimieren
Elemente der funktionalen Programmierung ("Tuples" und "Agents")
(Präfix- und Infix-) Operatoren können wie Funktionen vereinbart werden
Ausnahmebehandlung
Schnittstelle zu anderen Programmiersprachen, insbesondere C und C++
Standardbibliothek (im Umfang der von C++ vergleichbar)