やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Windowsプログラミングの学習方針について考えてみた

Windowsには多様な実行環境がある。 どれを学習すべきか考えてみた。

学習する価値はあるのか

これまで.NET4のFormとWPFをやってみた。 それぞれまったく別々のコーディングを強いられて苦労した。

しかも、もはやFormは古いからWPFをやるべきらしいのだが、WPFXAMLのせいでとてもわかりづらい。 さらに、WindowsのバージョンごとにStoreやUWPという実行環境が増えている。

はたしてWPFは学習する価値があるのか、わからなくなってきた。 学習しても古くなって学習した内容が無駄にならないか。 書いたコードが実行できなくならないか。

Windowsの実行環境について調べてから判断することにした。

Windowsの実行環境

Version 実行環境 特徴
初期~ API 生のWindowAPIを直接使うため最高速。
MFC 有償
~7 .NET Framework 生産性の向上。
8~ Windows Runtime COMベース。.NETより高速。

.NETはWindowsAPIを使わないとできないことが多々あるらしい。 WinRTは知らない。

どれを学習すべきか

以下のサイトを参考にさせて頂いた。
http://www.buildinsider.net/enterprise/uwpapp/01
http://www.atmarkit.co.jp/ait/articles/1506/23/news012.html

新しくなるごとに選択肢が増える。 選択肢が増えると、それらすべてを把握した上で適切なものを選ばねばならなくなる。 WPFだけでも難しそうなのに…。

COM/COM+はWinRTの前身らしい。WinRTの基礎として知っておけばいい程度なのだろうか。 MFCは知らない。有償らしいが。 とりあえずこれらは除外しておく。

新しくなるにつれてOSレベルで制限が増えていく印象がある。 また、技術をコロコロ変えられると辛い。 このままではキリがない。 とりあえずWindowsAPIを学習しておいたほうがよさそう。

以下を学習してみたい。

多分WindowsAPIから学習すれば、.NET(Form, WPF)のありがたみが理解できるようになると思う。 使い分けのポイントをおさえたい。

Linuxという選択肢

Windowsの制限や技術の遷移は経営戦略によるものだと思う。 OSも非公開コードで学習が無駄になってしまうことが怖い。

Linuxという選択肢もある。 とりあえずWindowsC/C++の学習をしておけば移行しやすいか。 いずれLinuxも学習してみたい。 しばらくはWindowsでいく。