エンジニアとプログラム言語
コンピュータエンジニアにとって、これから業務に使うプログラム言語や環境というものは手段にすぎなく、コンピュータのプログラミングについて考え方はどれも同じです。
小さい単位のアルゴリズム(並び替えや、データの検索など)を組み合わせ、ロジックという実際に実現したいプログラム内容を構築するのが開発で、その考え方はどの開発環境、言語でも同じです。
Accessで例えるなら、一つ一つのクエリをアルゴリズム、最終的なデータベースをロジックと考えればわかりやすいかもしれません。
ですからプログラミング言語はロジックを達成するために使う方言のようなものです。
ただこれについて、流行り廃りではありませんが、時代に合わせた潮流というものがあります。
objective-CというほぼMac用の言語が、iPhoneの普及で大きなシェアを得たり、それと入れ替わるように従来型の携帯電話のプログラマーの数が減ったりということです。
業界内の開発者のシェアが増えれば、その分たくさんのノウハウが蓄積されていきます。
PHPやVBA、JavascriptのようなWebサイトでも多くのノウハウを見つけることのできる言語以外に、ごく限られた業界の中でだけ蓄積されているノウハウというのは沢山あります。
先ほどの例でも挙げた従来型携帯の開発、Symbian上の開発などの情報は守秘義務などもあり、ほとんど表に出回ることはありません。
エンジニアのシェアが低くなると、こういった業界内部でのノウハウを持ったエンジニアも散り散りになってしまいます。
COBOLなどは歴史のある言語ですが、今でも金融などを中心に基幹系のシステムには必要不可欠な存在です。
やがてスマートフォンより魅力ある一般向けの機器がリリースされる未来にも、COBOLは一定の需要が引き続き残っているのではないでしょうか。
パソコン向けの業務アプリケーションはこの潮流の影響を大きく受けます。
歴史の長いC++や、.Net製品のVisualBasicやC#は開発工数が比較的小さく、その他javaにもクライアント側とサーバー側があり、別なものと言っても過言ではありません。
またブラウザ経由で利用するWEBアプリをデスクトップで利用することも多くあり、主流はPHPやASP.netなど、要望や予算に応じて様々なものが選ばれます。
やはりノウハウや他の開発者間のコミュニティーが充実している方が、開発者としても習得が早く、効率を上げやすいので、そちらを選ぶエンジニアも多くなります。
依頼も少なくなる見込みの技術からは、やはりエンジニアは離れていき、ノウハウなども分散して減っていきます。
それがやがて一般のユーザのニーズにも変化を及ぼすことがありますので、マイクロソフトは.Net、AppleはObjective-Cをより使い回しのできるプログラム言語として強化しています。
エンジニアは最新の潮流と技術のシェアを常に視界に入れていますが、システムを発注する側にしてもある程度の知識を持っていた方がいいでしょう。
一般のユーザーにとっても時々かいま見えるそれが、今後利用するサービスや機器のトレンドになっていくかもしれません。