2010年1月24日

アレグザンダー祭りで印象に残った一言など

[ イベント ソフトウェア開発 休むに似たり ]

先日、オブジェクト俱楽部のイベントアレグザンダー祭りに行ってきました。もりだくさんすぎて、未だに消化しきれていないのですが、一点強烈に印象に残ったのは、メインスピーカのJim Coplien氏による、おおむねつぎのような発言です。

俺たちは有用性が証明されたかどうかでなく、流行や気持ちよさ、直観、「のみ」で技術や方法論を追いかけている(ことが多い)

今週になってからtwitterでの議論の中で、こんな発言がありました:

if your only learning comes from asking other people what *they* think - how can you claim to personally know anything?
(このひとは、The Art of Unit Testing: With Examples in .net の著者です。良書なので近々紹介します)

これは開発関連のツールに関連した議論の中で出てきた発言です。意図は、先のJim Coplienの発言と同じだと、私は理解しました。

肝に銘じます。

2009年2月20日

ひとり勉強会の方針

[ 休むに似たり ]

このブログ(別館)はじめてから3年です。思い出したようにしか更新していませんでしたが、今年からこころを入れ替えました。

唐突にはじめたVirtualMachine本のひとり読書会もそれなりに進んでいます。このあたりで自分むけメモとして、今年の「勉強」の方針を書いておきます。

原則編

このブログをはじめる前から数えると10年以上、長らく迷走していましたが、昨年末に簡単な原則に辿り着きました。

あくまでも趣味
わたしは仕事でプログラムを書きますが、個人的にやることはあくまでも趣味。もちろん、もしかすると仕事で役立つかもしれないけど、それは結果的にたまたまそうなるかもしれないだけ。
自分が楽しいと思うことしかやらない
趣味だからな。「お勉強」じゃないのだ。
途中で投げない
趣味だからこそ真剣に。本当に楽しいことなら投げないし。
色気を出さない(外部の基準でうごかない)
これからはXXが流行るぞ、とか、いまみんな△△読んでるなあ、とか、これやっとくと食いっぱぐれないかも、とか、プログラマとしてはこれしっとかないとまずいらしいぞ、とか、そういう、「楽しい」以外の動機で何かをやろうとしない。
短時間に手を広げすぎない
楽しそうな知らないことはいくらでもあるので、手を広げすぎるとどれもまともにできなくなります。

実践編

この半年くらいでやるつもりのこと・やりたいことは以下の通り。

VMについて学ぶ
言語VMだけじゃなくてISAに対するVMも一通り。教材は今読んでいるこの本
VM何か作る
本読むだけじゃつまらんから、何か作りたい。現実的には言語VMかな。CLIの実装もやってみたい。現実的かどうかはわからないけど、ハードウェア層のすぐ上で動作する言語VMもつくってみたい
VMのソースをいくつか読む
どの程度の深みまで読むかは読みながら考える。読む対象はMono, Lua, Factor
Lispをまた学ぶ
Little Schemerをとっかかりに、継続・マクロを使えるようになること。Y combinatorは分からなくてもよし。
視覚化をがんばる
道具はR言語とProcessing。

ここに書いている以外のことは、iPhone楽しそうだし、Haskellも面白そうなんだけど、(原則として)短期的にはやらない。時間は限られているからね。

2006年3月 3日

ハチミツとソフトウェア

[ 休むに似たり ]

Rubyのまつもとさん曰く

あの時にも考えたように「正しいことを指摘されると腹が立つ」というのが一つ。もうひとつは彼の文章にはプログラミングに対する愛が感じられないのがもう一つ。彼自身もプログラミングする人のはずなんだけどな。

Joelの本についての、まつもとさんのコメントです。

まつもとさんのこの文章を読んだ時は、そういわれればそうだけど商品としてのソフトウェアを作っている立場だとJoelのいってることはかなり納得できるんだよなー、でもまつもとさんの気持ちも分かる(気がする)な、くらいで流していました。

そして今日新聞を見ていたら、ハチミツ通信販売の記事がありました。とびきりのおいしさを主張しつつ、蜜切れのいい、ワンタッチキャップという合理性、そして驚きのハチミツパワー、とかいうありがちな煽りにちょっと萎えます。

これだったら、わたしが時々利用しているハチミツ専門店のほうが好ましいよな、と思いつつ広告を眺めていると「当社の工場はISO9001認証工場です」という主張が目に入りました。これがJoelか(←はげしい飛躍)

まつもとさんはいわばハチミツ専門店で、Joelの立場はISOなんとか認定工場を仕切るマネージャ的なのかな、と考えればすっきりするな。街のレストラン対チェーンのファストフードになぞらえるほうが適切かもしれません。ファストフードの料理には愛が感じられないんだぜ。でも確実に一定の品質のものを提供できるよ。

ソフトウェアにおいて、『ハチミツ専門店』はビジネスとしてありうるのでしょうか。あるといいな。

日々組織でソフトウェア商品をつくってるサラリーマンプログラマとしてはJoelに賛同するんだけど、いち個人プログラマとしてはまつもとさんの感覚にくみしたいです。と今思いましたよ。

2006年2月11日

わざわざ「自動生成」と名乗るものは

[ ソフトウェア開発 休むに似たり ]

System.exit(); - 自動生成ってなんかダサい

自動生成ってなんかダサいと思います。 いや、ダサいとかそうい問題じゃなくて、必要な時と場合もあるってのはわかるんですけどね。 自動生成ってのは、なにかのギャップを埋めるための暫定対応的なものなんじゃないかと思います。

同感。

例えばバーチャルマシンを例にあげると、あれって要はマシンが実際に実行するための命令を自動生成しているわけですよね。

てゆーか、コンパイラってマシンコードの自動生成器ですよね。

ソフトウェア開発の世界では、自動生成されたものをいじることが想定されていない場合やいじる必要がない場合、そのメカニズムを「自動生成」と呼ぶことはないように思います。JavaコンパイラがJVMコードを自動生成する、なんていいませんよね。自動生成を名乗るメカニズムは、生成されたものに人間があとから手を加えることを想定しているのではないでしょうかね。

生成されたバイトコードに手を入れないと使えないJavaコンパイラみたいなものですね、といったらいいすぎかな。初期のC++コンパイラはCのコードを生成するプリプロセッサでしたが、そっちのほうが近いかな。

自動生成といえば、設計モデルからコードを自動生成する、とか、制約として記述した仕様からコードを自動生成する、なんて話があります。私はこれにも懐疑的なんですが、書いてみようとしたらあんまり知識がない上に考えがまとまっていないことが分かったので出直してきます。

2006年2月 5日

日本人も日本語を学べ

[ 休むに似たり ]

極東ブログ: 日本人が日本語など学ぶ必要はない

ブログとかに向いたくだらないテーマに「英語を学ぶ前にしっかりとした日本語を学べ」とかいうのがある。あまりのくだらなさに即終了でもいいように思うのだが、当方もくだらないブログなんでそんな雑談を。

極東ブログの中のひとはわたしなんかよりよっぽど明晰な切れ者で、わたしよりずっと日本語を上手に扱うひとだと思っています。そのひとがこんなことを言うとは驚きです。

わたしは母語をちゃんと扱えない人間が外国語を学んだってしょうがないといいたいです。なぜなら人間は母語で考えると信じているからです。

アメリカで出版されている英語の文法書を眺めると「英語を使うため」の文法書であることがよくわかります。学校で使ってた日本における日本語の文法書を読んでも、日本語の使い方はさっぱりわかりません。思想的にはアレですが、本田勝一氏の『日本語の作文技術』を読むほうがよっぽど日本語の使い方が分かります。

アメリカ人はしっかりとした英語の教育をされているが、日本人はちゃんと教育されていないのではないかと私は疑っています。教育の必要がない一部のセンスあるひとだけが、しっかりとした日本語を使ってしっかりとした思考をしています。その人たちの多くは、自分が「しっかりとした日本語をつかっている」という自覚がないのかも知れません。

(「日本語が論理的じゃない」とかいう俗説がはびこるのは、教育の不備によって「日本語を論理的に使えるひとが少ない」のが原因ではないかと思うことがあります)

証明は困難ですが、ひとは言葉で考えていると私は考えています。System.exit();のこの記事によればウィトゲンシュタインも言葉によらない思考である「私的言語」はありえないといっているそうです(虎の威をまごがりちゅう)。

日本人は日本語で考えます。だから日本語をしっかりと操れなくてはいけません。別に英語をしっかりと操れてもいいですが、とにかく思考の足場となる母語が必要です。日本に暮らしながら英語を母語とするのは難しいでしょうから、日本にいる日本人は日本語を選択するのが現実的でしょう。

(英語などの)外国語も日本語もコミュニケーションの道具です。母語である日本語は思考の道具でもあるのです。

とはいうものの「ひとが言葉で考えているかどうか」という証明も反証も困難(あるいは不可能)な問題への立場が根っこにあると思うから、同じ考えじゃないひとを納得させるのは無理なんだろうな。

と台無しにして、この論をしめくくります。

追記:

「ちゃんとした日本語」といったときに、過剰にウェットで装飾的で形容過多な日本語を思い浮かべる方がいるかもしれません。たとえばこんなんです。

都会の雑踏に疲れたわたしの頬を、ふと撫ぜた氷の女王の息吹のようなそよ風に、清冽な冬の静寂な訪れを予感した

いまわたしがでっちあげた文章なのでどっちにしても悪文ですが、こういう装飾を上手にすることはこの論でいう「ちゃんとした日本語」の範囲ではありません。また、わたしがでっちあげたこんな悪文ではない本当の「美文」レベルをここでいう「ちゃんとした日本語」に求めているわけでもありません。