Der Typ eines Bezeichners ist seine beste Dokumentation.
(denn der Compiler kann sie prüfen!)
Es sind Sprachen (und ihre Sprecher) arm dran, deren Typsystem ausdrucksschwach ist.
int a [] = { "foo", 42 }; // ?? // Mittelalter-Java: List l = new LinkedList (); l.add ("foo"); l.add (42); // korrektes Java: List<String> l = new LinkedList<String> ();