左から吉村氏、草野氏、清水氏

清水:Cは仕様が固まっており、教える内容が古くなりにくいという面がある。N予備校ではECMAScript 2015を使っているが、仕様が変わる可能性があるので、そうした変更に追随できるようオンラインでしか使えない。紙のテキストでは難しい。

授業でJavaScriptを使っているのはなぜか。

清水:「動かしやすい」というのが一番大きい理由だ。皆のパソコンに実行環境や開発環境が既に入っている。

吉村:Webブラウザーで動くというのは偉大だ。プログラミングができる状況にするには、まずは開発環境を整えなければならない。しかし開発環境作成にばかり時間をかけるのは本質的でない。本来はプロダクトを作るのが目的のはずだ。

最後に「プログラミングを学ぶ意義」をどのように考えているか教えてほしい。

草野:「世の中はプログラムで動いている」という前提が分かることに大きな意味がある。大人でもそうした前提がない人が多い。例えば、Suicaがプログラムで動いていることをどれほどの人が意識しているか。実際には、Suicaは非常に高度な分散システムのプログラムだ。

 ゲーマーは意外にプログラミング的な思考をしている。ゲームは究極的には0か1の世界だからだ。例えば、攻撃が当たるかどうかは0か1。パンチが1ドット触れても当たったと判定される。そうした境界があり、それを超えるか超えないかということを意識している。「何となく当たったような感じがしたから当たったでしょう」と人間が主張しても、プログラムはそのように動くものではない。

 本来は社会やシステムとはそういうものだ。自分が働き始めたのは17歳のとき。3月31日生まれなので、学年としては18歳くらいの感覚だったが、3月31日まではあくまで18歳未満。なので法律では22時以降の勤務は認められていなかった。社会はこうしたデジタルなルールの積み重ねだ。社会は全体としてはふわっとしているように見えても、1個1個のルールはすごくデジタル。感覚としては「子供が夜働いちゃだめ」という感じだが、そんなあいまいなルールではなく「18歳未満は22時以降の勤務ができない」というデジタルな条件があって、そのデジタルな条件に合致したかどうかで決まっている。法律の文章を見ると、ほとんどプログラミングと同じだ。