知識のブラックホール

本とかオーディオブックとか。知識収集活動全般。

『プログラミングの心理学』をコツコツと読み進める試み その11

audiobook.hatenablog.com

ここから第4部。

『第4部 プログラミングの道具』

欠陥を持った道具、設計のまずい道具を使えば、最高の職人すら劣った作品しか生み出し得ず、それゆえに劣った職人の地位に転落する。 いかなる職人も、もしその職における最高の仕事を目指すなら、そんな道具を受け入れはしないであろうし、またいかなる雇い主も、仕事の質を大切に思うなら職人にそのような道具を受け入れよとはいわないであろう。

日本には仕事の質を要求しながらひどい道具をあてがう雇い主は随分とたくさんいると思う。そう、経費削減の名のものtに。 何しろ「弘法筆を選ばず」ということわざがまかり通っているので。

道具のせいにするなという意味なんだろうけど、腕いい人間は、道具が悪くても結果を出せるという解釈が一般的なのか。プロ野球選手にしても道具にはかなりこだわりを持っていると思うんだよね。少なくとも何でもいいという選手はそうはいないだろう。

『「第4部 プログラミングの道具」へのコメント』

著者の回顧録? 1960年代あたりのソフトウェア開発事情がかいま見える。どうもパソコンの登場によるインパクトは大きかったようだ。

プログラミング言語

(前略)彼のこの分析は、人、つまりプログラミング言語を使わなくてはならない可哀想な牛馬たちには言及していない。

ワインバーグ先生、その物言いはあんまりです。いくらなんでも牛馬なんて…。

プログラミング言語自然言語

だが、自分が使っている言語に対して人が持っている理解は、言語とは表面的にしか似ていないものに「言語」というレッテルを貼ってしまう程度の浅薄さであるのがふつうである。 だから、われわれがコンピュータとやりとりするために用いる記法の体系が「プログラミング言語」と呼ばれることになったのも、決して不思議なことではない。

ずいぶんと文句を言いたそうな物言いですね、ワインバーグ先生。まあプログラミング言語が言語というには不自然だという点については、同意です。

プログラミング言語は書き言葉であり、他の書き言葉とちょっと似てはいるものの、音声言語としての体系を背後に持っていないという点でそれらと違っている。

関数の読み方で揉める元。mallocが筆頭(メイロック派、マロック派、そしてエムアロック派の宗教論争はエディタをめぐる宗教論争とともに、そう簡単に消滅しそうにはない)。そうはいってもかなり英語の影響を受けていると思うのですが。

神様はお祈りを、コンピュータはプログラムを、あらゆる方向から同時にお聞きになる。

皮肉込めすぎ。そうすると、エラーメッセージは神のお告げかよ。

自分のプログラムを審美的対象として眺めてみる、ということをたまにはしてみないプログラマは、真のプログラマとはいえないだろう。

言いたいことはよく分かるが、現実は厳しい。どれだけひどいコードを見ては、そのうえにひどいコードを書き足すという恥の上塗りに等しい行為に従事している人間がいるというのに。

プログラマの間では、粗野でタフで実践的というのがはやりだが、プログラマなら誰でも心の憶測では、プログラムは動くだけでは不満足であり、それとは別の意味で「ちゃんとして」いなければならないのだ、ということを知っている。

動くだけでは不満足、には同意。個人的見解として、使いやすさというか、使い勝手の良さを求めたい。
コードの美しさにこだわる人も多いけれど、それは数学的な美しさなんだよね。学校のプログラミングの演習課題としては満点なんだろうけど。 使いやすさ度外視では、どんなに教科書的で「キレイな」コードであったとしても、個人的にはどうかと思う。

どちらかというと、BSD的な理論重視のスタイルよりも、Linux的なまずは動くものを作ろうぜ、の方が性に合う。

プログラミング言語の設計

一方ばかりが譲り、もう一方は譲られるだけ、という関係は、十分人間的だとはいいがたい。 それは両者のうちのどちらかに、性格のゆがみを生じさせがちである。

アメリカ人の書く文章とは思えない。まあアメリカ人全員が強引だとは言わないにしても。

人はコンピュータが考える(の)と同じように考えることはしない。 だからこそわれわれはコンピュータを使うのだ。 プログラミングとは、高々異なる種族の間の情報交換でしかありえない。(脱字は引用者が補った)

コンピュータを人間と違う考え方をする種族、という捉え方で見るのは斬新。
そういう意味では「プログラミング言語」というのも実は自然な表現か。アメリカ人である著者が、機械を生物のように捉えるのもまた新鮮に見える(ちょっと偏見かな)。

この章で述べられている話題は自然言語の設計規則?など、どうも高尚すぎて浮ついているように思える。 ざっくりと言語間の優劣について、心理的な影響を取り上げつつ示唆されているようにも読み取れる。。明確に言語の優劣を述べている訳ではないが、どことなく「 ハッカーと画家 コンピュータ時代の創造者たち 」の言語X云々というエッセイを連想させる。

『まとめ』

人が成して発明のうちに、いまだかつて人を変えなかったものがあったか。

含蓄に富んでいて素晴らしい。技術の発明は事故の発明、とかいうのを聞いたことがあるが、これと相通じるものがある。
「人を変える」というよりは、「社会や文化に影響を与える」、という方が自然かな。 プログラミング言語はともかく、情報技術はまだまだこれからも社会を変化させ続けるだろうし。

『第11章 「プログラミング言語」へのコメント』

著者の思い出話。面白いと思ったのは以下のくだり。

黒板は白板に取って代わられたが、基本的な機能は同じだ(そしていまなおどちらも、十分頻繁には消されていない)。

仰せの通りで。

あと2章。続きます。

プログラミングの心理学―または、ハイテクノロジーの人間学 25周年記念版

プログラミングの心理学―または、ハイテクノロジーの人間学 25周年記念版