ツールや言語の優劣
世の中には多くの開発ツールや開発言語が存在しています。ものによっては宗教的に論争を巻き起こすこともあり、それぞれのツールや言語には一長一短があるかと思います。本来であれば、どのツールを使うこともどの言語を使うことも、一概に良し悪しを決めることは出来ないのですが、ある程度の経験を積むに従い優劣をつけたがる人が開発者には多いです。少し前に盛り上がった VBA もそうですし、プログラムを書かない NoCode や LowCode なプラットフォームに対しても同様で、なぜか優劣をつけたがる人をよく見かけます。
個人的な考えとしては、目的をちょうどよく達成できるのが最適である、と思っています。ここで言う最適には、時間的なものもありますし費用的なものも含まれます。例えばプログラムをスクラッチで書きシステムを構築したとしても、ランニングコストや維持するコストがかなり発生するのであればそれはオーバースペックなものを作ってしまっているので、最適とは呼べません。また LowCode なものを利用して構築しても、業務が効率化できていないのであればそれも最適には遠いことになります。
プログラムを書ける人に多いのは、プログラムを書かないで物作りができることを低く見てしまうことではないかと私は感じています。そのように感じてしまうこと自体は、正しいことではありませんが間違っていることとも言い切れません。同じものを作るのであれば、プログラムを書いて作った方が良いものを作りやすいのは間違いなく事実です。ですが先に書いたように、他にも多くの要素が良し悪しを決める際には関係してきます。もうプログラムを書いたか書かなかったかだけで判断ができる場面は少なく、多くのモジュールやコンポーネント、サービスを全てひっくるめてシステムを形作って、そこで初めて評価対象としてみてもらえるのだと思います。そう考えるとプログラムを書いて何かを作っただけでは、それほど大きな意味を持ちません。
このように考えているので、私の中ではどのツールもどの言語も大きな優劣はなく、目的によって使い分けてもよいと思います。仕事の上ではツールも言語も統一することが多いですが、それは目的のためではなく開発側の理由によるだけです。逆に言えば、様々なツールや言語を関わる全員が使えるのであれば、特に一つに統一する理由はありません。利用者側にとって、システムがどのように作られたかというのはさして重要ではないのです。
将来的なことを考えてルールを統一して作るのが正しい、と言われる方もいるとは思います。ですがここも考え方ひとつで変わってしまう点だと私は思います。ルールを統一して作ることは、何かしらの修正を行う場面で、今はいないかもしれない誰かが作業することを想定しています。誰かが作成したアプリケーションを別の誰かが修正する、このようなシーンを想定すると確かに統一されたルールは有効的です。
しかしここ最近の流れを見ていると、この点においても考え方が変わりました。状況によっては、修正するよりも一から作り直しすほうが早く安全なことも起こりえるようになってきたのです。もちろんそれを実現するためには、仕様が明確になっている必要があるなど色々な前提条件がありますが、ここ最近の流れでその条件もかなり緩和されてきています。プログラムを修正する方法が、最も不確実で危険性が高いとなるのもあり得ない未来ではないのです。
このように考えていくと、どのツールを利用することも、どの言語を利用することも、はてはどの方法を利用することすべてにおいて優劣をつけるものではなく、適材適所で扱っていくことが望ましいと思うことができるのではないでしょうか。
私もそれなりな年月を開発者として過ごしていたのですが、これまでの経験にのっとった考え方が及ぼす悪影響というのが、これからはもっと大きくなってくるのかもしれない、そのように感じることがあります。何のために物作りをするのか、目的は何かというのを忘れずに常に多くの考え方ができるようになっていたいと思います。
まぁ、個人的な好みで優劣をつけたいと思う気持ちはありますが、それはそれとして。自分の中では VB 的記述を好み、Java や C# 的な記載が好きじゃない時点で、世の中の多くを敵に回しますので......。