Programming Languages

If what you want is an object-orientated, compiled, nominative strongly statically typed language that supports detailed run-time type introspection, operator overloading, function overloading, generics, method pointers, closures, class references, virtual constructors, exceptions, direct memory manipulation, and has full mature Unicode support, a rich set of libraries, and a vibrant community, you are out of luck:

Language Paradigm Execution Type-checking RTTI Operator Overloading Function Overloading Generics Method pointers Closures Class references Virtual constructors Exceptions Language support for enumeration Direct memory manipulation Automatic memory management Native Unicode support Community and libraries Other notable failings
C Procedural Native Nominative weak static no no no no n/a no n/a n/a no no yes None no Rich Function pointers, strings
C++ Object-orientated Native Nominative weak static very limited yes yes yes limited yes no no yes yes yes Limited limited Rich
C# Object-orientated VM Nominative strong static yes yes yes yes yes yes yes yes yes yes limited Garbage collection yes Rich Controlled by Microsoft
FreePascal Object-orientated Native Nominative strong static yes yes yes yes yes planned yes yes yes yes yes Limited planned Limited One-based strings
Go Concurrent procedural Native with runtime Structural strong static yes no no no limited yes no n/a limited limited limited Garbage collection yes Limited Case-for-visibility
Java Object-orientated VM Nominative strong static comprehensive no yes limited no planned yes no yes no no Garbage collection yes Rich
JavaScript Prototypes VM Implicit dynamic comprehensive no no n/a no yes yes yes yes limited no Garbage collection limited Rich Extremely limited compile-time checking
Perl 5 Yes VM Implicit dynamic limited yes no n/a no yes yes yes yes no no Garbage collection yes Rich Unmaintainable
Python Object-orientated VM Dynamic yes yes no n/a yes yes yes yes yes yes no Garbage collection yes Rich
  翻译: