はじめに
コードを書かずにWebサイト/アプリ/ツール等の制作ができるノーコードツールが最近流行っていますよね。
私自信、半年ほど前からn8nやActivepiecesといったOSSのノーコードツールやPower Automateなど、幾つかのノーコードツールを触っていたですが、ツールとして未成熟であったり自由度が低かったりと、「結局流行らないのでは?」と感じています。(GPTのそれと一緒で期待値が高いだけなんですかね)
ノーコードツールの幻想
D&D操作だけで直感的に操作できるノーコードツールは、一見、プログラミング初心者にとって救世主のように映ります。しかし、それは十分な選択肢なのでしょうか?
本当に手軽ですか?
多くのノーコードツールでは、よくあるような定型作業のテンプレートとD&D操作で実装できるUIを提供することで、直感的に操作できるよう設計されています。
一見、自由度の高い開発環境のように思えますが、実際には用意されたテンプレートや機能の枠組みを超えることは難しいのが現状です。
ブロックをコピペしようとすると入れ子構造が滅茶苦茶になったり内部パラメータがおかしくなったり、平気でそんな挙動を示します。とても癪です。やめてほしい。
拡張性足りてる?
前述のようにノーコードツールは、テンプレートや部品を組み合わせることで任意の成果物を作ることになります。
しかし、これらの部品はカスタマイズ性に乏しく、細かい調整やデザイン変更が難しい、あるいはできないことが常です。
結局のところ、ツールに既に存在しない機能を実装しようとすると、自前でコードを書く必要が出てきて、「ノーコードのはずが結局コードを書く羽目に...」みたいな展開よくありますよね。
これなら、最初からコード書いてたほうがよくないですか?
それ、コードを書いたほうが早くない?
ノーコードツールは基本的にGUIでの操作ですが、複雑な処理をGUIでの操作で実現しようとする場合、膨大な作業量が必要で、とても非効率的です。
また、内部的な処理を把握することが厳しく、エラーが発生してもデバッグ作業がとてもつらいです。ストレスで禿げそうになります
さいごに
ノーコードツールは、プログラミング知識ゼロでもシステムを作れる便利なツールですが、結局のところ設計についての勉強や経験なしで質の高いシステムを作ることは不可能だと思います。
確かに、コードを書くことはブロックを並べるだけの作業と比較すると難しく、専門的な知識が必要です。
しかし、システム開発にはコード以外にも多くの要素があり、表面的な使いやすさだけで良いシステムを作れるわけではありません。
ノーコードツールで「奇跡的に良いシステム」ができたとしても、担当者が辞めたり、作り変えが発生したりした場合、対応できずに結局スクラッチでの開発が必要になるケースが非常に多く見られます。
手軽さだけを神聖化するべきではないと思います。
結局のところ、そのツールでしか使えないスコープの限られた知識を学ぶより、何かしらのプログラミング言語を習得したほうが明らかに学習に対するコスパは高いかと思います。
それでは。