Le type de carte de Go n'est pas thread-safe, il est typé statiquement. Il n'a pas d'héritage de type, de programmation générique, d'assertions, de surcharge de méthode ou d'arithmétique de pointeur non plus et pour une bonne raison.
La sécurité du type et la sécurité de la mémoire sont des objectifs à long terme, ici, c'est un problème.
La sécurité de type présente un surcoût, en kilo-octets et mégaoctets, ce qui est acceptable. Go est conçu avec MapReduce et "Big data", exobe un pétaoctet de données, ce qui présente des problèmes de performances avec la sécurité des types, la vérification de type (boxing / unboxing) crée des frais généraux et éloigne les cycles du traitement.
La sécurité de type peut être restrictive dans le sous-typage et le polymorphisme et dans le typage canard (cast objet à objet), cela crée des dangers et aussi un espace où les langages comme Go sont très utiles. C ++ et Java ne sont pas remplacés par Go, c'est un nouveau langage pour aider la programmation distribuée et le système massivement parallèle.
La grande déclaration de Bruce Eckel - "Go a beaucoup plus de sens pour la classe de problèmes que C ++ était initialement destiné à résoudre", est discutable. C ++ est un langage très efficace et l'implémentation Boost de MapReduce est très efficace.
Les primitives de concurrence sont l'avenir. La sécurité des caractères a toujours été un sujet très controversé et Go est peut-être la première langue à aborder ce problème depuis 20 ans, ou depuis Algol.