専門知識なしに、誰でもプログラム開発できる時代へ
プログラミング言語の黎明期は、ハードウェアを直接操るマシン語に変換されるアセンブリ言語(英単語や記号、数字などの人間が読める形式にし、マシン語と一対一に対応させた言語)を書けることが重要でした。
その後、C言語のような高級言語(人間が理解しやすい命令や構文規則を備えたプログラミング言語の総称)が登場し、プログラムを構造的に書けるようになり、ハードウェアの知識がほとんどなくても、コンパイラ(ソースコードを機械が読み取れるように変換するしくみ)を使えば、プログラムを最適なマシン語に変換できるようになりました。
過去20年はPythonやJavaScriptなどの爆発的普及で、ハードウェア構成をまったく知らなくてもプログラミングができるようになっています。
このように、プログラミング言語の進化の中で、どんどん抽象度が上がり、低レベルのハードウェアは隠蔽され、人間から見れば表層的な知識だけでプログラムを書けるようになっています。その点で、プログラミング言語の進化の歴史は「抽象化の歴史」とも言うことができます。
そもそも近年では、プログラミング言語を知らなくても自分だけのプログラムが書ける「ノーコード」と呼ばれる開発環境が増えています。
たとえば自社のウェブサイトを作りたいと思ったら、かつてはHTMLやCSSを駆使してエディター上でコードを書く必要がありました。しかし、最近ではSTUDIOやWix、jimdo のように、ウェブ制作未経験者でも直感的に見栄えのいいサイトがすぐに構築できるサービスが存在します。
子ども向けのプログラミング環境として圧倒的なシェアを誇るScratchも、プログラミング言語を直接書き込むことなく、用意されている命令のパーツをビジュアル的に組み合わせていくことでさまざまなゲームを作ることができます。
いわゆる「プログラミング」という言葉からイメージする大量のコードをキーボードでカチャカチャ打ち込んでいくようなプログラミングの光景は、今後ますます減っていくでしょう。
同時に、物事の全体を眺めてバランスを取りながらデザインするような「俯瞰力」が、何かを生み出す手段としてのプログラミングの大部分の要素を占めるようになるはずです。
となると、なおさらいまはない新しいしくみを妄想する力であったり、「こんなものが作りたい!」「こんな課題を解決したい!」といった個人の熱意と問題発見力が重要になってくるということです。
礒津 政明
株式会社ソニー・グローバルエデュケーション 取締役会長