プログラムを組んでいると、たくさんの言語に触れることになるかと思います。

昔ですと、ホスト側では、C言語、クライアントはVBなんて感じで、それほどたくさんの言語に触れることもなかったかと思います。最近と言ってもここ20年くらいですと、スクリプト系言語、関数型言語、オブジェクト指向言語やHTMLやCSSまでも言語に分類されてしまうくらいたくさんあります。

また、Javascriptのラップ言語としてのTypeScript,Coffeeとか様々な形での言語も存在していますので、どれを採用していいかなんかはかなり難しいでしょう。判断基準としては、どれだけ使われているか、というのが一つの判断基準でしょう。どうしても、プログラムの際には使い方とか、関数とか、オブジェクトとか、その言語特有の部分を調べないといけませんが、これらの情報が少ないものは自然と選択肢から外れていきます。

どれだけ、優れた言語でも、情報量が少ないと誰も使ってくれません。
さらに、言語によっては得意不得意があり、Javascirptで統計処理をするくらいなら、統計処理のライブラリが揃ったRやPythonを使うという選択肢を選ぶ必要があります。
最近では、クライアント側のデバイスが多岐にわたっているので、クライアント言語の移り変わりが非常に激しく、プログラマ泣かせになっていたりします。

自動プログラミングについて

プログラムを組む人なら、できるだけ自動化したいと思うのが人の常でしょう。自動プログラミングの観念はずいぶん前からあったのですが、VisualStudioでUMLを書けばプログラムまで自動でしてくれるというのが、そこそこの始まりかもしれません。

当時、といっても10数年前ですが、ちょっと触ってみたところ、定型的な処理だと簡単に書けるのですが、ちょっと外れたことをしようとするとまるで駄目。というのが自動プログラミングの印象でした。

ところが、最近では、エンタープライズ向けでも使えるくらい進化しているとのことです。こうなってくるとプログラマというのは近い将来、なくなっていく方向になるかと思います。ここでいうプログラマとは、初級から中級、いわゆるSI案件でSEから仕様書をもらい実装するのが仕事という人です。

で、結局

まあ、いずれにせよ、今後IT系のエンジニアについてもかなり働き方が変わってくるのは間違いありません。どんどん単純作業の部分がなくなっていく代わりに、上流、要は何を作るかなどということを考えて、テクノロジーを組み合わせて、サービスを作っていく。こういう仕事が今後必要になるでしょう。