Go! est un
langage de programmation concurrent, originellement conçu par Keith Clark et Francis McCabe en 2003. Il est orienté vers le besoin de programmer des agents d'applications surs, de qualité de production. Il est multi-thread, fortement typé et d'un niveau élevé (au sens de la programmation fonctionnelle). Il a des définitions de relation, de fonctions et de procédures d'action. Les threads exécutent les procédures d'action, les appels de fonctions et les
querying relations au besoin. Les threads des différents agents communiquent et se coordonnent en utilisant des messages asynchrones. Les threads à l'intérieur d'un même agent peuvent également utiliser des relations dynamiques partagées agissant comme des registres mémoires.