和歌山のプログラミング・システム開発ならシステムキューブ
マイクロソフトが自社のアプリケーション実行環境.NET Framework(ドットネット フレームワーク)のソースコードを公開する方針を明らかにしました。
これは一部分を公開するのではなく、広く開発者の参加を求め、.NET Coreとよばれる機能の中枢部分を公開して作成するというものです。
この決定はかなり大きな発表で、業界内での反響は大きいです。
.NETはC#やVisualBasic.NETなどで作成されたアプリケーションを動作させるために必須のもです。
これが今後Windows以外のプラットフォーム、LinuxやMac OSなどでも動作するようになります。
とはいえ今回公開されるのはCore部分とよばれる、いわゆるフォームなど画面の機能を省いたもので、サーバー側で動くサービスを作成するために提供される形になります。
.NETはJavaよりも新しい製品なので、より生産性の高くなる仕様を盛り込んでおり、さまざまなスキルの開発者に多くの機能を提供しています。
これをマイクロソフトは、Windowsの業界内での地位を確固とするための基盤としていました。比較的新しいC#やVisual Basic.NETも開発者の総数はとても大きいものです。
昨今のクラウドや、タブレット、スマートフォンの登場により、よりサーバー側で機能を大きく持ち、パソコンよりも非力なクライアント上で動作するサービスが増えてきています。
そうなるとサービスや、アプリケーションを構築する際に、サーバー側にコストが偏ることになります。
現在Windowsの動作するクラウドWindows Azureをマイクロソフトは公開しており、それが.NETが唯一動作するクラウド環境でした。クラウド業界ではコストパフォーマンスでAmazonなどが大きなシェアを占めるようになり、トータルのコストを考えるとインフラはAmazon、サーバーOSはLinuxが選ばれることが多くなりました。
そうなれば自然とLinuxで動作するソフトウェア開発、実行環境が選ばれますので、それまでは大多数だったWindowsだけのエンジニアの比率は小さくなっていってしまいます。
Linuxでリッチな開発環境と機能をもつ.NETが動作するとなると、.NET技術者をサーバー側のソフトウェア開発者にも充てることができるようになり、スマートフォンやタブレットなどのマルチプラットフォームを相手にしたサービス開始までの選択肢が広がります。
これはエンジニアとしても活動の範囲が広がり、より.NETの習得に意義を見いだすことができます。
Windows Serverのセールスポイントの一つであったActive DirectoryをLinuxのプロジェクトSambaに提供するなど、マイクロソフトはLinuxと協調的な姿勢を示しています。
サーバー、クライアント、すべてをWindowsで固めると割高になるために、マイクロソフトの技術を避けた社内システムを構築する方向性もみられ、それがGoogle Appsなどのクラウド製品の導入のきっかけになりつつあります。
マイクロソフトも自社で開発した技術が無用なものになれば、それまでの研究開発費は無意味になってしまいます。
業界内でも最高度の品質と性能を持つマイクロソフトの技術を、Windows環境の普及と囲い込み、という目的だけでは守りきれないという判断もあるのではないでしょうか。
使いこなすことのできるエンジニアあっての技術です。エンジニア数が減ればプロジェクトの維持が難しくなりますので、自然と技術のシェアも低下していきます。
このようなオープンソースなどの取り組みは、マイクロソフトの技術力の高さを業界内でも大きく示すことになり、エンジニア離れを減らす効果が期待できそうです。
機材費、開発費、運用費など、トータルの判断で.NETなどマイクロソフトの技術を選ぶのであれば、プラットフォームもWindows ServerやWindows Azureを使うことの意義が出てきます。
より長期の戦略において、今回の.NETオープンソース化はマイクロソフトの今後に大きな影響を与えそうです。