生成AIによるコーディングはDynabook完成の最後のピースではないだろうか?
パーソナル・コンピューターの父と言われるアラン・ケイが描く理想のパソコン「Dynabook」というのがある。
「Dynabook」のコンセプト画は以下の通り。

「Dynabook」の背景にあった、知られざる物語:アラン・ケイ氏が考えるコンピュータリテラシー - @IT
によると
ジミーとベスがやっているゲームは「SpaceWar」。宇宙船を撃ち落とし合う「宇宙戦争ゲーム」だ。ゲームをしているうちに、ジミーは宇宙船の動きがおかしいことに気付く。そして、ジミーとベスはこんな会話をした。「星の近くを飛んでいるから、宇宙船は重力の影響を受けるはずじゃない?」「この前、理科で習ったよね」「この動きは変だよ」「じゃあ、重力の影響で動きが変わるように、プログラムに組み込んでみよう!」。
とある。
これが、アラン氏が考える「コンピューターリテラシー」であり、こどもたちのコンピュータリテラシー向上を支援するために、Squak Etoys がまず作られ、そして Scratch へとつながっていく。
この話を
と僕が勝手に呼んでいる Apple 本社でおこなわれた「iのある教育と学習」というセミナーで初めて聞き、いたく心を動かされ、今にいたるまでこどもたちへのプログラミング教育という一大テーマへの興味が続いている。(詳細は Connecting the Dots - OtOMO編 - 僕は発展途上技術者 参照)
さて、それから約15年の月日が流れ、多くのこどもたちが Scratch やそのほかのプログラミング言語に触れる姿を見てきたが、前述したベスのセリフの
「星の近くを飛んでいるから、宇宙船は重力の影響を受けるはずじゃない?」「この前、理科で習ったよね」「この動きは変だよ」
うん、ここまでは良い。
しかしながら、
「じゃあ、重力の影響で動きが変わるように、プログラムに組み込んでみよう!」
は、実は大きなジャンプがある。
これができるには、Scratch であれば、「速度」という変数にループの中で「加速度」を足すというように、変数やループ、演算の使い方にだいぶ習熟している必要がある。
↑Scratchでネコにジャンプさせるコード
Scratch をやりこみ、十あるいは数十作品くらいはすでに作っていて、New Scratcher から Scratcher に昇格しているくらいのレベルでないとまずできないように思う。
CoderDojo にほぼ毎回参加する常連レベルのこどもたちくらいならできそうだが、そういうこどもは40人クラスにひとりいるかいないかではないだろうか。
ところが、今年になって Devin や Cline、Claude Code といった生成AIによるコーディングが急速にエンジニアの間で注目を集めだし、自然言語での指示によるコーディングが実用レベルになった。
「じゃあ、重力の影響で動きが変わるように、プログラムに組み込んでみよう!」
のあとに、ジミーあるいはベスはプロンプトにこう打ち込む。あるいは音声入力からプロンプト入力できるようにしているのでマイクに向かってしゃべるのかもしれない。
ベス: 「宇宙船が星の近くを通るとき、重力で引っ張られるようにしたいの。星の質量を変えたら、動きも変わるようにして。」
AI: 「了解しました。星の重力をシミュレーションするため、万有引力の式 F = G × (M × m) / r² を使います。星の質量 M をパラメータとして設定しますか?」
ベス: 「うん、最初は太陽くらいの質量で。」
AI: 「設定しました。宇宙船が星に近づくと、加速度が星の方向に変化します。重力が強すぎる場合はクラッシュするかもしれません。テストプレイしますか?」
ジミー: 「やってみよう。」
(Dynabook上でシミュレーションが動き、星の近くを通ると宇宙船がカーブする)
ベス: 「いい感じ。でも星に吸い込まれすぎかも。もう少し弱めて。」
AI: 「重力定数を半分に調整しました。星の重力が弱まり、宇宙船はより安定した軌道を取ります。」
ジミー: 「今度は衛星みたいに星のまわりを回ってる!」
AI: 「現在の設定を保存しますか?」
ベス: 「保存して。次は星の色を変えたい。青く光る星にして。」
AI: 「星を青く発光するようにレンダリングしました。温度を高めに設定して青白い輝きになります。」
生成AIによるコーディングはDynabook完成の最後のピースではないだろうか?
2025/11/12 00:16:00

