これらのコンテキストを動的に作成および破棄する機能と相まって、軽量の実行コンテキスト間で受け渡しされるメッセージは、基本的にはアクターモデルです。
プログラミング言語は、次の2つの方法のいずれかで式の問題にアプローチする傾向があります。オブジェクト指向言語は、異なるデータ型を使用して同じ操作を実装しやすくすることに焦点を当てる傾向があります(たとえば、「マウスでクリックできるオブジェクト」はスクロールバーになる場合があります)。ウィンドウ、メニュー、テキストボックスなど-同じ操作、異なるデータ表現)、関数型言語は同じ基本データ型に対して新しい操作を簡単に実装することに焦点を合わせる傾向があります。クラス階層を放棄することにより、Goはこの分割の「機能的」側により多く行き着くようです。
Adam Crosslandが彼のコメントで指摘したように、「type-ignorantly-implementing-interface」は、動的言語で非常に普及しているアヒル型付けの一種と見なすことができます。(ただし、これをGo内の構造型システムと見なす方が技術的に正確です。C++テンプレートは、おそらく現在最も一般的な構造型システムの実装です。)
Goには多くの前例があります。そのアイデアのいずれも言語に固有のものではないと思います。しかし、私はそれが実用的であることを意図された言語にとって一般的に間違った尺度だと思います。Goは、いくつかの異なるドメインからの有用なアイデアをエレガントな方法で組み合わせたように見えます。これにより、C#やJavaがもたらすよりも生産性の高いプログラミングが得られると思います。私はそれが牽引力を得ることを望みます。