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が使われているように思われる。

以上

2015年2月19日木曜日

自分が定年を迎える頃のソフト開発環境予想

自分が定年を迎える2025年頃のソフト開発環境をザックリと予想してみよう。

その準備として現在のソフト開発環境を見渡してみる

自分の一番身近にあって個人で利用可能な唯一のソフト開発環境は"パソコン"だ。これは偶然ではない。パソコンというカテゴリは黎明期から今まで激しい競争があり、さまざまな機種が現れては淘汰されてきた結果である。8bit系のMZシリーズ、PC-8001,PC-8801,APPLEⅡ、16bit時代にはPC-9801,DOS/V(MS-DOS/Windows),Machintosh。32bit時代になるUNIXが台頭する。UNIXは、個人用とはいえないメインフレームやミニコンすら打ち負かしてしまったが、結局は各メーカ毎に互換性がないことなどが致命傷となり、最後はLinuxに負けてしまった。結局、さまざまなメーカが出した、ディスプレイやキーボード・ディスクのついた、パソコンというカテゴリは最後にはWindowsとLinuxが残り、他は絶滅してしまったのだ。
 
以下、2014年のパソコンOSのシェアについてのASCII.jpの記事抜粋だが、 Windowsが90.94%で圧倒的シェアを占めている。これに対してMacは7.57%、Linuxは1.49%。依然、Windowsはデファクトスタンダードといえる状態だ。
 
 パソコンのOSのバージョン別シェアを見ていくと、Windows 7が48.77%とシェアの約5割を占めてトップ。続いて最近サポートが終了したWindows XPの27.69%が続く。XPが出た後にもWindowはさまざまなバージョンが出ているにもかかわらず、13年も前のXPがパソコンのOSシェアのうち約3割も占めている。
 続いてWindows 8の6.41%、Windows 8.1の4.89%、Mac OS X 10.9が3.75%、Windows 
Vistaが2.99%、Linuxが1.49%、Mac OS X 10.6が1.29%、Mac OS X 10.8が1.18%、Mac OS X
 10.7が1.05%などとなっている。
http://ascii.jp/elem/000/000/884/884449/

記事のとおり、パソコン用OSで一番メジャーなのはWindowsだ。 Windowsはソフト開発だけでなく、インターネット・文書作成・データ入力・編集など、多目的に使用可能だ。次点はLinuxだが、Linuxはいろいろ不便で、Windowsを駆逐するものにはなっていない。(Windowsを駆逐するつもりがない?)ただし、androidをはじめとする組み込み機器用OSとして幅広く使われており、それの開発環境として使用されるケースがあるので今後自分も使う機会があるかもしれない。MACは以前はWindowsと張り合うほどのシェアだったが、さまざまな失敗により一旦廃れてしまい、最近になってiPhone用ソフトの開発には必須なのでシェアは増加傾向とのこと。 そしてパソコンは、業務用・個人用問わず、唯一にして最強のソフト開発環境だ。最近、スマホの登場でPCのシェアは下がると予想されているが、スマホはプログラムを実行する環境であっても開発する環境ではないので、シェアは下がるだろうがPCはなくならないだろう。

聞くところによれば、メインフレーム(大型コンピュータ)もソフト開発環境として使用できるらしい。PCに押されてシェアは下落したものの、メインフレームでしかできない固有の役割があって未だに現役バリバリで活躍しているとのこと。しかしながら自分の仕事とは無関係だし、そもそも個人が趣味で使用するような代物ではないので今後も縁がないだろう。

 
何かの本に、"ユーザは使用可能なメモリ容量が大きいコンピュータを好むため、扱えるメモリ容量が枯渇するとCPU/OSは寿命を迎える" とあったが自分の知るパソコン史は正にそのとおりだった。16bitから32bitに変わったとき、メモリ空間は最大4Gに広がったと 聞いたときには、永久に使い切ることはありえないな!と思っていたが、あっという間に使い切ってしまい、今、正に32bit→64bitへの切り替わろうとしている。過去の例からすればここで世代交代があってもおかしくないのだが、WindowsとLinuxは64bit化された製品が市販されていて、普通に使われているようなので、世代交代はなさそうだ。(個人的には、いまさら他のOSを一から覚えるのはしんどいのでWindowsにがんばってもらいたいというのもある。)

以上の材料から考えると、

パソコンは、業務用・個人用問わず、唯一にして最強のソフト開発環境だ。スマホに押されてシェアが低下しているが、それは他に有力な開発環境が出現したのとはちがう。今現在、対抗馬がないことを考えると、今後シェアは低下するにしても、自分が定年を迎える10年後には、まだ残っているだろう。仮にパソコンが主流じゃなくなったとしても、ソフト開発をするには、キーボードと大型ディスプレイは必需品なので、結局パソコンに似たものに置き変わるだけだ。
パソコン用のOSは競争が激しいので、Windowsはシェアは下がるかもしれないが残っている。また組み込み機器の開発にLinuxを使用するケースはある。
  
以上

2015年2月16日月曜日

生涯プログラムを作り続ける

仕事を定年でやめた後に何をするかは、定年になる前にビジョンをもっておかなきゃいけないことだそうだ。今はまだ健康で、体力もあるから、旅行でもスポーツでも何でもできるけど、年取って体を動かすのがしんどくなったら何してればいいんだろう?とか、寝たきりになったら何を支えに生きていくんだろう??とずっと考えていたが、あるとき、昔みたいに朝から晩まで好きなソフト作ってれば良いかも・・と気がついた。
上半身が動いて病室にノートパソコンを持ち込めればプログラミングは不可能ではない。うそか本当かわからないが、世の中、SEもプログラマも不足しているらしいのでメシのネタにもなるかもしれない。備忘録もかねて、そういうことをブログに書き綴ってみようと思う。