2015年3月23日月曜日

定年後、どんなソフトを開発しているのだろう? part1 趣味での開発の場合

自分は定年後、どんなソフトを開発しているのだろう? 趣味で作る場合と、仕事で作る場合の二通りで考えてみた。長くなってしまったので、二回にわけて投稿する。

趣味でソフトを開発する場合

趣味でソフトを作る場合は何を作っても良い。未経験なジャンルに挑戦するのも楽しいかもしれない。しかしながら、ここでのテーマは生涯続けることなので、半年やそこらで開発し終わってしまうものはだめだし、いたずらに長くて飽きてしまうものもだめ。そうだとすると、いくつも開発テーマを持っていて、次々と開発するのかもしれないし、またはライフワーク的な壮大なテーマを一つ持っていて、長期間作り続けるのかもしれない。ライフワークになるようなテーマは、おそらく複雑度が高く、ステップ数も大きい。少し作っては動かし、それを機能アップしていくような作業だろうか。しかしそういうテーマは簡単には見つからないだろう。今よりももっと情報を集め、何本も小さいソフトを作りながら、何なら自分につくれるか・作ってみたいかを考えるのかもしれないし、または既存のSVN化されたプロジェクトにデベロッパとして参加するのかもしれない。いずれにしても、おそらく収入にはならないので、多少なりとも人の役に立つプログラムで、他人に自慢でき(これ、重要!)、モチベーションが保てるものに限られるだろう。パッと思いつくのは、パソコン上で動作するフリーソフトやスマホ上で動作するアプリみたなものか。いずれにしても、たくさんの人が使っている機種向けで、かつソフトを世間に広く公開する仕組みが用意されているものが好ましい。ひょっとすると将来はWEB系にもフリーソフトってジャンルはあるのかもしれない。
また、人の役に立つもの・他人に自慢できるものを作るとなると、「他に人がまだ作っていないものを作る・他の人が作れないものが作れる」ことも重要だ。結果として、競争相手が少ないカテゴリを選ぶことも重要となるかもしれない。これは仕事にも通じるものがある。

定年まで残り10年。おそらくあっという間だ。その10年のうちに今よりももっと情報を集め、何本か小さいソフトを作ってみて、何なら自分に作れるか・作ってみたいかを考える。そして、定年後に作りたい開発テーマを見つけ、開発をスタートさせてから定年を迎える。そんな流れだろうか。逆に開発テーマが見つからないうちに定年を迎えてしまうと、こういうことは無理って感じがする。

2015年3月19日木曜日

自分が定年を迎える2025年頃のソフト実行環境予想

前回、ソフト開発環境について書いたので、今回は自分が定年を迎える2025年頃のソフト実行環境を予想してみる。しかしながら調査不足・知識不足のため現時点での自分の知識を整理するレベルだが。

まず、現時点でのソフト実行環境について考察する。

(1)パソコン
自分の一番身近にある、使い慣れたソフト実行環境はパソコンだ。ここではWindowsと限定せず、MAC・Linuxも含むことにする。パソコン用の言語処理系は豊富かつ無料提供されている場合が多く、情報の入手も容易だ。シェアは最近ではスマホ/タブレットに押され、減少傾向にある。

(2)スマホ
今急激にシェアを伸ばしている実行環境。iPhoneまたはAndroidのスマホ用アプリが個人レベルで開発可能。iPhoneはAppleの独自OSを採用しており、ホストマシンにはMACを使わないといけない。開発言語はObjective-CからSwiftに移り変わろうとしているが、どちらもAppleの独自の言語だ。これに対してAndroidはOSに組み込み用として有名なLinuxを採用し、開発言語もWEB系では有名なJavaかXML。ホストマシンは Windows・Linux・MACが選べる。特にWindowsでできるのは自分としてはありがたい。iPhone,Androidとも開発ツール類は無料でダウン ロードできる。

 (3)組み込み系
ある意味では、一番身近な実行環境といえるだろう。ただし他のカテゴリと違い、代表的な製品は無く、製品によってハード構成やOSの有無もまちまちで、自作したアプリを気軽に動かせる環境かといわれると、できないことがほとんどだ。開発言語はC/C++・アセンブラ。ホストマシンはWindowsが使用可能。使われる技術・言語の変化はゆっくり。シェアの増減は未調査だが、日用品などの例では携帯電話・腕時計・万歩計・電子手帳などはスマホに置き換わってしまった。またラズベリーパイに代表されるような非常に安価な組み込み系Linuxボードが登場しており、今後は組み込み系でもかなりシェアを伸ばすように予想される。

(4)WEB系
パソコン・スマホ・組み込みのいずれにも共通する話題としてWEB系言語を動かすケースが増えている。代表的な言語はJavaで、大規模な業務システムから家電製品まで、様々なマシンのWEBブラウザ上で実行可能。Windows上で開発でき、開発ツールも無料でダウンロード可能。嘘かまことか、一度作成すればどの機種でも動かせるとのこと。このカテゴリのシェアは増加傾向ではあるが、プログラミング言語や技術は流行り廃りが激しいので、がんばって習得してもすぐに時代遅れになるリスクがある。


では、それらの10年後について予想してみると

(1)スマホ=ウェアラブル端末
シェアは大幅に増加しているだろう。おそらく一人一台スマホを持つの時代が来て、やがてウェアラブル端末の時代が来る。しかしながら技術の流行り廃りが激しいので、ウェアラブル端末というカテゴリは残っていても、iPhoneやAndroidはなくなっているかもしれない。 大予想だが、iPhoneかAndroidいずれかは、スマホから撤退しているのでは?

(2)パソコン
・スマホなどに押されシェアは減少するが、スマホに比べ画面も大きくキー入力もしやすいという利点がある。また個人用としても業務用としても唯一にして最強のソフト開発環境という強みがあるので、このカテゴリは2025年時点でも消滅することが無いだろう。


 (3)組み込み系
将来的にもこのカテゴリはなくならないだろうが、PICのような小規模なコントローラを用いた組み込み機器は減り、ラズベリーパイに代表される、組み込みLinuxのシェアが増加するように予想する。

(4)WEB系
シェアは増加しているだろう。しかしながら技術の流行り廃りが激しいので今ある技術や言語が生き残っているか不明。直感だが、ここでも組み込み用のLinuxが使われているように思われる。

以上