はじまりのSmalltalk その3
前回の記事に、プログラミングのツールとしてSmalltalkをつかいたい、とかきました。
今回は、プログラミングについて、お話ししたいと思います。よくつかわれるいわゆるプログラミングということばより、少し広い意味でこのことばを使いたい、という話しです。
*
Alan Kayが1972年にかいた、「A Personal Computer for Children of All Ages」という文章があります。たぶん、よんだことがある、きいたことがある、という人も多いかなと予想しています。
翻訳も手軽によめるところが、さすが日本。日本は、Alan Kayたちが1970年代から進めている、さまざまな活動とその成果であるソフトウェアなどの普及活動が進んでいる国のひとつと、ぼくは予想しています。
もしあなたが、この文章を一度もよんだことがないのなら、20分くらい時間をとって、好きな珈琲でも淹れて、ざっとでいいですから目をとおすことをオススメします。翻訳も原文のよさを活かした日本語だと感じています。
*
To know the world one must construct it.
この宇宙を理解するためには、まずそれをつくらないといけない。
このイタリアの詩人のかっこいい引用からはじまる文章を、あなたは少しよみづらいと思うかもしれません。
でも、よく分からないところは気にせず放っておきながら、とにかくよみすすめてみてください。最初は、全体の雰囲気を感じるだけでもいいと思います。
すばらしいメッセージがこの中に含まれていると、ぼくは理解しています。
ぼくの理解力のせいもありそうですが、このエッセイにかかれているメッセージを理解するまでに、けっこう時間がかかりました。今もまだ、100%理解できたとは思っていません。
とくに初めてよむ人にとっては、節ごとの見出しも少なくて、見かけから全体の構造をつかみにくいように思います。オリジナル原稿の問題もあると思うのですが、よく見えない図もあります。
でも、そうしたことが些細に感じるような、よんでよかったと思うメッセージを含んだ文章だと、理解しています。
*
さて、プログラミング。
この文章の、最初の絵(9歳のベス[右]とジミー[左]がたぶん芝生にすわってDynabookで遊んでいます)から下、アスタリスクが8個並んだ文章の区切りまでをよんでください。
このベスとジミーがやっていることが、ぼくの想うプログラミングです。
Dynabookでスペースシップの対戦ゲームをやっていたんでしょうか。ベスにかんたんにやられてしまったジミーが、「本当の宇宙みたく、太陽の重力のある空間ならベスにやられたりしない」と負け惜しみをいうところから、このシーンははじまります。
ベスとジミーは、このゲームに太陽の重力をいれる方法を考えはじめます。やがて、ベスは学校のグループの仲間とジェイコブソン先生の宇宙戦争をみつけたときに書いたプログラムを、自分のゲームに組み込みます。
この世界では、9歳のベスが、学校のグループ仲間と、自分たちが興味をもったプログラムをみながら、自分たちでプログラムを書く授業があるのでしょうか。いいですね。
でもベスのスペースシップは、2人が思ったように「落ち」ません。「うひゃぁ、いろんな場所へ飛んでっちゃう」。
困っているベスに、負け惜しみいったばかりのジミーが「どこにいても、太陽の方向へどんどんスピードを増すようにしないと!」と、アドバイスします。
でも、どうすればそれができるのか分からなくて困った2人は、ジェイコブソン先生のところへ相談に行きます。2人のキラキラした目をみて大喜びの先生は、でも答えを教えずに、図書館へ行くことを2人に薦めます。
図書館行きを薦められたベスとジミーは、物理的な図書館へは行かず、クラスのLIBLINKというネットにDynabookをつなぎます。2人の物理的な場所は不明ですが、さっきまでいた芝生広場に戻ったのかもしれません。
ジミーは、図書館のデータベースにつながったDynabookで見ることのできる情報に少し目移りしそうになります。ベスにタシナメられたジミーは、フィルタをつくって目指す情報だけを集めるようにします。
(あいだにある、ベスのお父さんが出張先の空港のポスターでみた「独創的な」ヒロインを彼のDynabookにダウンロードしようとして失敗した小話は飛ばしますね。おもしろいですけど)
そしてベスは、座標系を「発見」します。太陽をゼロ点にした座標系を置けば、太陽に向かって「落ちる」運動を計算できる。スペースシップの位置の座標に応じて、水平方向と垂直方向の速度を減らすようにすればいい。
このベスの「発見」の意味を、Alan Kayはこう書いています。
All of the drawing and animations she and the other kids had done previously were accomplished by using relative notions which coincided with the scope of their abilities at the time. She was now ready to hold several independent ideas in her mind. The intuitive feeling for linear and nonlinear notion that the children gained would be an asset for later understanding of some of the great generalizations of science.
これまでに彼女やほかの子どもたちが描いてきた絵やアニメーションは、その時点での彼女たちの能力の範囲に似合う形の、相対的な概念をつかってつくられたものでした。そして彼女は今、彼女の心の中に新しいいくつかのアイディアを受入れる準備ができたのです。線型と非線型という概念についての直感です。それはやがて、科学の一般化の理解への資産のひとつになるでしょう。
*
うまくいえないのですが、プログラミングとはコードをかくことだけではなく、9歳のベスやジミーたちがDynabookといっしょに、そしてジェイコブソン先生や学校のグループの仲間と、そして図書館のLIBLINKなどの環境の中で、やっていることの総体ではないかと、ぼくは考えています。
この文章がかかれてから、50年。このエッセイだけでなく、Alan Kayやその仲間たちがつくったソフトウェアやハードウェアが、その後、世界のパーソナル・コンピュータの開発に少なからぬ影響を与えたことは、ここにいる皆さんもよくご存知と思います。
でも、このベスと彼女のDynabookの関係は、たとえば今のぼくとぼくのPowerBook ProやiPad Pro、そして、iPhone13 miniとの関係とちょっとちがう。
でもこの「ちょっとちがう」がとても大事で、この差分を埋められるような形で、プログラミングを学んだり、使ったりして、少しでもベスとDynabookのかっこいい関係に近づきたい。
そうぼくは考えています。
*
で最後に、もうひとつ。
Dynabookで座標系を「発見」したベスではなく、太陽の重力の影響も組み込んだスペースシップ・ゲームで、またしてもベスにコテンパンにやられたジミー。
彼の心と将来が気になったのは、たぶんぼくだけではないでしょう。ベスとはちがう道をいったであろうジミーが、でも彼なりに活躍する続編エッセイをぜひよんでみたいですよね。
今のAlan Kayさんが、もし続編としてジミーが出てくるシーンを描くとしたら、いったいどんなDynabookやLIBLINK、そしてジェイコブ先生が登場するでしょうか。
そして、自分で座標系に気づいてしまうベスではなく、ジミーが彼らしさを発揮できるプログラミングの風景とは、どんなものになるでしょうか。

