Happy My Life

日常とか技術とか

「lsを読まずにプログラマを名乗るな!」を読んでみて

ということで、私の周辺では話題沸騰のlsを読まずにプログラマを名乗るな!を担当編集者さんより頂きました。この本の編集者さん、Android NDKネイティブプログラミングを出版した際に担当していただいてた方だったので、その縁で。

ちなみに私は「lsのソースを読まずにプログラマを名乗っていました、ごめんなさい」というクチです。OSSなコードって本当に必要な箇所しか読まないので…。

lsのソースコードを解説している本

で、この本は一言で言うと「lsのソースコードを解説している本」です。それ以上でも、それ以下でもないです。これは、筆者さんのtweetで見かけたのですが、実際その通りだったので。

ls本体は4882行のls.cファイルなので、grepをさほど駆使せず読める分量です。ソースコードの量は多くないですが、内容を理解するには、POSIX、各種アルゴリズムC言語の仕様などの多方面の知識は必要となります。

この本では、そのようなlsのソースコードを、表示の整列、再帰、国際化といった感じで幅広く取り上げて解説しています。読み進めていくと、自分の知識が弱いところが分かってくるので、あとは、その弱いところをこの本で勉強するなり、Web検索して理解を深めていく、という読み方がちょうどよいかなと思いますね(個人的にはシグナルやlongjmp()などの解説は勉強になった)

あと、学生さんは、この本とlsのソースコードを教材にLinuxなどのUnix系OS上で動くlsコマンドをpythonrubyなどで再実装する(まさに車輪の再発明!)のもよいかもしれないですね(C言語のソースが読める学生さんは減ってきてるらしいですが)

タイトル、帯が

ただ、内容を理解していくと、タイトルや帯は煽り気味な印象がありますね。帯には「型に学び・ハマることで真の自由が手に入る」って書かれてたので、読む前は「○○の手法(アルゴリズム)をlsのソースコードから学ぶ、みたいな事を書かれているのかな?」と想像してたのですが、読み進めていくうちに「ソースコードの解説がほとんどだよなあ」と思い、読み終わったあとに、先の著者さんのtweetを見て、腑に落ちたという流れがあったので。煽るタイトルは本の寿命を縮めてしまう気がするんですよね。

ってな感じで、lsのソースコードが気になる人にはオススメです。