もっとプログラムを身近な遊び道具にしたい

1980年代後半にコンピュータが一般に向けて販売され始めました。しかし、その頃のコンピュータは、今のものとは随分様子の違うものでした。電源を入れると、画面上には四角いカーソルが点滅して、「Ready?」の文字と共に人間からの入力を待ち続けるだけのシンプルで味気ないユーザーインターフェースでした。

この頃のコンピュータにはBASICというプログラム言語が搭載され、この使い方を覚えない限りゲームも住所録も何も動かせない環境でした。プログラミングだけが唯一、コンピュータを使う方法だったのです。結局は、使いこなせない人の方が多かったのではないかと思います。ただ、ゲーム専用機が無い時代には、これだけがTVゲームができる可能性を秘めた機械であり、理解できなくても使いたいと言う気持ちだけでゲームを動かせるところまで自力で学習した子供達もいました。その人達が、現在シニアプログラマとして最先端のコードを書いていたり若者達を育成する立場になっているようです。もちろん自分もそのうちの一人です。

30年経ち、コンピュータは高度に進化しました。80年代のコンピュータとは比べ物にならない性能が当時よりも安い価格で手に入るようになっています。起動するとBASICの代わりにグラフィカルなインターフェースを持つ高性能なOSが立ち上がり、ハードウェアやコンピュータの知識が無くても、アイコンをクリックするだけで自分がやりたいことを実現できるようになりました。中にコンピュータが入っているかどうかも、あまり気にする必要が無い状態になってきたように思えます。エンジンの機械的な仕組みを知らなくても車の運転に困ることが無い状態に近づいてきたのかもしれません。

しかし一方、コンピュータと言う機械を直接制御する楽しみは失われつつあります。アナログの時計がどのような部品でできているか分解して調べてみるような楽しみが、今のコンピュータでは簡単には実現できなくなっています。物の仕組みを知るための分解と再構築を行うことで構造を理解したり性能を向上させるという流れが薄れてきたのではないかと感じます。

これは、コンピュータを使うのが専門家やマニアから一般ユーザーへと大きく広がる中では当然のことだったかも知れません。しかし、開発者にとっても事情は似ています。例えば、現在の方が高性能なプログラム開発環境を手軽に、かつ無料で手に入れることができます。開発環境も強化され、言語も抽象化が進みました。プログラム知識もハードウェアを意識することもなくプログラムを書くことができる環境となっています。このため、かつてのような「コンピュータを制御するためのプログラミング」ではなく「用意されたプログラムを制御するためのプログラミング」になっていると感じます。これはソフトウェアを仕事として開発する人には非常に良いことですが、これからプログラムを覚えようとしている人には、コンピュータを制御すると言う本質に触れる機会が失われているため好ましい環境とは思えません。他の人が用意した環境内でプログラムを作ることが当たり前になりすぎて、ネットで検索しても答えが出ない障害にぶつかった時に自力では解決できないプログラマが増えそうな気がしています。

自分達が不便な環境ながらもコンピュータに直接指示を出していたころの楽しみを、現代の若者達にも味わってもらいたいと言う思いが日々強くなっています。いまさらBASICを覚える必要はありませんが、プログラム知識の無い人でも、手軽にコンピュータへ指示を出している感覚が得られる環境やツールを用意し、最新の技術を生かしつつも、もっと身近で遊びながら楽しく覚えられる環境を生み出すために日々実験的なソフトウェアの開発に頭をひねっています。