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> ();