kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

『Coders at Work』ドナルド・クヌースの章

 

Coders at Work プログラミングの技をめぐる探求

Coders at Work プログラミングの技をめぐる探求

 

図書館にあったので借りてきました

偉大な、っていうか伝説クラスのプログラマー15人へのインタビューをまとめた本
聞いてるのはピーター・サイベルというこれまた良い本を書いているプログラマー
端から端まで面白そう

返すまでに読みきれるかと言うと微妙だし
どのページをとっても大事なことが書いてありそうなんで
1章ずつでもなにか書いていこうかと

第15章 ドナルド・クヌース

章のあいだに関連はなさそうなので好きな順に読んでいこうかと
まずクヌース先生から

TAOCP

クヌースといえば『The Art of Computer Programming』通称TAOCPの著者
この本に登場する人にも読まれまくっているようです

ちょうど私が今書いている部分のように、私は数学誌にある材料から取りかかりますが、それは多くのプログラマが学んでいるとは期待できない数学の特殊用語で書かれており、私はそれを少なくとも自分が理解できるくらいに特殊用語を除き、その基本的なアイデアを伝えようと試み、可能な限りシンプルにしようとしますが、そうした結果として得られるのは、私の本のどの5ページを取っても誰かの一生涯分の研究になっているということです。

買いたくなっちゃうじゃないですか
ときどきブックオフで見かけるけど、さすがにこれは、と思って
腰が引けているのですよ

それから私はこの領域を探索するとき、実際的なプログラマにとって最も重要なことを求めるようにしています。(略)平衡木やAVL木のようなものでさえ、ツリーが非常に大きくなるとわかっている場合以外は、自分のプログラムで使うことはありません。
――― 何を使うんですか?
普通の二分探索木にちょっとしたランダム化の仕掛けを入れたものを使います。

クヌース先生でもそうなんだと思うと何か安心感

TeX

TeXとMETAFONTの作者でもあります
バグを見つけたら金一封、でも有名

TeXを最初に書いた1977年から78年には文芸的プログラミングは当然なくて、あったのは構造化プログラミングです。プログラムを大きなノートに、鉛筆を使って手で書きました。
6ヶ月後に、コードの全体を一通りかきあげた後、コンピュータに打ち込み始めました。

どうかしているとしか(ほめている・・・のかな(驚いている

『The Art of Computer Programming』の1-3巻を書いていたとき、私はTeXのような大規模プログラム開発の形態に近いプログラムを書いてはいませんでした。おもちゃのプログラムばかりです。だからTeXは数や量に対する味方を与えてくれたのです。

はじめての大きなプログラムがTeX?(ほ(以下略

文芸的プログラミング

ソースコードにコメントを書くのとは逆に
文章の中にコードを書いていくっていうやり方らしい、
くらいしか知らなくて、ふーんまあわかりやすいかもね、程度にしか
思ってませんでしたがもっと深いものっぽいです

――― 『The Art of Computer Programming』とTeXを書くのに加えて、あなたは人にとって読みやすいコードを書くための文芸的プログラミングの考案者であり、提唱者です。

誰もやってないのはなぜだろう

コードはボトムアップに書いて、サブルーチンをだんだんと大きくしていき、より多くのことができることに自信を抱けるようにもできます。一方トップダウンで書くのを好む人たちもいます。
私が文芸的プログラムを書くときには、このどちらでも好きな方を選ぶことが出来ます。
心理的に「今やれる準備ができていて、次にやったとしたら最も満足を与えてくれるのはどこか?」と考えます。プログラムを人間が理解できる順序にできるという自由は、私にとってとても重要なのです。 

たしかにそうかもな
このソースって読めるのかな

と思う一方

文芸的プログラミングをやっていて、詳細化するうちに順序を大幅に並べ替えたことはありませんか?意識の流れのままというのがいつも最適な組織化の原理であるというのは私には想像しにくいのですが?

だよねー
聞き手が一般人じゃなくてピーター・サイベルだっていうところが味わい深い

これまでそういうことはありませんでしたね。

そうですか(ほじほじ

しかし興味は湧いた

ほか

構造化プログラミングが不変条件のアイデアと理解できるブラックボックスの作り方を教えてくれました。

不変条件、あっちこっちでとても大事そうに言われているんだけれども
どういったものがどう大事なのかよくわからない
よい本があったら知りたい

再利用可能ソフトウェアが過度に強調されていて、それは箱を開けて中に何があるか覗くことが決してない世界です。そんなブラックボックスがあるのは結構ですが、ほとんどの場合箱の中身を見ればそれを改善することができるし、箱の中身を一度知ればよりうまく使えるようになるのです。

車輪の再発明なら自分にもできる
ちょっと元気が出る