++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

フリーズしないアプリケーションの作り方

leave a comment »

@IT 向けに書いた記事が公開されました。

これもまた、裏ではいろいろと思うところあり。

タイミングよかった

いやー、題材が題材だけに、C# 5.0 とか .NET Framework 4.5、VS11 の正式版が出る頃に出そうかなーなどと思って書き貯めてあった文章だったり。

諸事情あって、実は意図せず今月完成させて出すことになって、今日の公開だったわけですが、意図せずいいタイミングになったなぁ。

BUILD での発表内容がもうほんと非同期処理だらけで。「WinRT では50ミリ秒以上かかる処理は非同期APIにします」とか、C# 5.0 の async/await 構文の再説明も多々入っていたり。

ついかっとなってやった。後悔なんてあるわけない。

まあ、非同期処理は一応、年々ホットな話題になってきているので、他にも記事はあるにはあります。

ただ、自分的に納得のいくものがないというか、「非同期処理なんてどうせレベル高い人向けのものだから、わかりやすい説明とかしないでいい」と言わんばかりのものだらけなのが納得いかず。難しいものを難しいまま書いてる記事とか見るとイラっとして、ついかっとなって自分で書いた。後悔はしていない。

なんというか、図が全然ないとか、いまいちきれいな分類がなされてないとか、そもそもなぜ必要か理由が抜けてるとか。そういうのを抜かない丁寧さは大事だと思うのに、ほんと、非同期処理がらみの記事できっちりしてるものを見たことがなく…

特に、C# 5.0 で入る async/await 構文なんかは、「今までレベル高い人だけが触っていたものを、もう少しレベル低めの人でも触れるようにしよう」というものなので、丁寧な説明を要するわけで。

かぶった

「他にも記事はある」というか、書いてる最中、100%かぶった記事が公開されて焦ったり…。しかも、MSDN マガジン。

テーマはおろか、Task クラスから始めて、Parallel クラス、C# 5.0、Dataflow ライブラリを説明と、構成まで完璧にかぶりましたとも。びっくりするレベルで。

まあ、でも、上記の理由(丁寧さの問題)があるので気にせずそのまま書くことに。

難しいことを簡単に

簡単なことを簡単に説明しても役に立たないだろ。難しいこと難しいまま書いても読んでもらえないよ。

などと、常日頃から思っております。難しいことを簡単に説明できなきゃいけない。

でも、テーマが「難しいこと」な時点で編集部の方々に敬遠されがちなんですよねぇ… さんざん言われていますとも、

  • 「えっ、LINQ までやるの?」
  • 「非同期をテーマにすると、予想以上に引きが弱い」

等々。

ページビューによって広告収入が決まるんで、編集さんとしては正しいご意見。難しいこと難しいまま書く人が多いんだもん、そりゃ PV 取れない。

しかし、レベル高い記事ほど PV 取れないとなると、ウェブからレベル高い記事が消えるよなぁと、常々懸念しております。

なんとしても、レベル高めの記事で PV 取らなきゃいけない。それには、ただ難しいこと書いていてはダメで、難しいことを簡単にかかなきゃいけない。

まあ、前の「データ処理」(要は LINQ)とか今回の「非同期」とかで、そこそこちゃんとブックマークついているようなので、ひとまずは安心。

(自分の場合は、自分自身が twitter とか ufcpp.net とかから宣伝かけれるんでチートといえばチート、フェアな数字でもないんですが。あと、対外的に「難しいことを簡単に」であることに加えて、まあ商売ですんで、制作的には「見合ったコスト」で書けなきゃ意味なく。この点はまだまだ改善の余地あり。)

(あと、「非同期」という言葉がよくわからなさすぎて良くないという説も。今回の記事も、タイトルからは非同期の文字を外すことに。それは多分、効果あったと思います。「フリーズしない」の方がやっぱりパッと見でイメージ伝わる。)

今のページビューと、これからと

開発者の収益性という面でみると、一番コスト・メリットのバランスがいいのは「平均的なレベルの1歩だけ先を行く」なんですよね。はっきり言って、最新技術追いすぎてもコスト高。

それもあって、ニュース性の高いものならともかく、僕が書くような教科書的色合いの濃い記事は、最新なもの使うより、今、現場で一番使われているであろう枯れたものが使われがちなんですよねぇ。

  • GUI のサンプルはやっぱり Windows フォームでしょうか?
  • Task クラスは .NET 4 に限られるので、Thread クラスを使った例を。
  • データベースは DataSet、取得側のダウンロード形式は CSV、サーバー間連携は FTP でファイル アップロード、etc.

ただ、でも、そういう記事は5年10年という期間で、人を育てるんですよね。

その5年・10年とみられるものに、今現在の最大多数であっても、減少トレンドがはっきり表れているものを書いていいのか。それでも、ページビューのために最大多数なレガシーを書くべきなのか。

とかあるので、自分の場合はサンプル コードとかには絶対最新のライブラリしか使わないわけですが。ただ、記事の収益性を軽んじては絶対いけないと思うので悩むんですよねぇ、最近。これも、「新しいことを、既存技術者にもわかりやすく」と「見合ったコストで」をちゃんと気にしていかないと。

Written by ufcpp

2011年9月30日 @ 16:26

コメントを残す