2026/06/05 07:43

最近、ローコードプログラミングの案件をいただきました。
ローコードというのは、従来のようにすべて自分でコードを書くのではなく、あらかじめ用意されたロジックをブロックのように並べて処理を組み立てていくものです。
代表的なものだと、子ども向けの教育ツール「スクラッチ」などが挙げられます。一見とっつきやすく、プログラム未経験の人でも扱えるように設計されているのですが、実際に使ってみるとこれが意外に厄介なのです。
今回使っているのは「データスパイダー」というツールで、設備データをデータベースに登録するための仕組みです。ファイルの読み込み、データ整形、条件分岐、ループ処理などをブロックとして組み合わせて使うのですが、普段フルコーディングに慣れている自分にとっては、どうにもこの「型にはめる感覚」が馴染みません。「どこまでできるのか?」「どこから先は自分で書けないのか?」が掴みにくく、全体の流れを頭の中で描くのがとても難しいのです。
フルコードであれば、処理の流れを自分で定義でき、どの変数がどこで使われているかも一目でわかります。しかしローコードの場合、処理が画面のあちこちに分散しており、少しでも複雑な構造になると“何がどこで動いているか”が把握できなくなります。まるで配線図を見ずに電気回路を追いかけるような感覚で、頭の中に全体像を描こうとしても霧がかかっているように感じます。その結果、ちょっとした修正にも全体の見直しが必要になり、柔軟性が極端に落ちてしまうのです。
これまでの私の仕事では、設備データの管理は
PLC(設備データを収集するパソコン)→NAS→データスパイダー→データベース
という流れが定番でした。そして多くの現場には「データスパイダー専任者」がいて、私は彼にデータ抽出をお願いし、分析のみに集中していました。ところが今回はその専任者が不在で、PLC以降のデータ処理を自分でやる必要があり、久しぶりにローコードの領域に手を出すことになりました。
結果として、フルコードであれば5分で済む処理に2日かかるという現実。思考の柔軟性を奪われたような気分になりました。ただ、これは「自分が慣れていないから」という話だけではなく、ローコード特有の構造の分かりにくさに根本的な問題があるように感じます。
ローコードの良いところは、確かに「誰でも扱える」点にあります。文系や未経験者でも一定の処理が組め、人による品質のばらつきが出にくい。企業としては教育コストを下げられるため、導入のハードルは低いです。しかし裏を返せば、それは個人の思考力がツールの設計思想に縛られるということでもあります。「できること」と「できないこと」の境界がツールによって固定されてしまうため、創造性の発揮にも限界が生まれます。
さらに致命的なのは、全体の構造を把握しづらいこと。画面上ではノードやブロックで処理が分断され、見た目では何をしているのか分かっても、「全体としてどう動いているのか」は見えにくい。いざ他人が作ったものを引き継ぐと、どこから手をつけていいのか分からない。
この“全体像の見えなさ”が、最も生産性を下げているように思います。フルコードのように構造がテキストで表現されていれば、検索も追跡も修正も容易です。でもローコードは、視覚的にわかりやすいようでいて、実は「思考の見通し」が悪いのです。
頭を使うという点では、ローコードもフルコードも同じです。ただ決定的に違うのは、思考をどのように形にするかという部分です。ローコードは「ブロックを組み合わせて思考を操作する」作業であり、フルプログラミングは「思考そのものを文字にする」作業です。頭の中で描いた論理を、自分の言葉で一行ずつコードにしていく。この“文字で書く”という過程こそが、思考の粒度を最も精密に研ぎ澄ませる訓練になります。
曖昧な理解のままでは書けない。
動かないコードは、自分の思考の矛盾をそのまま突きつけてきます。変数名ひとつ取っても、構造の設計思想が現れる。一行一行に、書いた人間の性格と理解度がにじむ。だからこそ、フルプログラミングは単なる技術ではなく、思考の鏡なのだと思います。
文字を書くというのは、自分の考えを“外に出す”ことです。構文を整え、順序を考え、論理を組み上げていく過程の中で、頭の中がどんどん整理されていきます。フルプログラミングの魅力は、まさにそこにあります。「書くこと」で思考を整え、「書いたもの」がそのまま動く。それは、考えることと創ることが一体化した状態です。結局、プログラミングの本質は「考えること」ではなく、考えたことを言葉にして、世界を動かすことにあります。ツールの便利さを追うよりも、自分の手で世界を組み立てる感覚を失わないこと。それが技術者としての根っこの部分だと、改めて感じています。どれだけ便利な時代になっても、どれだけAIやローコードが発達しても、私は“文字を書くプログラミング”にこだわりたい。
