プログラムを書いてコンピューターに仕事をさせたいが、できるだけ人間は楽をしたい。
そこでプログラム言語を書いた結果をひとまとめにして「ライブラリ」として公開し、それを呼び出して使うという発想が育ち、プログラマーは大量のコードを省略し、ライブラリーを理解することで効率的にコードを書くことができるようになった。
そして、その次に今度は「API」が出てきて、別のシステムに値を放り込み結果を受け取るということが大いに流行した。インターネットさまさま、と言ったところである。
コンピューターによってやらなければいけないことがどんどん複雑化してきている中で、プログラム言語もより人間に便利に進化していった。一言にプログラム言語を語ったって、バージョンアップによりどんどんできることが増えていって、10年前と今では中身が全然違うものになっていると考えていい。
この世界線の向こう側に「ノーコード」がある。絶対にプログラミング言語はおぼえないぞ、おぼえられないぞ、という前提がなぜかあるたくさんの人々でも、制御を、思ったようにコンピューターにさせたいとのニーズだ。
ノーコードのニーズは、正直、西暦2000年あたりでも登場していた。ただ、コンピューターの性能が低すぎた。GUIを人に優しく作るにはまだまだ能力不足だった。もっさりしているし、できることも限られた。そもそも何がコンピューターにやらせられるか、というビジョンもそのころは幼かった。ビジネスそのものをデジタル化する考え方がここ最近になって出てきたくらいだからだ。当時はまだオモチャだった。
じゃあ、今、ノーコードが出て来たから、プログラマーの仕事が無くなるかというと、絶対ないと断言したい。
なぜなら、プログラムはプログラムだけでは動かないからだ。「データ」があって初めてプログラムが活性化する。
このデータを設計するのもプログラマーの仕事だし、どうデータを処理するか、の根本的なところはノーコードでは役不足だ。
データをプログラムによって加工して、そしてユーザーに見せるまでが要件とすると、ノーコードができることというのは、最後の切り取りにしか過ぎない。
西暦2000年のころを思い出してみる。ノーコードというかローコードみたいなツールを本格的に運用していた企業で働いたことがある。
無数に、プログラムがあった。そしてそのプログラムによって、どんどん入力されたデータが、プログラムごとに存在するという状態となった。
一つ一つのプログラムによって集められたデータが、残念ながら有機的に集められず、データが「島」のようになった。ノーコードのプログラムとデータは、どんどん膨らんでいったが、それらが全体として、デジタルごみのようになり、生産性が上がるというよりは、「縦断して検索して見つけ出してね」みたいな世界になってしまった。
単に、社内でノーコードクリエーターをたくさん生み出し、それぞれがどんどんプログラムを作成して言ったら、孤立したデータがぽこぽこ作られるだけで、それは「システム」には残念ながらならない。
実は、SIerは、この辺りをよくわかっていて、要件定義時に何がデータになるかを定義し、それをどう処理(プログラム)するかを設計する。
このデータとプログラムは、仕事をアナログでやっていると、自然と人間が情報処理するものであるが、コンピュータは、データをどう扱うかをきちんと指示しないと、さっぱり融合しようとは思わない。
そこで、「AI」が現れ、散在するデータを無差別に把握させ、あたかも人間が考えたように出力するような機構が最近考えられつつあるが、しかし、実用化にはもっと長い年月がかかると思うし、それが本当に達成されるかもわからない。
そんな壮大なテーマが、今日明日、解決できるわけがない。
また、人間界には新しい要件が生まれ、それがデータとプログラムを生み、そしてプログラマーはまた実装しなければいけないわけである。
データをあまり生じない、簡単なプログラムならノーコードでも十分で、そういう仕事を丁寧にプログラミングする仕事は確かに減るかもしれない。しかし、お金が動くプログラムというのは、そういうものではない。
したがって、ノーコードがプログラマーを不要にするというのは、これはSFのような認識をまだ出ていないと私は思う。