
私が初めてコンピューターを使ったのは、1980年代初頭の熱狂的な時代でした。プログラミングは、まさに真っ先にやるべきことでした。ドライブにディスクすら入っていないコンピューターの電源を入れると、BASIC風のプログラムを打ち込むことができました。プログラミング環境の起動方法を学ぶ必要もありませんでした。コンピューター全体がプログラミング環境であり、ゲームをしたり、ワープロを起動したり、その他何でも好きなように使うことができました。
それでプログラムを書き始めました。BASICの参考書を買って、コモドールPETでコモドールBASICのコマンドを一つ一つ使いこなす方法を学び、その後、Apple IIに搭載された、よりリッチで拡張性の高いAppleSoft BASICへと移行しました。
もちろん、誰もが最初に作るプログラムは「Hello, World」か、それに似たものです。その後、質問をして答えを返すプログラムが登場しました。私はBASICでブラックジャックのシミュレーターを書き、Compute誌に送りました。すると、なんと20ドルという高額で買い取られたのです。
高校生の頃、自宅の電話回線で運営していたコンピュータ掲示板のソースコードを分析することで、BASICについてより深く学びました。BBSはすべてBASICで書かれていたので、LISTと入力するだけで、プログラムの中心となるコマンドをすべて確認できました。2年ほどかけて、BBSをカスタマイズするために、コードの一部を何度も書き直しました。他の人のコードをデバッグしたり置き換えたりすることでも、多くのことを学びました。
しかし、Macを買ったことで、プログラミングの実験は終わりました。Mac用のプログラムが書かれていることは知っていました。自分でも使っていたので、それは当然のことでした。しかし、それがどうやって実現されているのか、全く理解できませんでした。大学時代には、大学のメインフレームにモデムで接続して、少しUnixスクリプトを学びました。MacUserで働き始めてから、AppleScriptを発見し、自分が使っている様々なアプリをつなぐ役割を果たすスクリプトをハッキングし始めました。まるであの掲示板ソフトのコードを編集するようなもので、他人のプログラムをいじくり回して、自分の思い通りに動かそうとしていたのです。
プログラミングが、現代の子供たちが使っているコンピューティングデバイスの副次的な用途にすらなっていないことに気づくと、息を呑むほどです。だからこそ、Appleが今秋iOS 10のリリースに合わせて無料でリリースする新しいiPadアプリ、Swift Playgroundsの存在に、私はとても勇気づけられています。
Swift Playgroundsのベータ版で「Learn to Code」のレッスンを数時間かけて進めてきました。もし私がここで書いていることが懐かしさに染まっているとしたら、それはまさにそのせいです。Swift Playgroundsは、Apple IIeに番号付きの行を次々と入力していた頃を思い出させてくれます。今度は息子のお気に入りのコンピューターで、本物のコーディングを体験しているのです。
しかし、あまり厳密に比較したくはありません。コモドールPETとApple IIでは、真っ白な画面とカーソルが私を出迎えました。運が良ければ、退屈なリファレンスマニュアルを見つけられるかもしれません。しかし、Swift Playgroundsは違います。サンプルコードとアニメーション満載のプレビューウィンドウを備えた、生きた教科書です。実際の進捗状況を明確に把握できます。これは驚くべきものです。
Appleの幹部がイベントのステージで頻繁に繰り広げる、世界を変えるような発言の多くは、私はあまり信じないタイプだ。WWDCでAppleがSwift Playgroundsを発表した時も、その発表の表現の裏に隠されたPR戦略を察して、皮肉な眉をひそめた。(PR戦略というものは、常に存在するものだ。)
でも、何かが宣伝されていてPRエンジンを通してフィルタリングされているからといって、それが本当に素晴らしいものではないというわけではありません。Swift Playgroundsは私にとってまさにそう感じます。すべてのiPadに、プログラミングレッスンを提供し、「Hello World」プログラムやブラックジャックシミュレーターなど、子供たち(そして大人も)がiPadを使って思いつく限りのものを自由に入力できるスペースを提供するアプリが付属するでしょう。
息子はこの秋、中学1年生になり、学校では課題用にiPadを支給されます。教育技術の導入状況を考えると、Swift Playgroundsが使えるのは中学2年生(8年生)までになりそうですが、近いうちにiPadでゲームを遊ぶだけでなく、ゲームを書くことを学ぶようになることを期待しています。オープンなコマンドラインとたくさんのインスピレーションを提供することほど、テクノロジーに関する視野を広げる良い方法はほとんどありません。