ネタつつき170 - 価値がないとされている古い情報技術について思う事
IT業界は技術がすぐに使えなくなるという人が居ます。確かに古いプログラミング言語などは、実行環境も整備されておらず、動かすことすらできません。また、その仕様がわからないレガシーなシステムの革新などに悩まされた経験もあり、そう言いたい気持ちもわかります。しかし私は、完全に同意することはできません。何故ならば、そういった表面的な事は、真の技術ではないからです。真の技術とは、思想も含めたものであり、動作環境がなくなっても、その思想から学ぶべきことが多いからです。
古い技術から学ぶべきものがないと考えている人は、今一度考えてみてください。実行環境すらないような古い技術でも、分かったつもりになっているだけではないでしょうか?もし本当に理解しているのならば、貴方は実装できますか?実装できないのであれば、その古い技術を発明した人の過去の技術力に、到達していないと考えていいと思います。つまり、わかっているつもりになっている古い技術すら、真の理解にほど遠いのです。分かっているつもりで、古い技術を馬鹿にするのは間違っています。ですから私は、新しい技術はもちろんのこと、古い技術もいまだに学んでいます。
例えば、COM (Component Object Model)を覚えているでしょうか?COMの思想の特徴は、インタフェースプログラミングにあります。インタフェースを正しく設計し、適切に実装すれば、実装するプログラミング言語に関係なく、再利用可能なプログラムが得られます。この考えは、情報技術の本質を表わす、いまだに凄い概念です。今はもうCOMプログラミングをしませんが、システム設計能力の一部として生き続けています。
COMはいまだに現役だという人もいるかもしれませんから、もっと古い例を挙げます。機械語は学習していますか?今はもうアセンブラで開発する人はごく少数でしょうが、それでも未だにハードウェアは、機械語が存在しなければ動作しません。学ぶ意義があります。
それでも、役に立つから例としてふさわしくないという人が居るかもしれませんから、念押しにもっと動かないものを挙げます。BASIC、COBOL、FORTRANを無駄だと思いますか?私は思いません。何故ならば、それらの文法や技法はいまだに、私の実装能力の一部として生き続けているからです。オブジェクト指向プログラミングが当たり前になった今、純粋な命令型言語は何の役に立つと思われるでしょう。しかし、オブジェクト指向プログラミングは命令+データ+αなので、命令型言語の概念もその一部であり、知らなくてもいいというものではありません。構成要素を知らなくてもいいという事はないでしょう。それに、最終的に機械は命令型の概念で動いています。なので私は、直接使用しない構造化設計技法(私が社会人になった時すでに使えないとされていた)も学び、たまに復習しています。
秒進日歩のIT業界に身を置けば、古い技術に意味がないと考えがちです。しかし、本当の技術とは、思想を含むものであり、知らなくていいものなんて一つもありません。過去の記憶を、一切覚えていなくてもいいという人はいません。技術の習得もそれと同じです。技術者を名乗るならば、新旧、形式、仕事が来る、という風な表面的な物事で判断せず、深く考え抜き、奥底に潜む知識の宝物を見るべきではないでしょうか?そう考えない人が居る事は承知していますし、その人が自分の持論を持つことを尊重しますが、私自身はそう考えています。