[プログラム技術者の関心事①]
ノーコード技術を見つめるソフトウェア技術者たちの2つの懸念
プログラム技術分野に携わる人々が、ノーコード技術に初めて触れると、反射的に2つの懸念と心配をするようになる。 まず、コーディングが必要なくなったら、
① 自分の仕事と職業的地位はどうなるの?
そして
② 本当にコーディング作業なしで多様で複雑な実務用アプリを組めるということ?
自己の生業活動や社会的地位に直観した仕事で、第一のテーマにもっと敏感にならざるを得ないだろう。 そのため、ノーコード技術の現象をきちんと把握する前に、自分のコーディング作業の経験を基準に、予断したり拒否する態度を示す場合が少なくない。
しかし、この新しい技術、ノーコーディングを拒否するのか、あるいは受け入れて私も積極的に参加するのかどうかは、その実体をしっかりと知った上で決めても遅くない。 いや、もしかするとその実体を正しく知り、受け入れるとすれば、すでにこの分野で既得権を持っている技術者である自分にとって非常に有利な立場を先取りすることができるはずであり、もし防御したり拒否したりすれば、さらに論理的かつ体系的に対応することもできるだろう。 そこでまずは、その実体を正確に把握することが必要である。
以前のコーディング基準で見ると、ノーコーディングは制約の多い技術
コーディング作業に長年の経験がある技術者であるほど、ノーコード技術で今自分がC、Java、Pythonなどプログラム言語で実装するような複雑な機能や多様なUI/UXを実装することは不可能であるという先入観を持つことが多い。こうした疑問点を解消できず、ある程度ノーコードソリューションを検討してみても、いざ実際にプロジェクトを遂行する段階では、適用をあきらめるケースも少なくない。
このような先入観を持つようになったのは、既存のコーディング技術体系と経験を基準に判断するからである。 コーディングという技術が誕生してから、60年以上、人はややこしく複雑なコーディング作業を少しでも簡単かつ迅速に行う方法を模索することに集中してきた。 その結果、非常に多様かつ効率的な言語が出現し、統合された開発環境の提供やビジュアルなツールを採用するなど、発展してきたことは否めない。
しかし、今まで発展してきた方向は、コードという体系とコーディングという作業方式を前提に、既に実装しておいた産出物を再使用する方式に偏ってきたといえる。 そこで、Subroutine、Function、Class、Library、Framework、Moduleなどの形でプログラム言語や開発ツールを供給するベンダ社が基本的に使用するインフラを提供したり、自分に必要なオブジェクトを独自に制作しておき、必要なときにAPIの形で呼び出して再使用する方式で、時間とコストを節約してきたといえる。
このように再使用するために実現したオブジェクト(機能)は一様にCPU、Memory、保存装置、通信装置、運営体制などを作動させ、制御する方法と手続きを体系化して再使用する機能として作り出す方式を採択してきた。 もちろん、このようなアプローチは、繰り返される類似のコーディング作業を減らすのに、確かな効果があったのも事実である。
それにもかかわらずそのようなオブジェクトを活用して具現化する最終アプリは、そんなハードウェア装置内部の構造も異なり、処理することの概念や処理手続きが全く異なる、物事を表現し、人々の日常的行為を盛り込まなければならない。
それで、そのような世の中の事物や人間行為に近いように一つのオブジェクトに多様な機能を包括して作ると、実際に適用可能な対象が少なくなって実用的価値がなくなる。 結局再使用性を高めるために、ごく小さな単位の独立した要素機能をオブジェクトの形で作り出さなければならなかった。 その意味は、アプリで処理すること(作業)や、最終で作り出すアプリの機能構成よりは、ハードウェア動作メカニズムや機械的機能を制御する観点でオブジェクトを具現化してきたという意味である。 そのため、目的と用途が異なるプログラムを作るたびに新しいオブジェクトを作り出さなければならず、そのオブジェクト(API)の種類はすでに数え切れないほど多くなっており、それ自体が多くの努力を投資して学ばなければならない新しい対象となったのである。
今まで人類が発展させてきたコードという技術体系とコーディングとは、生産方式が生まれつき抱えている問題であるといえる。そのような構造的問題を解決せずに、ノーコード技術を実装するならば、当然適用できる対象や実装可能な機能に多くの制約があり、ユーザの立場からして非常に重要なUI/UX表現の自由度も大きく低下せざるを得なくなる。
適用する対象と実装可能な機能上に制約がなく、UI/UXの表現の自由度も高いノーコード技術を実現するためには、従来とは異なる新しい戦略やアプローチを選択しなければならない。 真の意味で、ノーコード技術を実現するためにはCPU、Memory、保存装置、通信装置などハードウェア装置の機能や動作手順などではなく、発想の転換を通じて作り出す最終アプリ製品の構成と機能の研究に集中する必要がある。
ノーコード技術ジャーナルは下記のような順序で記述されています。
最も良い方法は順番に読むことを推奨します。