« 50年前に予測した50年後 | Main | 凝結熱のチカラ »

2006.02.22

Visicalc Revisited

ma2さんのはてな日記に wikicalcというweb用のスプレッドシートの話がでている。wikicalcの話というよりも、作者のDan Bricklinがスプレッドシートの元祖 Visicalcの開発者である、というのが主題。

ところで、考えてみたら「スプレッドシート(表計算)」という言葉自体このごろは使われることもなくなってしまった。「エクセル」のことである、乱暴に言えば。少し前までは「ロータス123」とか「Epocalc」とか「○○Calc」というソフトがいろいろあったのだが、その元祖である「Visical」を1979年に作ったのがこのDan Bricklinという人。

当時のパソコン、といってもIBM PCも出る前のこと。ワープロソフトはタイプラーターの延長として誰しも思いついただろうが、Visicalcは、概念自体が全く新しいものだった。

さて、Dan Bricklinのページを見ていたら、「IBM PC版初代Visicalcの実行ファイルがダウンロードできる」ということがわかった。(1999年頃からあったらしい)

ファイルサイズは 27KB。そこいらのGIFファイルより小さい。
ちなみに今のExcel 2003の実行ファイルは8950KB.

早速ダウンロードしてWindowsのDOS窓で動かしてみた。残念ながら、データの入力ができなくて使えないが、まさにVisicalである(あたり前)。
数式やコピー、移動、相対アドレス、絶対アドレスなどスプレッドシートの基本機能はこの時からあったのだ。

Visicalを見ていると、昔のソフトのことをいろいろ思い出す。Bricklinが「Visicalcをダウンロードできるようにしたことへの反響」を書いている。
http://www.bricklin.com/history/vcpostingreactions.htm

Visicalcの権利はロータス社が持っているが、Dave Winerの協力で公開することができたという。Daveはさらに他のソフトについても探しはじめ、BorlandのTurbo Pascal、SymantecからはThink Tank, MORE(Mac用)などのソフトも公開しているらしい。パソコンだけでなく、Dennis Richieによる初期のCコンパイラーも。

会社との交渉は大変だったとBricklinが書いているが、Borlandのように、自社のサイトで Antique Softwareとして公開しているところもある。

クラシックソフトウェア試用記
□Visicalc
 表示されて動作するが入力した数や文字が残らない。
□Turbo Pascal
 たぶんフルに正常に動作している。サンプルの mini-calcも動いた
□Think Tank(アウトラインプロセッサー)
 DOS窓を英語モードにすると(usコマンド)動いた。
【注意】プログラムを開始すると「今日の日付を入れろ」と言われるが、
ここで06年02月22日と入れたら、システム日付が 1906年になってしまった。
ああ、こんなところに2000年問題が。

February 22, 2006 at 04:23 PM in 日記・コラム・つぶやき |

Comments

Visicalcは使ったことがありませんが、その後出たSuperCalcは使ったことがあります。
これをZ80+CPM上で走らせていました。これで給与計算や技術計算をこなしていました。マシンはSANYOのFDS1000、後のMBC100です。何故かキーボードは富士通製で、これがかなり良かったですね。
エディタといえば懐かしいのはVZエディタです。確かこれの前身は僅か9801バイトだったと記憶しています。
TurboPascalもお世話になりました。こいつで作ったファンクションやプロシージャーはまだ使っています。

Posted by: 271828 | Feb 23, 2006 10:17:39 AM

271828さん
 Supercalcユーザーだったとは恐れいりました。というよりもCP/Mユーザーだった方に驚いたというべきかな。
VZはぼくも使っていました。小さくて速くて拡張性があってよかったですね。Windows用にWZというのもあったかな。
TurboPascalのプログラムをまだ使っているっていうのがまたすごい。Windowsの中で動かしているってことですか。

Posted by: のぶ | Feb 23, 2006 10:21:26 AM

「ダイナミック・スプレッドシートはシュミレーション・キットで、“セル”というソフトウェア・オブジェクトの集合体である。セルは他のセルから値を得ることができる。ウィンドウは1枚のシート(仮想の大きな紙)の一部分を選んで表示する。個々のセルは、紙の向こう側に複数の層をもち、各層がそのセルの値を計算し、表示書式を決定している、というように考えることができる。セルの名前は、隣接するセルに入力できる。各セルにはヴァリュー・ルールがあり、これは値そのものになることもあれば、値を計算するための規則になることもある。値そのものも、シート内の他の場所にあるセルの状態しだいで変化する、暫定的なものになりうる。“書式規則”は、値を表示に適した形式に変換する。“イメージ”は、シートに表示される書式を整えた値である。(アラン・ケイ)」
とありますが、この下の具体的レベルで記述した表計算ソフトの解説書が見当たりません。適当な本を紹介してもらえませんか?

Posted by: 田吾作 | Feb 23, 2006 12:42:25 PM

> CP/Mユーザーだった方に驚いたというべきかな。
 もっと驚くべきことにはCP/Mの時代にすでにRAMDISKを使っていました。たしか320KBでしたが強烈に速かった!これが実にでかい基板で20万以上しましたが、開発会社の設立に係ったので貰ったのです。
この会社は後に日本で最初の本格的MS-DOSマシンを世に送ることになります。不遇の名機NECのPC100です。

PascalのソースはDelphiに移植されています。

Posted by: 271828 | Feb 24, 2006 9:12:00 AM

>不遇の名機NECのPC100です。

発売直後に買いました。グラフィックボードやプリンター(132桁)など合わせて100万円くらいしました。1983年くらいのことだったでしょうか。1年くらい使ったところでアメリカに駐在することになって、友人に預けてそのまま引き取ってもらいました。わが家でも「不遇」だったのか。

>PascalのソースはDelphiに移植されています。
 同じBorlandですね。271828さんが、メンテしているんですか?!

Posted by: のぶ | Feb 24, 2006 11:08:09 AM

田吾作さん、こんにちは

>の下の具体的レベルで記述した表計算ソフトの解説書

ぼくも興味がありますが、本は思いあたりません。
アラン・ケイの引用元は書名『アラン・ケイ』からですか?
そちらに、参考文献などが書かれていればいいのですが。

Visicalcの生い立ちを考えると論文のようなものが存在するのかどうかがわかりませんね。
"Spreadsheet History"というリンク集のページがありますので、とりあえずご紹介しておきます。
http://www.j-walk.com/ss/history/

Posted by: のぶ | Feb 24, 2006 6:02:37 PM

のぶ様 ご返事ありがとうございます。アラン・ケイ (1992年10月11日 第1版第4刷)株式会社アスキー発行 P107より引用です。私も色々探して見たのですが適当な本は見当たりませんでした。アメリカの小中学生用辞典の説明文を和訳した「ウェブスター英英和辞典(日本ブリタニカ)」は日本語の意味を調べるのに良く使用するのですが、案外アメリカの小学生用エクセル入門書などに良いものがあるかもしれません。「アラン・ケイ」も幼児教育に力を貸しているようなので。

Posted by: 田吾作 | Feb 24, 2006 9:02:11 PM

田吾作さん
 1984~89年にアメリカにいた時、アラン・ケイの講演を何度か聞きました。びっくりする話の連続でした。
 スプレッドシートの内部の仕組みは面白そうですね。セルの中に「式」を入れられること、「他のセルを参照すること」そして「セルの値が変化すると、そこを参照している他のセルの値も変わること(再計算)」などが新しいアイディアだったのでしょう。他にもフォーマットを変えたり、画面分割ができたりなど、初期の版でもいろいろと高機能だったようです。

Posted by: のぶ | Feb 25, 2006 4:18:15 PM

> 同じBorlandですね。271828さんが、メンテしているんですか?!

 クロソイド(コルニュ螺旋)、滑り台の速度、3D空間における回転など技術計算なのでユーザインターフェイスは劣悪ですが、友人に頼んでフリー版のDelphiに移植して貰いました。

思えば、TurboPascalに取り組んでいた時代が一番充実していた。

Posted by: 271828 | Feb 27, 2006 10:28:59 AM

>思えば、TurboPascalに取り組んでいた時代が一番充実していた。

是非、フリー版のTurbo Pascalで復帰してください:-)
(Delphicもフリーになっちゃったのかぁ)

Posted by: のぶ | Feb 27, 2006 11:06:29 AM

当時の開発環境を覚えている範囲で。

マシンはNECのPC9801VX21でした。CPUは286でしたね。
まずアイデアをノートに書く、筆算で出来る限りエレガントにすることを試みる。
Lotus123で小さなモデルを作ってみる。
セルの数値を全部見られるのでデバッグが楽。グラフでも確認する。
Vzでソースを書いてTurboPascalに食わせる。

今の開発案件で、教育用も兼ねてエクセルで微分方程式を解いてやろうと思っています。
マクロとか使わず「スプレッドシート」本来の機能だけでね。

Posted by: 271828 | Feb 28, 2006 8:14:09 AM

> マクロとか使わず「スプレッドシート」本来の機能だけでね。

そうそう、ぼくもその発想。
マクロを使えば「何でもアリ」ですからね。雑誌の「Excelコンテスト」みたいなのでも大ていマクロ禁止です。
ぼくの場合は、マクロはあまり書けないという理由もありますけど。
 Excelの関数は最適化されているから性能もいいですね。ヘタなマクロを書くと遅くて大変。BASICのインタープリタ並みかな。

Posted by: のぶ | Feb 28, 2006 9:24:16 AM

Post a comment