1. HOME
  2. ブログ
  3. ITエンタメ
  4. Go言語は最強バディが開発!?ケネス・レーン・トンプソンとロブ・パイク

Go言語は最強バディが開発!?ケネス・レーン・トンプソンとロブ・パイク

Go言語は誰が作ったの?

ミツオカミツオカ
師匠、Go言語教えろください!
にゃんこ師匠にゃんこ師匠
なんじゃ、急に
ミツオカミツオカ
Goって響きで、今すぐ始めなきゃと思いました!
にゃんこ師匠にゃんこ師匠
また、行き当たりばったり…
ちなみに、ケネス・レーン・トンプソンとロブ・パイクが作ったプログラミング言語だ!
二人ともそれまでにUNIXなども開発しているし、プログラミングのスペシャリストと言っていいだろう
ミツオカミツオカ
Go言語より、その二人に俄然興味が湧いてきました!🔥
にゃんこ師匠にゃんこ師匠
…おい。
では、ケネス・レーン・トンプソンを中心に話をしていこうかの~!

ケネス・レーン・トンプソンの最初の相棒はデニス・リッチー

ケネス・レーン・トンプソンは、1943年アメリカのルイジアナ州ニューオリンズで生まれました。

数学が得意だったトンプソンは、カルフォルニア大学バークレー校に入学し、電子工学、計算科学の学士号を1965年に、修士号を1966年に取得しています。

卒業後はニュージャージー州マレーヒルにあるベル研究所に勤めはじめました。

革新的な開発をしてきたベル研究所

ベル研究所は、電話の発明で知られているグラハム・ベルによって「ボルタ研究所」という名前で1920年設立されました。

その後、1925年アメリカの巨大通信グループの「ベル・システム」の独立事業として、名前が「ベル研究所」となり、現在はノキアの子会社となっています。

ベル研究所は設立以来、「トランジスター」や「レーザー」など、時代に先駆けて役に立つものを発明してきました。

遊ぶために作ったUnix

ベル研究所に入社したトンプソンは2歳年上のデニス・リッチータイムシェアリングオペレーティングシステムMultics」の開発に取り組みます。

トンプソンは「Multics」の開発のためにプログラミング言語「Bon」開発しました。

その後、「Multics」で動くビデオゲーム「スペーストラベル」も開発しました。

しかし、コストパフォーマンスの悪さからベル研究所は「Multics」の開発をあきらめ、トンプソンは「スペーストラベル」で遊べなくなってしまったのです。

トンプソンはあきらめきれずに、使われていないミニコンピューター「PDP-7」を使用して、「スペーストラベル」を作り直すことにしました。

この作り直すために書いたオペレーティングシステムが、のちの「Unix」の原型となります。

にゃんこ師匠にゃんこ師匠
できたばかりのUnixは、一つのプログラムしか動かせないシングルタスクだったため、同僚から名前は「Unics」ではどうかと提案されたんじゃ。
そして、最終的に「Unix」になったのだ!
ミツオカミツオカ
uni(単一)」を文字ったネーミングだったのですね

B言語からC言語へ

Unixは、デニス・リッチーとともに改良していくようになるのですが、「Unix」にはそれまで使っていたアセンブリ言語より、ミニコンピューターに適した高度なシステムプログラム言語を作る必要があると考えました。

そこで1969年作り出されたのが「B言語」です。

「B言語」はマーティン・リチャーズが作ったプログラム言語開発用の「BCPL言語」をもとにして、ミニコンピューターのメモリー容量に合わせて8キロバイトで作られました。

この「B言語」を更に改良して1972年にリッチーが作ったのが、今でも多く使われている「C言語」です。

1973年、Unixのバージョン4は「C言語」で書き直されました。

にゃんこ師匠にゃんこ師匠
「B」の名前は、BCPLの「B」であるとか、またはトンプソンの妻のボニーの名前からきているとか…
諸説あるな
ミツオカミツオカ
奥様の名前が由来だと、ロマンティックですね!

新たな相棒ロブ・パイク

Unix はしばらくトンプソンとリッチーの二人を主軸として開発が進んでいきました。

そこへカナダ生まれの「ロブ・パイク」がベル研究所に入社してくるのでした。

そして、トンプソンは13才年下のパイクと Unix を開発するようになります。

トンプソンの教え

パイクとトンプソンは開発中、思うようにプログラムが動かないことが時々ありました。

パイクはコードをチェックしたり、デバックしたりして、トラブルの原因を見つけようとします。

一方トンプソンはその傍らでずっと考え、原因をパイクより早く突き止めます。

このときにパイクは悟ります。

バグがどうして起こったのか考えることにより、問題が起こった場所を高い位置から見ることで特定でき、修正ができて、バグの起こりにくいソフトウェアにつながる。

トンプソンは直接指導することはなかったですが、パイクはトンプソンを尊敬し、一緒に仕事をしながらいろなことを学びました。

こうして技術を磨いたパイクは、1981年世界で初めてUnix用のウィンドウズシステムのコードを書きました。

パイクは他にも、プログラミング言語「Limbo」、Unix用のグラフィカル端末「Bit」、テキストエディタ「sam」「acme」、電子メールでの差出人の顔写真を表示する「vismon」を開発します。

旅立つUnix

トンプソンとパイクをはじめとする開発チームの成果により Unix は、PDP-11 以外のコンピューターに対応するようになり、マルチタスクの機能も加わりました。

この成果は計算機科学の国際学会のAMCに投稿され、世界中から注目されてUnixのソースコードを各研究機関に送ることになりました。

これにより、Unix はベル研究所だけではなく、あらゆるところで開発され、産業分野と進出していきます。

にゃんこ師匠にゃんこ師匠
この頃のトンプソンは Unix の開発の傍ら、チェスのプログラムを開発して世界大会で優勝したことがあるのだ
ミツオカミツオカ
趣味でもプログラミングしているんですね!
にゃんこ師匠にゃんこ師匠
一方のパイクは、テレビ番組に出て「モスクワの冬季オリンピックのアーチェリーで銀メダルをとった」と言ってたぞ
ミツオカミツオカ
すごいコンビですね!
にゃんこ師匠にゃんこ師匠
が…、カナダはその大会はボイコットしているので、参加自体してないんじゃ
ミツオカミツオカ
ただのジョークとして受け取ればいいですか…!

UTF-8の誕生

Unixが世界中で開発されるようになり、ベル研究所では新しいオペレーティングシステムPlan9を開発することになりました。

それに伴いASCII文字と互換性があるエンコードを開発することとなり、トンプソンとパイクが共同で1992年に「UTF-8」を作り出しました。

UTF-8 は各文字に識別番号を割り当て、それをコンピューターに読み込ませ、文字を表示される仕組みになっています。

他のエンコードよりも扱いやすく、2019年ではWebページの90%を占めるまでになりました。

Go言語の開発

1990年代、トンプソンとパイクは、研究用オペレーティングシステムの「Infernoの開発に取り込みます。

今回は「リッチー」を加えたチームです。

しかし、この開発を最後に2000年にトンプソンがベル研究所を退職し、2002年にはパイクも退職してしまいました。

そして二人は、Google で新しいプログラミング言語の開発をすることになります。

Googleでリスタート

Google が新しいプログラミング言語が必要と感じたのは、Google のシステムがあまりにも大きく、今後も大きくなる可能性が多いからです。

当時Googleのシステムには「C++」、「Java」や「Python」などが使用されてきました。

しかし、それらのコードはハードウェアやソフトウェアの発展とともに肥大化し、複雑化していきました。

そのために不安定になったり、遅くなったりする恐れもあります。

そこで、新しいプログラミング言語の開発に白羽の矢が立ったのがトンプソンとパイクです。

今まで二人が開発したプログラミング言語の経験を生かすプロジェクトとなりました。

C++とPythonのハイブリッド

トンプソンとパイクは、今の問題点をピックアップしてそれを解消するためには、C++の安定性Pythonのようなシンプルなコードが必要だと思いました。

それから二人は理想とするプログラミング言語の開発に熱心に取り組みました。

そして2009年に公開されたのが「Go」です。

それはC言語の構文に寄せながらも、誰でも理解しやすく読みやすいPythonのようにシンプルなコードにしたのでした。

機能を絞って動作が軽くなるようにしたため、以下のような特徴があります。

  1. 例外処理がない
  2. 拡張性を高める「継承」がない
  3. 汎用的なクラスやメゾット機能がない

このようなプログラミング言語は今までになく、多くのプログラマーに衝撃を与えました。

広がるGo言語

Go言語は、当初 Google でしか使えないのではないか、ユーザーが増えないのではないかと使用することを躊躇する企業も多く、期待を下回りました。

しかし、2013年に Android のアプリ開発に対応した Go1.4 が公開され、YouTube や Dropbox も使用しはじめました。

主にベンチャー企業を中心に広まっていったのです!

にゃんこ師匠にゃんこ師匠
ちなみに、パイクが2013年にC言語について話したことが「5つのプログラミングルール」としてコンパクトにまとめられてネットで公開されたんじゃ
ミツオカミツオカ
全エンジニアが検索したでしょうね!
にゃんこ師匠にゃんこ師匠
あとトンプソンから教わったことや自分の経験などをもとにして、ブライアン・カーニーハンとともに「プログラミング作法」という本を2000年に出版していたりするぞ!
ミツオカミツオカ
プログラミングで躓きやすいところやきれいなコードを書くためのヒントやアドバイスが書かれていますね!

トンプソン&パイクの現在

2022年、ソフトウェアコードを品質測定するアメリカの「TIOBE」のランキングで、Go言語は前年から5つ順位を上げ15位になりました。

初心者でもわかりやすいGo言語は、今後もユーザーが増えていくことでしょう。

ちなみに、トンプソンとパイクは現在も Google で Go言語の開発を続けています。

はじめは師弟関係であった二人もいつしか対等になり、最高のバディとなりました。

今後、この二人は何を作り出すのか。ワクワクが止まりませんね!

にゃんこ師匠にゃんこ師匠
どこの世界でも同じだが、技術を後進に伝えていくことは大事だな!
ミツオカミツオカ
きっと、パイクさんはトンプソンさんという一流のエンジニアから教えてもらったのは大きな経験でしたよね
にゃんこ師匠にゃんこ師匠
トンプソンもパイクが成長していく姿を見るのは嬉しかったと思うぞ
ミツオカミツオカ
ステキな関係ですね
まるで、私と師匠との関係みたいですね
にゃんこ師匠にゃんこ師匠
うむ、そうじゃな!
ミツオカミツオカ
そういえば師匠!
この前、私のプリン食べたでしょ!
にゃんこ師匠にゃんこ師匠
え…いや…
はい、食べました。
ミツオカミツオカ
そこのコンビニで今すぐ買ってきなさい!
にゃんこ師匠にゃんこ師匠
はい、今すぐ買ってきます!!
ミツオカミツオカ
よろしい!
にゃんこ師匠にゃんこ師匠
(全然ステキな関係じゃない…)

書いた人はこんな人

広告メディア事業部
広告メディア事業部
「好きを仕事にするエンジニア集団」の(株)ライトコードです!

ライトコードは、福岡、東京、大阪の3拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もり大歓迎!

また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」「WEBディレクター」を積極採用中です!
インターンや新卒採用も行っております。

以下よりご応募をお待ちしております!
https://rightcode.co.jp/recruit

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア