WPFとSilverlight

昨年度から継続している仕事がある。今年度は昨年度に作ったシステムの拡張に勤しんでるのだけど、色々なシガラミに巻かれまくって、大風呂敷を広げてしまった。自分の首を締めた訳だが、そんな状況に陥った自分の生活を楽しんでいる。

さて、今年度のプロジェクトは、昨年度に採用した某メーカーのパッケージソフトからの脱却を図り、全て自前の開発にした。ここで悩んだのが、どの様に構築するのがベストなのか?と言う事。当然、投資する以上は回収を見込んで行うのだが、昨今の公共事業は先が見えないのが現状である。投資効果を試算するのが難しい。また、自前で構築する以上、自前でメンテし続け無くてはならない。極論、僕が居なくなった後もメンテ出来る状態にしておく必要もある。と、自分の事ばかりを考えていても売れるシステムを構築できるわけではなく、利用するユーザや利用シーンは念頭に置いておかなくてはならない。

今回システム構築するに当たり考えたのがWPFSilverlight。両方共Microsoftによるもので、なんだか得体のしれないものに見受けられる。特にSilverlightは動画配信や画像処理ばかりが目立ち、Silverlightの実態が見えてこない。これは、日本におけるMicrosoftの戦略がユーザに伝わっていないことが原因であると思う。結局、Silverlightは実態がなく様々なテクノロジの集合体であると判断し、WPFでの開発に踏み切った次第だ。

日本では馴染みが薄いWPFなのだけど、色々と試してみると良く出来たものであり、なぜ普及しないのか不思議に感じるほどである。過去に開発したコンポーネントなどの資産を持たないユーザ企業はWPFを試してみることを奨める。開発時間の短縮は当然のこと、メンテナンス性にも優れており、過去のVB資産などは.NETにアップデートするだけでなく、WPFで再構築する等、出来るだけ欲張ったほうが良いと感じている。
では、WPFSilverlightに駆逐されるのか?という不安があると思うが、InfoQに興味深い記事があったのでメモしておく。

WPF対Silverlight:プロジェクトに最適な技術を選ぶ
将来、SilverlightWPFの2つは、1つのコードベースの単一技術におそらくなるでしょう。結局、Silverlightは、当初WPF/E(EはEverywhereから)として知られ、我々の通常のアプローチと驚くほど全く逆のアプローチで、醜いコードネームをつけ、それから本当に素晴らしい製品名称(Silverlight) を作り出しました。

英語の直訳なので日本語としては読み辛いが、WPFSilverlightは現在のところ使い分ける必要があるものの、将来的には統合されていくだろう…と言う事だ。正直、.NetFramework3.0までは、業務アプリケーションに向かないと感じていたのだが、4.0からは使い勝手が良くなっている*1

あくまでも素人の戯言なのだけど、WPFは面白い。もっと日本語の書籍を出すべきだと思うのだけど、日本じゃ売れないのかな?日本に多いと思われるVBプログラマは一番取り掛かりやすいと思うのだけど…。
個人的な将来予測をすると、VisualStudioが無くなって、Expressionが開発ツールとして成熟していくんじゃないかな…などと考えている。ExpressionにF#を組み合わせると、一昔前の4GL的な開発が可能になりそうに見受けられる。現在の仕事が終わったらExpressionとF#で遊んでみたいと考えている。

*1:そういえば、iPhoneも4から良くなっている様子。ある意味、ver4.0で完熟したテクノロジになるという事かもしれない。すると、Web2.0という言葉があったが、ウェブもWeb4.0になれば現実と仮想が密着したユビキタスなサービスとして提供されるということだろうか…。