読者です 読者をやめる 読者になる 読者になる

山形の C#er @NetSeed さんに会って C# への愛を確かめてきた

生活

 @selene_pg さんと山形に行ってきました。山形といってもさくらんぼがあるよ〜ぐらいの知識しか無かったわけですが。宮城峡のニッカウィスキー工場を見学したりなんかして、いやはや、楽しんできました。
 さて、今回はニコ生で出会った @NetSeed さん宅にお邪魔してきました。彼の Web 上での C# への愛情はとめどなかったのですが、実際どんなもんなんだろう、というのを聞きたいなぁというのもあってやや遠かったんですが足をのばしてみました。
 さて C# ですが。言わずと知れた MS 製プログラミング言語ですね。.net フレームワーク上で動く言語としては VB.net と双璧を為す言語です。で、C++er の僕が以前から聞きたいなぁと思っていたコトがひとつあります。

 それは「C++ よりもどういう点を優れていると評価しているのか?」というコト。

 しかしどうもこの問いかけ自体がそもそも的外れだったんだと気づきました。どうも .net framework で MS が実現しようとしている方向や、その実装、および実装に係る思想、それらとプログラマを繋ぐ言語としての C# の存在…。それら一気通貫のセット、つまりそうした要素が凝縮されているからこそ生まれる C# プログラミングという世界観に感銘を受けている、というのが実際のところのようです。もちろん言語仕様的な美しさとか、処理系の使い勝手などは人それぞれピンと来るポイントが異なるわけで、「@NetSeed さんが語る C# こそが世界で唯一最良というわけではない」というツッコミは辞めてね〜、と、この blog を読んだ人には、先に言っておきたい。
 例えば C# の言語やライブラリに新しい機能が搭載されたとき、普通はちょっと使ってみて「あぁ、これ便利だねぇ」で終わりなのですが @NetSeed さんは IL を読んで実際にどうやって動いているのかを検証する側の人です。本棚には .netC# 界隈の本が並んでいました(※ C++er の僕は asm 読もうと思った事ありません)。彼曰く「興味が湧くと、どうしても突っ込んで調べてしまうのでいつまで経ってもアプリケーションが完成しない。」そうです。普通の C#er は可変長引数関数の呼び出し規約について悩んだりしません!

 で、アプリケーションの完成といえばひとつ大事な事を書いておかねばなりません。@NetSeed さんは時計屋さんです。普段は時計売ってるんです。プログラマじゃないんです!C# の実装を調査するのはあくまで趣味なんです!!

 そうした背景もあって、プログラマの僕(≠ C++er の僕)と @NetSeed さんとでは開発に対する考え方が違います。例えばプログラムが継続不能な状態に陥った場合の対処。僕は極限までアプリケーションを殺さずに生かす対応をします。そもそもプログラマの開発活動には賃金が発生するので、できるだけ安く速く、少し処理に躓いても生きながらえる成果物をアウトプットする事にこだわりますよね。ところが @NetSeed さんの場合は「鳴かぬなら殺してしまえホトトギス」な対応をします。プログラムの実装妥当性にこそ、こだわるわけです。

  @NetSeed さんは
 「分からない事が多すぎる
と言います。知れば知る程、分からない事が見えているのだろうと思います。またこうも言っています。
 「私はプログラマではないし、こういう性格だからプログラマは務まらないと思う。でも、『完全に趣味で完結してしまうだけというのは勿体ない』という言葉もありがたい。もし C# .net を使っていてふとした落とし穴にハマったプログラマが、落とし穴から這い上がる一助になるような事があればそれで十分うれしいです。」

 彼はプログラマでは無いですが、言語を愛でるという点で現場のプログラマの平均を軽く超えています。技術を愛でることでそれについて深い知見と幅広い選択肢を得ることができます。企業には、そういうスキルを一般人以上に持っている事が求められるんだと思います。それを期待しているから客はお金を払ってくれる、という関係こそが営利活動を続ける前提にあるはずだろうと。ソフトウェア企業の経営全般についての話にしたくないのでここらで止めておきますが、総じて僕の総括は「みんなもっとはぁはぁしようぜ!」でした。おしまい。
 
※ 山形で時計買うときは是非、彼のところへ行きましょう。