2009/10 (b)

Last Modified: Mon Nov 2 07:44:22 JST 2009

「あるまじき」とアルマジロって似てるよね!

/01 [Sun]


(07:48)
今日は例の展示会です。ねむい
(18:28)
オワッタ。明日はもう行かんよ。会社に残ってバグとりだ。

てくるで今日聴いた講演について。はっきりいって、内容そのものはつまらなかった。 が、少なくともあのセンセイは臨床で真面目に大脳を研究している神経科医のようで、 いわゆるTV局ご用達の“脳科学者 (かっこ藁)”とは違うらしく、 主催者の見識を疑うような人選ではなかったので安心した。 でも講演は面白くないんだよね。

(21:56)
新山は自称「プレゼン批評家」であるので、いつも他人の 発表方法 (内容にではない…たまに内容のときもある) にケチをつけているのだが、さいきん思うのだけど、 世の中にはどうしても発表が得意な人とそうでない人がいるようだ。 基本的に、プレゼンテーションの能力というのは運動の能力みたいなものである。 誰でもトレーニングすればそれなりには上がる。たとえ不得意な人でも 「良いプレゼンと悪いプレゼン」 みたいな資料をもとに練習すれば、かなりまともな発表ができるようになると思う。 だけど、こんな沢山のルールをいつも意識してやっていくのは大変だよ。

プレゼンテーションの訓練のむずかしさは、スポーツのようなものとは違って、 客観的な評価ができないし、自分のどこが悪いのか、自分ではわかりにくいところにある (逆にいえば「自分の悪いところ」がはっきりわかっていれば、 それだけで問題の 90% はすでに解決したといえる)。いっぽうで、 世の中にはこんな規則をまったく教えなくても、ほぼ“天然で”いい発表ができる人がいる。 そしてそれは「言葉の流暢さ」とはとくに関連がないようだ。 実際、新山は「英語がカタコトだが、すばらしくいい説明をする」学生を見たことがある (ブルガリア出身の Roumen、彼はいまどうしているだろうか…)。

どうしてそういう違いが生まれるのだろう? 結局、プレゼンテーションというのは 究極的には「通じりゃなにをやってもいい」わけだ。これは商売というものが 究極的には「儲かりゃなにをやってもいい」のと似ている (もちろん、本当に なんでもいいわけじゃないが、少なくとも世の中のいろんな商売をみると、すごい自由度があるだろう)。 逆にいえば、つねに決まりきった方法に頼っていては、ろくな成果は望めない。 臨機応変に、その時々に応じた創意工夫が必要となる。 結局、プレゼンテーションの極意を一言で表現すれば

Be creative. (創造的であれ)
ってことにつきるのだ、と思う。

おっと、誤解しないでくれよ。日本語では「創造的」というのは、なんか芸術家じみた、 バタくさい、iPhone的なイメージをもたれることが多いが、 「創造的」というのは「前衛的」「他人と違うことをしろ」ということとは違う。 「自分のアタマで考えたことをやる」ってことなのだ (と新山は考えている)。 他人の出した答えをそのまま写すのは、どうみても創造的ではないから。 自分で考えた末に平凡なやり方に落ち着いたとしても、それはそれでいい (そうする必要がある時は)。ただし重要なのは「自分で納得するまでやってみる」ところにある。 もちろん、世の中には、すでに頭のいい他人が考えた良い回答が山のようにたくさんあるわけで、 それをパクらない手はない。しかし、何よりもその前に「まず自分で考えてみたか?」 ってところをオレは問いたい。そもそもプレゼンテーションってのは、相手と状況によって千万差別で、 ちょうど小説が何万種類も書かれているのと同じように、毎回毎回が新しい状況・新しい問題なのだ。 新山は「人間はみんな生まれつき頭がいいはず」という 性賢説 (←なんか漢字にすると、アヤしい) 論者であるので、ほとんどの人は ちゃんと考えればまともな回答を出すものと信じている。 ただし問題は、自己の責任で答えを出すのはリスクがともなうので、 多くの人々は (とくにいまの日本のような完璧主義社会では) それを極端に恐れるということだ。その結果、下手なプレゼンばかり増えるってわけ。

リスクなんかクソくらえ。

(23:07)
それにしても日本の完璧主義は、いったい誰が始めたのだろう。 デミングか? これのおかげで日本製品の品質がよくなったのは確かだが、 昔は日本ってもっといいかげんな国だったんじゃないのかなあ…。
(23:31)
ワーオ! Theo様のお宅の写真が新バージョンに! 温度計に注目。

/31 [Sat]


(16:21)
新山は計算機科学の教育には興味があるが、 同時に専門教育の「教師」という存在がもつ微妙な“負け犬っぽさ”も感じている。 たとえば、俳優の養成学校や芸術系の専門学校などでの講師だ。 彼らが「本物の俳優/芸術家になれないから講師をしている」というのは、 よく言われることである。もし俳優や芸術家としての稼ぎのほうがよいのであれば、 彼らはおそらくそっちを本業にしているはずだから。 まあ、中には“俳優/芸術家の教育”という仕事に本当に生きがいを感じている人も いるのかもしれないが、たいていの教師にとっては“本業”よりも講師のほうが マシな仕事なのだろう。同じことをプログラミングにも適用するとすると… やっぱり「専業ライター」は信用できない。
(19:21)
きょう、面白いと思った記事:

Madoff氏、ほとんどの被害者が「基本的な事実を調べようともしなかった」と供述

ベルナール・メイドフって知ってる? 日本ではゼーンゼン有名じゃないが、 ようするに「豊田商事事件」を全世界に拡大し、さらに長い長い時間をかけて熟成させたともいえる、 宇宙最大規模の金融詐欺の犯人である。2008年に崩壊した。40年以上にわたってズーっと詐欺を進めてきたが、 本人 (もとNASDAQ社長で、ウォール街1番の高給取りといわれていた) の社会的地位があまりにも高かったため、 身内から告発されるまでバレなかった。そんで崩壊したあとにフタを開けてみたら、 一連の詐欺で総額1700億ドル以上がだまし取られていたという。 1700億ドルって、よくわからんが日本の国家予算の半分ぐらいか? ちなみに本人はこの種の罪としては最高の懲役150年を言いわたされ、現在服役中。 こういう犯罪を取り締まる立場にあるSECにとっては破滅的な不祥事。 いろんな意味でちょっと信じられない事件なのだが、いちばん驚いたのは当のMadoff本人だったらしい。 「この手の犯罪を捜査しようとしたら、まず手形交換所の記録をあたるのが基本だ」とMadoff氏。 ようするに、SECの捜査官さえも基本的な事実関係をチェックしていなかった。 なぜなのか? かつてヒトラーは「たいていの悪党は小さなウソばかりつくから失敗する、 途方もなく大きな嘘をつけば大衆はみなそれを信じてしまう」というようなことを言った。 こういうニュースをみると、やはり「人類は、みな騙されたがっている」といった言明を思い出してしまう。 いまごろになって被害者はみんなMadoffを訴えているが、もう後の祭りだろうね。

しかし、この人、自分の身内にも知られないほどの秘密主義者だったというが、 バレそうになった機会がこれまでに2回あるという。そのたびに逮捕を覚悟したが、運よく逃れてきた。 どうやら本人は「バレたらバレたで、その時はしょうがない」と思ってやってたらしい。 自分の置かれている状況を冷静に判断して、かなり醒めた行動をしていたんではないかと思える。 まさしくホンモノの悪党だ。

こういう事件でヒトが騙される背景には、 心理学的な「否認」というものが大きく関連してると思うのだけど、 (つづく)

/30 [Fri]


(19:06)
もォーまったく、11月ちかいというのに、この暑さはなんなの?

/29 [Thu]


(19:32)
バグトラッキング (もどき) を始めて約2週間。 あいかわらず専用のシステムを使っているわけではなく、ただ「形式」を決めただけだが、 ひとつひとつのバグに名前をつけることを徹底させるとどういう効果があるかというと、 バグは本来形のないものだが、これが名前をつけることによって 「境界のはっきりした形をもつ」ように感じられてくるのだ。 だからバグを確固たるものとして「置いたり、移動したり」できるような感覚を与える。 これによりバグを報告する側にも、受ける側にもビミョーな意識の変化が生まれる。 それに予定も立てやすくなる。これは電車の指呼確認のようなもので、 一見アホらしく見えるルールでも意味をもつのkamoshiranei。
(20:25)
ふう、それにしても見通しがずいぶんと変わったものよ。(世界の)

この季節になると、いまだに昔のことを思い出して後悔するときがたまにある。 新山にとっても「あのときにああしていたらなあ」という分岐点は、 だいたいいまから15〜6年ぐらい前にあるのだが、 しかしその一方で、あのときどんな選択をしても結局 (ケッキョキ) 同じような自分になっていたかもなあ、とも思うのである。 春や夏に一人っきりでいてもべつに何も感じないが、 秋に一人でいるとなんかみょうに哀しいよね…。

さいきん、ここにほとんど薄暗いこと書いてない。これはよくない。

(21:54)
学習とは?

失敗して、それから失敗して失敗して失敗して失敗する。とにかく失敗すること。
そのうち失敗しなくなる。人はそれを学習という。

(23:51)
初期化をやる位置で悩むわけだ。(つづく)

/28 [Wed]


(23:32)
さいきん、まーた C# をいじる機会がふえてきまして…。

正直いって、これを言うのは非常に不本意なのだりますが、 C# は今のところ (Python を除いて) 新山のもっとも好きな言語になりつつある。 どの点も極端に抜きんでているわけではないのだが、全体的にバランスがいいのだ。 マイクロソフトを褒めるのはムカつくのだが、はっきりいって「やられた」としか言いようがない。 仕事で使うぶんには、スクリプト言語なら Python で、 それ以外の言語なら C# で (今のところは) ほとんど OK である。 しかし MS が言語でも独占をしてしまいそうなところは危機感をおぼえるが…。 C# はもともと世界征服 (?) を念頭において設計された。 MS は、今のところは Mono などの他実装を (特許侵害で) 訴えないといっているが、 いつまでもつのだか。あいかわらず新山はこの会社を信用していない。 こいつら恐ろしい連中だよ。これには Adobe PDF なんかとはぜんぜん違った雰囲気を感じる。 たとえば PDF についていえば、あんな腐った仕様でおまけに使いやすくもない フォーマットが普及したのは、おそらくそれ以外に代替品がなかったからだろうと思われる。 しかし C# は明らかに競合言語が沢山ある中で「勝ちに行っている」言語だ。 MS のほかの仕様がほとんど狂ってるとしても、C# を設計した連中だけは正気だ。

とくに最近は C# の "event" に慣れてきて、なんでもかんでも event ベースで 枠組みを作るようになってきた。いまでは自分が書く Python のコードでも この手法を真似しつつある。Python で "eventもどき" を実装するのはむずかしくない。 以下のようなテキトーなクラスを作って、使いまわせばよい:

class Event(object):

  def __init__(self):
    self.procs = []
    return

  def add(self, proc):
    self.procs.append(proc)
    return

  def remove(self, proc):
    self.procs.remove(proc)
    return

  def fire(self, *args):
    for proc in self.procs:
      proc(*args)
    return

eventベースの枠組みは並列プログラミングでとくに有効だが、 逐次的な処理でもこの書き方は役に立つ。と、いうのは、 ある処理を event を使って書こうとすると、自分でもそれまで明示的には 気づいていなかった “隠れた依存関係”をコード上に明示的に表現せざるを 得なくなるからである。逐次実行だと制御の流れそのものが文脈になるので、 見落としやすい依存関係をきちんと発見し、それをわかりやすいやり方で 切り離しておけるのは、とってもいい。とにかくソフトウェアには「分離」が必要だ。 この意味で、ソフトウェア開発で要求される技能というか「気質」は、 アルゴリズム設計なんかのそれとはまるきり違う。

そういやー、こないだ会社で「片付け士」なる肩書きの人から整理整頓の重要さを聞いたんだよ。 でも、はっきりいって新山にはたいして役に立たなかった。なぜなら、自分でいうのもなんだが、 整理整頓はオレにとって普段の「組み込みバックグラウンドタスク」としてあまりに一体化しているために、 ある意味でオレは「整理整頓そのものが人生」という感じになってしまっているからだ。 品物も人間関係もきれいサッパリ切り落とす、という方針でして…。 そもそもソフトウェア開発の本質は、新山にとっては整理整頓だと思っている。 いろんな要求やら制限やらを区分けし、自分の世界観に従って 「あるべきところに」設置したもの、それがソフトウェアだ、というわけだ。 そんな新山にとって、整理整頓に (つまり設計開発にも) 重要な要素は 「達観」と「思い切り」である。物事を整理するためには、さまざまな現象が 自分の頭の中で、収まるべき所に収まっていなければならない。 そして一旦それが決まったら、あとはすみやかに、ためらうことなく一気に 遂行せねばならない。新山はこのようにものすごい直観主義なので、 他の人はいつも見ていてハラハラするらしいが、 余計なためらいはかえって事故のもとになる。 しかしいつもなかなか達観が得られずに苦労するのだが。

ところで、「イベント指向」「データフロー指向」といわゆる "hollywood principle" って意味的には具体的にどう違うのだろう? なんか、どれもお互いに関連してそうな気はするが、どれも別々の階層のことを 言っているようにも思える。まだはっきり自分の中で整理できてない。

(23:34)
実生活にみられる pub-sub とポーリングのトレードオフについて。

新山は最近、メールがきたら通知する機能を使わないようになった。 なぜなら、中途半端なメールに反応してると気が散って、かえって効率が悪くなるからだ。 それよりも、コーディングが一息ついたときにメールをチェックすることを好む。

これは、まさに pub-sub とポーリングの利点や欠点と同じだ。 ポーリングは、メールが来てもすぐには反応できないかわりに、自分のペースで仕事できる。 いっぽう、メールチェックをしてばっかりで仕事が進まない人は、 まさに livelock の状態になっている。

/26 [Mon]


(20:25)
たいていの人は合理的にものを考えないし、合理的な理由では動かない。 (新山をふくめて)

もっと卑近なでいうと、人は必ずしも機能の多いほうを望むわけじゃないし、 必ずしも値段の安いものさえ望まない。「もし人が合理的ならこう判断するはずだ」という 憶測にもとづく設計は、じつはあんまり成功したためしがないのかもしれない。 とりわけ営業や工学ではこれはそうである。

/25 [Sun]


(10:49)
あるところで聴いて印象に残っていた曲が Gnarls Barkley "Crazy" というのだと知った。最近いろんなところでカバーされている。

よく覚えている、覚えて覚えて覚えているよ、気がトンだ時のことを
あの場所にはとてつもない悦びが支配してた
自分の感情さえ反響するようだった
広い宇宙の中で

その場所にいたとき
まったくおかまいなしに
ああ、気がふれていたよ
でもそれは世の中を知らなかったからじゃない
知りすぎていたからだ

俺はキチガイになってしまうのか?
僕はキチガイになってしまうのか?
アタシはキチガイになってしまうのかしら?
たぶんね…

どことなく哀しい曲調なのがいいよね…

(15:30)
“を救う会”という文字列を検索してみると、日本には心臓移植が必要な子供がこんなにもいることがわかる。
(20:27)
きょうは某所のジュンク堂6Fで半年ぶりぐらいにコンピュータ関連の書籍をスキャンした。 そして、ムカついた。あいかわらずまともな本が極端に少ない。 新山はいつも書棚を端から端まで見て回るのだが、全部で2時間ぐらいかかった… それでも買いたい本がなかった (翻訳なら原書を買ったほうがいい)。 これほど多くの書棚を占めておきながら、これほどクズばっかりというのは、どういうことだ? 唯一まともだと思ったのは、 共立出版の「アルゴリズム・サイエンス」シリーズ である。教科書的な本なのだが、結局、これくらい内容が濃くないと値段とつりあわない。そうでなければ、 誰が「下手なサンプルコード + 不完全なリファレンス + 作者のヨタ話」の寄せ集めに 2,500円也も払うものか。 消費者をナメるんじゃない! そもそも、ぜんぜん汎用的でない (きわめて限られた状況でしか使えない) 知識をいっこ学ぶだけのことで、 なぜそんなに何千円 + 何時間ものコストが必要なのか。 世の人間 (=新山) はそんなヒマないし金持ちでもないし本を置く場所もない。ひとついえることは、この時代に 「webを見ればわかる程度の内容をわざわざ解説書に書く」ことのアホらしさである。 紙に書かれて値札をつけて売られている情報なら、ナンでも (Dosaでも) ありがたいと思われる時代は まだ続いてるのだろうか? ただダーーーーっと機能や関数だけを並べてある本にはうんざりだ (どうせ書くのが楽なんだろうケド)。競馬の予想屋じゃあるまいし。 プログラミングの本なら、本当に覚えるべき関数はどれで、 それはどのような特性があって、どのような問題に一般的に応用できるのかを教えれよ! それからよくある "cookbook" のたぐいは、あまりにも状況が特化されすぎてるうえに、 さらにほとんどは何のヒントも解説も改造の余地も与えられてなくて、繰り返すが、あれでは 「想定されてないことはナンにもできないバカ」を増やすだけだ。事例から学ぶという 方向もありうるが、そんならもっと効率のいい方法があるはずだ。さらに最近は 「題名/装丁だけを見るとまともな本っぽいが、開いてみると中身はスカスカのガタガタ」 という新たなひねりがレパートリーに加わった。わりと分厚い本で、見た目もいかにも堅物っぽい本なのかと思いきや、 開けてみたらみごとに騙された。いや、世の中にはいろんなトリックがあるもんだと思ったね。

あたりまえのことだが、たいていの技術書や入門書は、独学者向けに書かれている。 しかし、この業界はいまでも徒弟制度がいちばん有効な教育方法であるので、 企業なんかで同僚にしょっちゅう質問したり、技術をいくらでも「盗む」機会のある人には、 はっきりいって技術書や入門書なんかいらない。書籍はそういう機会のない人を対象とすべきだ。 「情報量」だけでは意味がない。そういう意味で、新山はいわゆる「専業」ライターによる 書籍をあまり信用してない。あるいは実用主義でなく、ほんとに体系立った入門書を書くなら、 アルゴリズムとデータ構造の基礎ぐらいしっかり教えろ! でもほとんどの場合、これは大学の教科書の仕事になってしまっている。 非常に脱力する。 あと、プログラミングの簡単さを必要以上に強調する本は信用できない。

ふうーーーーーー…!

てくるで (ところで) ついでに書いておくが、「みんなのPython」はあいかわらずダメな本だった。 (でもWebサービス編はあんがい方向性としてはいいかも? と思ったが、例題がダサい)

(21:35)
てくるで最近、オーディオブックというものを買ってみたのだが、これはなかなかよい。 日本ではまだオーディオブックというと語学とかビジネス書 (どうでもよろ) ぐらいしかないが、 米国では通勤やドライブのときに「本を聴く」という文化がかなり発達しており、 なにか話題の新刊が出ると、かなりの割合でオーディオブック版 (と、"LP"いわゆる大活字版) も一緒に出ている。 書店にも 1フロアの半分がオーディオブックみたいな店がある (Union Sq. の BN とか)。 オーディオブックといっても、盲人向けの Daisy規格ではなくて、ふつうの音楽CDだ。 さらに、米国では結構な割合のオーディオブックが、著者みずからが朗読している。 で、オレが買ったのは自伝なので、著者が実際に自分の身に起こったことを語っているわけだから、 これはファンにはたまらないし、そのへんのドラマなんかよりもずっといい。 新山の買ったやつは CD7枚組 (全9時間) で、これで $24 なので、 Amazonの送料を足しても全然おトクだ。 はっきりいって、日本のコンピュータ関連書にムカついてる場合じゃない!

/24 [Sat]


(11:57)
今日もなぜか朝からホットケーキを食ってしまった。腹いっぱい。

てくるで (ところで)、最近うちの会社でもようやくバグトラッキングをやるようになった。 なぜなら社内の開発部員が (今までより1人増えて) 3人になったからで…。 今までの「口頭で報告 → 修正 → 文書化」という流れが追いつかなくなったためである。 といっても、Bugzilla などのシステムを使うようになったわけではない。 新山のいうバグトラッキングとは、単に「バグに一意な名前 (ID) をつける」ことで、 それだけが重要だ。逆に、名前をつけていなければ物事はトラッキングできない。 いままでは、バグの現象を指し示すのに「X月X日に○○さんが言ってた、あのバグ」などと言っていた。 バグを『参照可能にする』ことこそがバグトラッキングの本質で、 『記録する』のは二次的な問題だと新山は考えている。 まあ、実際にはどっかに記録しておかないとだめなのだが、 それはメールでやろうが、データベースでやろうが、そっから先は枝葉の問題である。 しかし「バグに名前をつける」ということは仕事のやり方に関する問題である。 そのためにはヒトの行動規範を変える必要があり、組織でいちばん重要な (そして骨の折れる) 過程はここであると思う。そのためには垣根をなるたけ低くしておかねばならない。 新山がとくに気をつかったのは、社長 (うちの会社では社長もバリバリの製品テスターである) がバグ報告をするさいに、負担にならないようにするということだった。 新山はバグトラッキング用ツールの導入にはかなり慎重だる。 開発がかなり組織化・体系化している会社ならともかく、うちのような会社では 今のところツールの都合にふりまわされる危険性のほうがずっと高い。 アホみたいに簡単なやつなら入れてもいいけど、いまのところはメールを整理しておけばいいや。 この枠組みが確立してから、既存のシステムをそれに合わせるのは、その逆よりもずっといい。

/24 [Sat]


(00:47)
Dear Diary,

Still drunk.

/22 [Thu]


(08:14)
GvR、Pythonの言語仕様を「数年間は」変えないことを提案。 ところで Python3 を使ってる人っているのかね? Python は言語としては、もう世界的な「普及期」を過ぎてしまったような気がする。 世の中に現存するほとんどのコードは Python2.3/2.4用あたりに書かれていて、 これからの拡張が受け入れられるまでには、今までよりもずっと時間がかかるだろう。 おっと、会社行かなきゃ。(ちなみに会社ではまだ 2.5.4 を使っている。 ある人の言うところによれば、"still the best Python version for Windows.")
(20:15)
より正確にいえば、
Python3 == IPv6

/21 [Wed]


(19:45)
ようやくハナが匂うようになったが、きょうは匂わないほうがよかった気がする。
(23:04)
ある人々の法則:

/20 [Tue]


(20:56)
きょうは、きのうとはうって変わって「鼻づまり期」に入ったようだ。 鼻がバカになっているので、ぜんぜんモノが匂わない。

/19 [Mon]


(22:50)
きょうはー、ツラかった。 朝、誰もいない病院へ行くと「ただのカゼですね」と言われたのだが、 実際、熱はほとんどないのだが、鼻水が滝のように出て あやうく脱水症状になるところだった (下品ですいませんね)。 はっきりいって、花粉症のときよりもつらい。まったく仕事に集中できないのだ。

どうでもいいけど (どうでもよろ)、 U2はなんでこんなに相変わらずカリスマなんだろう? 新山にはちっともわからない。オバマが好きだから? ほかにも Apple に肩入れしたり、 いまいちハリボテくさいバンドだ。どうでもよいが (ようでもどろ)、新山は U2 はぜんぜん好きじゃないのに、 なぜか "I still have found what I am looking for" をいまだにかなり歌えたりする。 なぜなら中学校のときの英語の先生がおかしな人で、授業中に教材として生徒にU2を聴かせていたからである。 こんなのあり? ちなみにこの先生はおボウさんでもあり、何度かうちにお経を上げにきた。 いま考えると、かなり型やぶりな先生だったと思う。

/18 [Sun]


(09:21)
今朝は起きてまず最初に思ったことが 「なぜか無性にホットケーキが食いたいずら」 ということだった。コンビニへ行ってホットケーキミックス (と卵) を買ってくる。 帰るとamazon.comから本が届いていた。
(21:19)
ビジネスにおける価値観と、研究開発における価値観の違いについて。

つねにパクられるような存在でありたいものです。

(22:13)
Python 40周年記念インタビュー (Graham Chapman はボール紙で登場)。すげえ。 John Cleese とか Michael Palin とかは「それなりに」老けてるのに対して、Eric Idle はだいぶ印象が違うな。 Terry Jones は完全にヤク漬けのじじいみたいだ。

/17 [Sat]


(19:47)
なんか風邪っぽい。熱はなさそうなのだがノドがいたいので、きょうは一日家でじっとしてることにし、 センタクをしたり、エアコンの掃除 (秋になったので、もう使わない) をしたりした。 あとは、シャツのボタンがけ。

そのあと時間があったので、Software Engineering Radio を聴く。 これは、エピソードによっては当たり外れが大きくあるのだが、 Episode 59: Static Code Analysis の回は非常におもしろかった。将来的には、いま静的コード解析をやってる人々の間から チューリング賞受賞者が絶対出てくるだろうと思う (もう出てるのかもしれない)。 正当性の検証とか、そういう分野ではすでに受賞者が出ているが、まだ一般にはなじみがない。 しかしソフトウェアの監査・検証手法はこれから ますます一般に普及していくだろうし、普及させる必要があると思う。 なぜなら、望むと望まざるとにかかわらず、今後ともソフトウェアは巨大化する一方だろうから。 (そして、そのほとんどはバカがいいかげんに書いたコードになる運命だろうから!) ともあれ、新山はソフトウェア検証には非常に興味がある。 なぜならこれは人間がいかに「筋道をつけて考えるか」を支援する技術であり、 まさにハードコアな計算機科学そのものだ。機械学習にテキトーにデータを投げて、 他人はおろか自分自身をも煙に巻いてるどっかの研究分野とはおおちがい。

…いっぽうで、ソフトウェア“開発”手法のほうは、今後もあいかわらず いかがわしい似非科学のままだろう。新山は (馬鹿にしつつも) これまでわりと いろんなソフトウェア開発に関する文献を読んでみたのだが、どれも感心しない。 どれも「手法」などと呼べるほどマトモなもんじゃないのだ。 こいつらは「必ず unittest を先に書きましょう」とかいう教条主義になるか、あるいは曖昧すぎて ただ意味のない儀式をくりかえすだけの密教になる。ようするに、どっちもまだ“宗教”のままである。 これは政治における「なんとか主義」という分類と似ている。『共産主義』とか、 『新自由主義』とか、『社会民主主義』とか、名前はついていても、それらはあくまで茫漠とした 方針もどきにすぎない。具体的に個々のケースでどのようにポリシーを策定するかは、 結局のところ莫大なデータと細かい分析によって変わるのだ。にもかかわらず、 「××主義」という名前だけが一人歩きして、特定のカリスマ的人物の言ったことを “信奉”する頭のキチガった人々が世の中には多く存在している。 ソフトウェア“開発”手法もこれと同じ。こっちは、しばらくは (あるいはもしかすると永久に) このままだろう。ちょうど政治のそれと同じように。

てくるで、この番組を聴いていてふと思ったのだが、 近年のプログラミング言語設計の流れとして、言語の中の 「より宣言的っぽい部分を増やす」というのがあるような気がする。たとえば Lisp (+Python) の with や、C# の using などは、 どちらも「言語をより宣言的にする」構文とみなせる。 言語を宣言的にすることのメリットというのは、意味的な制約 (たとえば「fopen() 開いたファイルは必ず fclose() で閉じなければならない」など) を 単純な、機械的な仕組みによってチェックできることだ (ただしそのかわり書き方の自由度も下がるけど)。 すべてが手続きに分離されているような言語だと、これは非常にむずかしい。 いっぽうで、prolog のようにすべてが宣言的なのも行きすぎで、 まだ中間点はどっかほかにあることになる。

(23:45)
大阪について、ある人からメールをもらったので、つけたし。 いまから考えてみると、あらためて思うのは江戸と大阪の地名の「語感の違い」である。 うまく言い表せないが、江戸の地名は「かきくけこ・さしすせそ・たちつてと」行の音が中心で、 大阪の地名は「なにぬねの・はひふへほ・まみむめも」行の音を中心に作られている、 ようの気がした (実際に数えたわけでない)。だから江戸の地名は、なんだかカクカク、 パキパキした響きの名前が多く、これは新山の印象ではいかにも「江戸っ子」の好みに合っていたのではないか という気がする。これにひきかえ、大阪の地名は口当たりがやわらかく、 悪く言えばやや間が抜けて聴こえる。こんなのも「大阪っぽさ」に入るのだろうか。

それにしても、大阪の地名は「浪速」とか「戎」とか、読み方で一瞬つまるような漢字がけっこうある。 でも「難波」は「なにわ」じゃなくてストレートに「なんば」なのな…ヘンなの。 中でも「放出」には声をあげてゲラゲラ笑ってしまった。 たいていの変な漢字の読みには慣れているつもりだったが、 これにはヤラレタ。

/16 [Fri]


(21:20)
どんな言語においても、いちばん言うのが難しい言葉って知ってるかい?

それは「ごめんなさい」だよ。

-- Desmond Tutu

Document ID: 768783af2b341bb402c2ccfd0bb1a6ef

Yusuke Shinyama