ティム・パターソンとVisual Basic

# はじめに
これは、[Visual Basic Advent Calendar 2020](https://qiita.com/advent-calendar/2020/vb)の25日目の記事となります。

ティム・パターソンとは何か？ 知っている方はかなりコンピューターの歴史に詳しいですね。

# ティム・パターソンとは
[ティム・パターソン(Tim Paterson)](https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%A3%E3%83%A0%E3%83%BB%E3%83%91%E3%82%BF%E3%83%BC%E3%82%BD%E3%83%B3)は人の名前です。そして、初期のマイクロソフトの躍進に大貢献した方です。
ティム・パターソンは、1956年6月1日に誕生し現在64歳(2020年)となります。シアトルの公立学校で学び、1974年にイングラハム高校を卒業、ワシントン大学の計算機工学科を1978年6月に22歳で卒業しています。

ティム・パターソンは自分の会社などを興しながらも、ライセンス問題で揉めたマイクロソフトに2度戻って、プログラマとして活躍しました。

# 何をしたのか
マイクロソフトが世界最大のソフトウェア企業になるきっかけとなったのは、MS-DOSを開発し当時のパソコンのデファクトスタンダードOSの座を築いたことにあります。
1980年にIBMから3ヶ月という短期間でOS開発の依頼を受けたマイクロソフトは、一から開発するよりも既にあったシアトル・コンピュータ・プロダクツ社の「QDOS(後の86-DOS)」を購入することにします。
この「[86-DOS](https://ja.wikipedia.org/wiki/86-DOS)」の開発者こそがティム・パターソン氏になります。

## シアトル・コンピュータ・プロダクツ入社
[シアトル・コンピュータ・プロダクツ（SCP）](https://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A2%E3%83%88%E3%83%AB%E3%83%BB%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BB%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%84)は、シアトルのコンピューターハードウェアの会社であり、インテル社の8086プロセッサを使ったコンピューターを製造していた。
1978年6月にワシントン大学の計算機工学科を卒業した当時22歳だったティム・パターソンがSCPに雇用された。1979年6月に8086コンピューター・キットのデモを行い11月から出荷したが、オペレーティングシステムがなく販売に苦戦していた(SCPはデジタルリサーチ社が1979年11月に最初に発表した8086バージョンのCP/Mを提供したいと考えていましたが延期された)。当時のマイクロソフトは新しいプロセッサ上でソフトを動かすことに熱心で、開発用としてSCPから8086ボードのプレ・リリース版を借りており、6月のデモに参加していた。SCPはCP/M-86が一向にリリースされないため、1980年4月にティム・パターソン（24歳）にCP/M-86の代替品を開発するよう命令し、4ヶ月間をかけてオペレーティングシステムQDOS(後の86-DOS)を開発した。CP/Mを模倣するもCP/Mの機能をすべて搭載したわけではなかったが、要領よくCP/Mの優れた点だけを取り入れた。例えば、CP/Mのファイルシステムをそのままコピーせず、Microsoft BASICのいくつかのバージョンで採用されたFAT ファイルシステムを取り入れている。

後にSCPはマイクロソフトを訴えた。SCPはマイクロソフトがオペレーティングシステムを安く買い取るためにIBMとの関係を秘密にしたと主張し、1986年に最終的に100万ドル（1ドル160円として1億6千万円）で和解している。
※1986年3月にマイクロソフトはナスダック市場に上場した。

## マイクロソフト入社経緯
アスキーの元社長であり、マイクロソフトの副社長でもあった西和彦氏が企画、設計に参画し、1980年5月に沖電気の8ビット・パソコンとしては、史上最大の容量を誇る「OKI-BASIC」を搭載した「IF-800」が発売。この時のOSには「[CP/M](https://ja.wikipedia.org/wiki/CP/M)」を搭載した。これは1977年西和彦氏率いるアスキーは「CP/M」の日本での独占販売権を得ていたため。そして沖電気用にカスタマイズしたのは後にマイクロソフト日本法人の社長になる古川享氏。
CP/Mは8ビットのパーソナルコンピュータ用OSとしては最も代表的な存在で、世界初の表計算ソフトであるの[VisiCalc](https://ja.wikipedia.org/wiki/VisiCalc) for Apple IIはCP/M用に作られた。

「[IF-800](https://ja.wikipedia.org/wiki/If800)」の発表会に5台購入したのはIBMの社員だった。その2ヶ月後にIBMからビル・ゲイツのもとに連絡がきた。
大型コンピュータで大成功していたIBMはパーソナルコンピュータ市場（Apple IIが1977年発売、PC-8001が1979年発売)に完全に出遅れていた。
※大型コンピュータで大成功のIBMについては「[日本コンピューター産業の父「池田敏雄」から見る黎明期コンピューターの歩み](https://qiita.com/yaju/items/49de76b5167b0814e64a)」をご覧ください。

そのためIBMの社内ベンチャーを立ち上げてパソコンの開発に取りかかることになり、そのリーダーを任されたのは[ドン・エストリッジ](フィリップ・ドナルド・エストリッジ)（43歳）であった。エストリッジはマイクロソフトに「OKI-BASIC」のようなBASICを求めたと同時にマイクロソフトにOSも提供してほしいと求めたのだ。IBMが作ろうとしていたのは16ビットのパソコンであった。
[なぜIBMは、IBM　PCに８ビットCPUではなく16ビットCPUを採用したのか？](https://www.sanosemi.com/history_of_IBM-PC.htm#IBMPC01)

ビル・ゲイツと西和彦氏は「CP/M」を開発したデジタルリサーチ社ゲイリー・キルドール(38歳)を紹介したが、IBMの密使が向かうも本人が留守でチャンスを逃したというのは有名な話である([諸説あり](https://ja.wikipedia.org/wiki/86-DOS#IBM_%E3%81%AE%E9%96%A2%E5%BF%83))。そして、マイクロソフトが16bit用のOSを作るチャンスが生まれた。3ヶ月という短期間でIBMが求める要求水準のものが作れるのか、マイクロソフト内でも開発するのかやめるのか堂々巡りで難しいのでないかと傾きかけた時、西和彦氏が「やるべきだ！　絶対にやるべきだ！」と叫んだ。実は勝算があったのだ。
シアトル・コンピュータ・プロダクツという会社が「シアトル・コンピュータ・プロダクツDOS」という16ビット用のOSを開発していることを知っていたからだ。

1980年12月にマイクロソフトは、シアトル・コンピュータ・プロダクツ社から86-DOSの非独占的なライセンスを25,000ドル（1ドル203円として507万円）で買い取り、1981年5月には開発者であるティム・パターソンを引き抜きIBM PC用に書き直させた。PCをリリースする1ヶ月前の1981年7月に、マイクロソフトはSCPから86-DOSの全ての権利を50,000ドル（1ドル220円として1100万円）で買い取った。
マイクロソフトは86-DOSをIBMにライセンスし、「IBM PC DOS」となった。このライセンスではマイクロソフトが他の会社にDOSを売ることも認められており、コンパック等のIBM以外のメーカーに「[MS-DOS](https://ja.wikipedia.org/wiki/MS-DOS)」名称でOEM提供を開始した。IBM PCの成功により16ビットパーソナルコンピュータ市場のOSでデファクトスタンダードとなり大成功の道へ進んでいく。

|年月|出来事|
|:--|:--|
|1975年4月|マイクロソフト社設立、ビル・ゲイツ（20歳）|
|1976年4月|アップル社設立、スティーブ・ジョブズ（21歳）|
|1976年10月|I/O創刊 編集人として西和彦氏(20歳)参加、後に喧嘩別れしアスキー出版社を設立|
|1977年4月|アップル「Apple II」デビュー|
|1977年5月|アスキー出版(後のアスキー)社設立、西和彦氏(21歳)|
|1977年10月|コモドール「PET 2001」発売|
|         |アスキーは8bitOSの「CP/M」日本での独占販売権を得る|
|1978年5月|インテル 8086(16bit)発表|
|1978年6月|ティム・パターソン（22歳）がSCP入社|
|1978年9月|日立「ベーシックマスター」発売|
|1978年10月|マイクロソフトの極東代理店としてアスキーマイクロソフトを設立|
|1979年9月|NEC「PC-8001」発売|
|         |モトローラ 68000(16bit)発表|
|1979年11月|SCPが8086コンピュータ・キットを出荷、CP/M-86を搭載したかったが延期された|
|1980年4月|ティム・パターソン（24歳）にCP/M-86の代替品を開発するよう命令した|
|1980年5月|沖電気「IF-800」発売|
|         |アップル「Apple III」発売|
|1980年7月|IBMからマイクロソフトにOSの作成を依頼|
|1980年12月|アップル ナスダック市場に上場|
|         |マイクロソフトはSCPから86-DOSの非独占的なライセンスを25,000ドルで買い取る|
|         |ソニー「3.5インチフロッピー規格」発表|
|1981年4月|シャープ「MZ-80B」発売|
|1981年5月|ティム・パターソン（24歳）がマイクロソフト入社|
|         |日立「ベーシックマスター レベル3」発売|
|         |富士通「FM-8」発売|
|1981年7月|マイクロソフトは86-DOSをIBMにライセンス|
|         |NEC「N5200/05(16bit)」発売|
|1981年8月|IBM 「IBM PC」発売 CPU 8088、「IBM PC DOS」リリース|
|1981年9月|日本ソフトバンク設立、孫正義氏(24歳)|
|1981年12月|ティム・パターソンが年末まで改良に取り組み、PC DOS 1.1となる|
|1982年3月|マイクロソフトがPC DOS 1.1をリリース|
|1982年4月|ティム・パターソン（25歳）がマイクロソフトを退社、SCPに再び戻る|
|1982年5月|IBM PC互換機向けに「MS-DOS」の名称でOEM提供を開始|
|1983年1月|アップル 「Lisa」を発売|
|1983年11月|マイクロソフト 「Microsoft Windows 1.0」を発表、発売は1985年11月|
|1984年1月|アップル 「Macintosh」を発売、マイクロソフト 「Multiplan」同時出荷|
|1985年5月|スティーブ・ジョブズ（30歳） アップル解任|
|1985年9月|マイクロソフト 「Excel for Macintosh」を発売|
|1985年11月|マイクロソフト 「Microsoft Windows 1.0」を発売|
|1986年3月|マイクロソフト ナスダック市場に上場|

## MS-DOS v1.25 オープンソース化
https://forest.watch.impress.co.jp/docs/news/1587684.html

2013/12/16 にティム・パターソンからMS-DOS v1.25のソースコードを見つけたというメールで公開されています。
MS-DOS v1.25 は、IBM 以外の OEM 顧客に対する最初の一般リリースであったため、すべての最初のクローン メーカーによって使用されました。

わずか 7 つのアセンブリ ソース ファイルで構成されています。バイナリは 12 キロバイトのメモリに収まり、ユーザーはディスクを操作したりアプリケーションを起動したりするための全画面テキストベースのコマンド シェルを提供します。

https://github.com/microsoft/MS-DOS/blob/main/v1.25/Tim_Paterson_16Dec2013_email.txt

### MSX始動
西和彦氏が「IBM-PC」の開発が終わってホッとしていた1981年秋頃、ニューヨークと香港にあるスペクトラビデオという会社から、入門用のパソコンを作ってくれという依頼があった。マイクロソフトBASICを使った8ビット・マシンの集大成にしようと作り込み、このマシンをプロトタイプにして統一規格の大まかな構想を考え、優秀なメンバー2人が具体化してくれた。プロトタイプが出来上がったのは1982年冬、これを松下電器とソニーに持って行った。この時期は松下電器とソニーは「[ビデオ戦争(VHS対ベータマックス)](https://ja.wikipedia.org/wiki/%E3%83%93%E3%83%87%E3%82%AA%E6%88%A6%E4%BA%89)」で交戦状態にあった。

そして1983年アスキーの西和彦氏がパソコンの統一規格をつくるという理念のもとに「MSX」というブランドを立ち上げます。名前は日本ビクターの「VHS」の例もあり英語の3文字にすることに決めていた。そして幾つかの案を考えマイクロソフトの「次」という意味でつけた「MSX」という名前が閃いた、松下電器の「M」とソニーの「S」が含まれていることもあり決定した。
参画企業は順調に増えていき、日立、東芝、三菱、富士通、三洋、日本ビクター、パイオニア、京セラ、キヤノン、ヤマハなどのメーカーが参画を決断してくれた中、最終局面でNECだけが撤退を決定した。MSXと正面からぶつかる家庭用パソコン「PC-6001」があったからだろう。そして参画した富士通もFMシリーズとぶつかることから短期で撤退していった。MSXは1983年の日経優秀製品賞を受賞している。
同時期(1983年7月15日)に任天堂よりにファミリーコンピューターが発売されたが、本格的に大ヒットするのは1985年9月13日の「スーパーマリオブラザーズ」を発売してから。

## ファルコン・システムズ(27歳)
ティム・パターソンは、1982年4月にマイクロソフトを退社すると元のSCPに1年近く戻ります。そして1983年半ばに、27歳にして自身の会社ファルコン・テクノロジー（別名ファルコン・システムズ）を立ち上げます。
同年8月10日にポール・アレンから、MS-DOSのZ80バージョンの移植をするように依頼され27日から開始します。10月11日にはポール・アレンにMSX-DOSのデモンストレーションをすることが出来ました。アスキーは実際のMSXマシンを提供しなかったため、1984年1月28日にクリス・ラーソンと一緒に来日し、そこで西和彦氏らと会っています。3日間は少し観光しつつ問題と対峙します。
2月末か3月上旬にクリス・ラーソンとジェイ・スズキがオフィスに来て、デバッグ用にICEを備えたMSXマシンを持ち込みました。これによりすべてが機能し、1984年4月に[MSX-DOS](https://ja.wikipedia.org/wiki/MSX-DOS)オペレーティングシステムを完成させます。

## マイクロソフト入社(2度目 30歳)
1986年、MS-DOSの使用料免除の許可を取り戻すためにマイクロソフトによってファルコン・テクノロジーは買収されます。1986年から1988年の2年間、再びマイクロソフトで働くことになります。
※1986年3月にマイクロソフトはナスダック市場に上場した。

この時は「QuickBASIC4.0」の「スキャナー」を担当します。 

## マイクロソフト入社(3度目 34歳)
約2年後の1990年から1998年の8年間、再びマイクロソフトで働くことになります。
Visual Basicバージョン1.0～6.0の高速化に力を注ぎます。

|製品名|リリース|
|:--|:--|
|Visual Basic 1.0|1991年|
|Visual Basic for MS-DOS|1992年|
|Visual Basic 2.0|1992年|
|Visual Basic 3.0|1993年|
|Visual Basic 4.0|1995年|
|Visual Basic 5.0 CCE|1997年|
|Visual Basic 5.0|1997年|
|Visual Basic 6.0|1998年|

他にもx86アセンブリ言語とCの両方でDecimalデータ型を作成しており、この実装は今でも.NETで使用され続けています。

## パターソンテクノロジー(42歳)
1998年に再度、自身のソフトウェア開発会社「パターソンテクノロジー」を立ち上げ、それは現在でも存続しています。

# 最後に
ティム・パターソンはシアトルに生まれ、たまたま入社した会社の仕事が16bit用OSを作ることになり、それを西和彦氏に見いだされ、マイクロソフトに引き抜かれMS-DOSを作ることになった。また数年後には西和彦氏のMSX構想に牽引され、今度はMSX-DOSを作ることになった。なんか西和彦氏に間接的に引っ張られた感じですね。
その後にVisual Basic 1.0～6.0の開発に尽力してくれた素晴らしい方です。

来年の2021年05月20日は、Visual Basicの30周年となります。

https://qiita.com/yaju/items/3a4dd40c40554eb5d283

[Visual Basic Advent Calendar 2020](https://qiita.com/advent-calendar/2020/vb)の最後の記事でした。
参加して頂いた方、読んで頂いた皆様方、ありがとうございました。来年もよろしくお願いします。

# 参照
* [「マイクロソフト帝国」を生み出した“驚くべき伝説”の真実](https://diamond.jp/articles/-/253315)
* [マイクロソフト成功の“決定的な瞬間”に立ち会った日本人は、「何」を目撃したのか？](https://diamond.jp/articles/-/249859)
* [ついに明かされる！　伝説のパソコン「MSX」誕生の驚くべき“舞台裏”](https://diamond.jp/articles/-/253318)
* [【伝説のパソコンMSX】仕掛け人がついに明かす「失敗の本質」](https://diamond.jp/articles/-/253320)
* [第57回　悲運の英雄、CP/Mの開発者](https://jibun.atmarkit.co.jp/ljibun01/rensai/adventurer/057/02.html)
* [DosMan Drivel](http://dosmandrivel.blogspot.com/)