数十年前から、ツールベンダーや業界の評論家たちは、プログラミングが不要になるツールの兆しが見えてきたとよく言ってました。
最初にそうした期待を背負うことになったのは、皮肉なことにFORTRANでした。
FORTRANはFORmula TRANslationの略語であり、科学者やエンジニアが数式を入力するだけで良いようにしようというのが構想でした。
FORTRANは科学者やエンジニアがプログラムをかけるようにするという点では確かに成功しましたが、現代の我々から見るとかなり低水準な言語ではあります。
FORTRANがプログラマを不要にするはずもなく、業界に貢献したことと言えば、ソフトウェア産業を前進させた事でしょう。
ソフトウェア業界は、ソース文のレイアウトの詳細、編集、コンパイル、リンク、および実行に必要な一連の作業、カッコの不一致を検出するための作業、標準のメッセージボックスを作成するのに必要な手順など、プログラミングの面倒な作業の一部を軽減あるいは排除するツールを発表していました。
新しいツールによって、生産性は少しずつ改善されてきており、評論家はこれが無限に続くものだと推測して、最終的には「プログラミングの必要がなくなる」ところに到達すると見ていたのです。
しかし現実には、プログラミングの革新には必ず欠点が伴います。
これらの欠点が徐々に克服され、ようやく技術確認の進化が発揮されるようになりました。
基本的なツールの概念が実用化されたら、新しいツールを作成する過程で偶然生み出された問題を取り除くことにより、将来的な見込みは高くなります。
こうした偶発的な問題を取り除いても、生産性自体は向上しませんでした。
単に「2歩進んで1歩下がる」方式から「1歩下がる」部分が少なくなるだけだったのです。
過去数十年にわたって、プログラマがプログラミングをなくすとされたツールを嫌というほど見てきました。
最初が第三世代言語、次は第四世代言語、そして自動化プログラミング、CASE、ビジュアルプログラミング。
これらの技術革新はどれもプログラミングを漸進的に改良することには貢献しました。
技術革新以前にプログラミングを習得した人々に、認めざるを得ない程でした。
ですが、どれ一つ取ってもプログラミングを排除するには至りませんでした。
プログラミングを排除させない原動力となったのは、例え十分なツールのサポートがあったとしても、プログラミングが本質的に難しいことです。
どのようなツールが利用できたとしても、プログラマは現実世界のゴタゴタと格闘しなければなりません。
手順、依存、例外、政治についても徹底的に考えなければならないわけです。
そして、優柔不断なエンドユーザーの相手もしなければなりません。
プログラマはいつも他のソフトウェアやハードウェアへの曖昧なインターフェースに悩まされ、規制や業務ルールといったコンピュータプログラミングの外の世界で発生する複雑さの責任を負わされます。
解決すべき現実世界の問題と、その問題を解決すると期待されているコンピュータとのギャップを埋めることが常に必要です。
こうした人々が、アセンブラのマシンレジスタを操作するのか、それともVisual Basicでダイアログボックスを操作するのかに関わらず、プログラマと呼ばれます。
この世にコンピュータがある限り、コンピュータに命令を伝える人が必要であり、そうした活動は後世でもプログラミングと呼ばれるでしょう。
ツールベンダーが「この新しいツールさえあれば、コンピュータプログラミンの必要はない」と宣伝しているのを聞いたら、急いで入手して試すもよし、そんなものが存在しないと歴史的に知っていれば、ベンダーの認識の甘さに嘲笑するもよしだと思います。