2017年4月11日火曜日

[Win]開発環境周りの整理と最善の選択肢とは



現在のプラットフォームはまさに戦乱時代!

昔は開発環境自由で悪い事もかなり沢山あるけど選択肢が少なくて良かった。。
今は、
ワンソース・ワンバイナリでできるよ!この言語ならね。俺んとこ来いよ!

という思想の下でプラットフォームの囲い込み合戦が開始されている。

今まではデスクトップ最強主義でパソコン=デスクトップという概念から、
技術の進化で小型化が進んでスマホ・タブレットという分野が新しく開拓された。
この先陣を切ったのがapple。
WindowはフォントボロボロだけどAppleはしっかり美しさを全面に押し出し高級感とともにイメージ戦略に成功した感がする。

一方Androidは2判煎じだが、開発者向けの費用は安く参入できるようコミュニティの活性からスタートして、未完成ながらもバージョンアップを繰り返し、速度で押し切りシェアを獲得したが、やや端末の屍はやや多い感がする。

この分野で最高の地位を確保していたMicrosoftだが、大企業病が発症したのかすべてにおいて出遅れてしまい、ハンズオン分野のシェアがほぼ埋まってしまって割って入る隙間が無くなってしまった。
未開拓領域でいえば新興国向け市場だが、ここに割り込んでも多勢に無勢。
何か挽回の策を講じる必要がありそうだ。

最後にLinux。
Ubuntuが作ったGnome3はコミュニティで賛同が得られず、今年で幕閉めとなってしまった。
悲しい結末だけど、ようはエコシステムなんだよね。

人は儲かるか儲からないかで動く人は少なからずいる。
そのプラットフォームで活動することで何らかの対価が得られなければ開発者たちは新たな新天地を求め去って行ってしまうんだろう。

という事で、今回のテーマはプラットフォーム。

UWPについて

WindowがinRT系列でUWPを作って、WinストアでWindows製品の様々な機器で使えるよというエコシステムを作った。
このUWPが若干曲者で、過去の資産をバッサリ切ってリファクタリングと称して現代にあったスタイルに開発環境を再構築しているようだ。
昔からの開発者にとって迷惑だが、時代の流れなんだろう。
というか、レガシー世代からすると新しい世代が開発すれば気にならないので若い人たちは技術の習得にいそしんでほしいといったところか。


プラットフォーム選びについて

色々あって迷う。
そんな迷う時間がもったいないので、各OSやターゲット別の一覧表を作ってみた。



Windows開発環境から見た開発環境の図

これからアプリを作りたいなって思った時、どこをターゲットにするかを考える必要がある。そこでいろんなケースを書いてみる。

VisualStudio環境で
  • ゲームを作りたい。→Xamarin
  • いろんなWindows製品で動かしたい。→UWP
  • Win7とかでも動くWindowsデスクトップアプリが作りたい。→WinForm
  • モバイル開発がしたい→Xamarin
  • OS問わずデスクトップで動くアプリを作りたい。→Electron
もちろんCordovaやASPや.Net coreなど他のケースも色々あるが、個人的にいろんな開発環境を触ってみて安定していて比較的迷わず素直に作れるものだけを選別してます。


いろんなケースを書いてみてもまだ見づらいですね。。
さらにおおざっぱにまとめると、
  • デスクトップ=Winform、UWP、Electron
  • モバイル=Xamarin、Android、Swift
  • IOT=なんでもよし
こんな具合です。
参考になっていれば嬉しいです。

コメントを投稿

Androider