2012/07/28

メインストリーム

メインストリームということを意識することは、プログラミングやIT関連技術に関することを職業としている人間にとってはとても大切です。しかし、それと同時にメインストリームは非常に移ろい易いということも私たちはよく知っています。
メインストリームから外れた技術が無益であるということは決してありませんが、メインストリームから外れると外部資源を利用出来る可能性は極端に低下します。これはテクニカルな好奇心に基づく趣味の場合や、外部資源をさほど必要としないような状況では問題になりませんが、一般的にビジネスで効率良くシステムを構築するには、既存の、或いは外部に存在するソースコードを含めた資産を有効活用出来るのかどうかが鍵になります。
勿論、メインストリームの技術が最高のものであるとは限りません。おそらく、すべてのメインストリームの技術は最先端ではありません。むしろ、メインストリームとなっているのは「枯れた技術」に近いかもしれません。メインストリームではないものの中には、いずれメインストリームになるものや、先進的・革新的なものもあります。この場合の現状でのコストを、外部資源の利用のしやすさということとあわせて考える必要が出てきます。更に「将来的にメインストリームとなる革新的な生産性を生み出す技術」というものに対する投資・投機的意識がある場合には、現状コストの分析だけでは完結しないでしょう。
既にメインストリームとなっている技術の学習は必要だと感じていますが、突っ込んだ研究は行わないことにしています。既にメインストリームとなっている技術の場合には豊富な外部資源となるドキュメント、ソースコード、ライブラリなどが豊富にあるからです。その場合には、外部資源を有効活用する方法を確立することにフォーカスします。その上で、メインストリームの動向を見ます。発展が続いているのか、停滞しているのか、衰退しているのか。それによって、その技術と外部資源への依存が現状で適切であるかどうかの判断を行います。停滞・衰退の兆候があればその期間の見積もりと、その期間に対応した他の技術の保険的確保、或いは移行も検討しなければなりません。勿論、これらの判断は容易なことではなく、多くの場合、その判断は投資的であることを超えて投機的となります。
更に判断を難しくさせるのは、ソフトウェアシステムの寿命です。一度動き始めたシステムの寿命が、メインストリームや流行の寿命よりも長くなるということは往々にして起こります。ある技術がメインストリームから完全に外れてもなお、システムのメンテナンスは行われ続けなければなりませんし、メンテナンスが行われ続ける以上は、それに関わる技術者も、それに関わるビジネス的時間資源も継続的に確保されなければなりません。こういった状況では、理想論上は撤退が好ましいにもかかわらず、採算性ではそれに対する投資を継続することが望ましい場合も多くなります。
逆に、将来性があると考えているまだメインストリームではない技術の研究が、結局メインストリームから外れて、投資が想定した結果を生まない場合もありますし、将来性が薄いと考えて投資しなかった分野が、紆余曲折の中でメインストリームとなる場合もあります。
さらに、メインストリームというようなファッション性はないものの、SQL言語のように完全に基礎技術として定着し、クラシックな位置を占めるモノもあるし、C言語のように、目新しいアプリケーションなどで主役的なところには出にくいです、OS・ネットワーク基盤の技術としてはあまり衰退していないようなものもあります。

キーワードは限りありませんが、とりあえず思いついたいくつかをあげて今夜のブログは終わりにします。

- C
- C++
- ObjectiveC
- Java
- Pascal/Delphi
- .net


- HTML5/CSS4
- JavaScript
    - prototype.js
    - jquery
- perl
- php
- python
- ruby

- sqlite
- mysql
- postgresql
- firebird
- oracle
- db2

- cvs
- subversion
- git

- Microsoft Windows
- Apple MacOS X
- Linux
    - RedHat Enterprise Linux系
    - Debian/Ubuntsu系

- iOS
- Android
- WindowsPhone

0 件のコメント: