あったらしくるえるはてなくしょん

id:kskmeuk あったらしく

言語設計者たちが考えること (THEORY/IN/PRACTICE) の オラの村キャンペーン ebook を読んだよ!! (やっと...)

言語設計者たちが考えること (THEORY/IN/PRACTICE)

言語設計者たちが考えること (THEORY/IN/PRACTICE)

これは素晴らしい本でした! 言語について語るときに言語設計者が語ること - くるえるはてなくしょん の続きです。


目次
本書推薦の言葉
まえがき
1章 C++(ビャーネ・ストラウストラップ)
2章 Python(グイド・ヴァンロッサム)
3章 APL(アディン・D・フォークオフ)
4章 Forth(チャールズ・H・ムーア)
5章 BASIC(トーマス・E・カーツ)
6章 AWK(アルフレッド・エイホ、ピーター・ワインバーガー、ブライアン・カーニハン)
7章 Luaルイス・エンリケ・デ・フィゲイレード、ロベルト・イエルサリムスキー)
8章 Haskell(サイモン・ペイトン・ジョーンズ、ポール・ヒューダック、フィリップ・ワドラー、ジョン・ヒューズ
9章 ML(ロビン・ミルナー
10章 SQL(ドン・チェンバレン
11章 Objective-C(ブラッド・コックス、トム・ラブ)
12章 Java(ジェームズ・ゴスリン)
13章 C#(アンダース・ヘルスバーグ)
14章 UML(イヴァー・ヤコブソン、ジェームズ・ランボー、グラディ・ブーチ)
15章 Perlラリー・ウォール
16章 PostScript(チャールズ・ゲシキ、ジョン・ワーノック)
17章 Eiffel(バートランド・メイヤー)
18章 Rubyまつもとゆきひろ
あとがき
貢献者
索引

From 言語設計者たちが考えること (THEORY/IN/PRACTICE)

ちょっと読む順番なのですけど、実は1番最後のRubyの章… ではなくて、実はですね、貢献者のところを読んで、簡単に各章の登場人物がどういう偉人なのかを読むとよいと思います。

それから、各章については感想がわかれるところだと思いますが、少なくとも、15章のPerlラリー・ウォール)はやっぱり面白いし、18章 Rubyまつもとゆきひろ)が掲載されている日本語版こそが、真の姿だと思います。

このふたつの章はやっぱり期待通りというか、期待以上のクオリティです。

プログラミング言語ということを考えたときに、Larry Wall さんの用に、言語としての側面について、もっと考えるとよいのかもしれませにょね。確かに、論理や数学的な要素は大事ですが。それから、Matz さんの章も良いです。他の章でさんざん Ruby いいよみたいな話があって、満を持して登場なわけでして、そのことについてもコメントしてるとか、やはり日本語版おいしすぎる。

私は、最近は Python が好きですが、2章のPython はその哲学をある程度反映してて、ちょっと窮屈というか、殺風景なところがあります。けど、それもらしくて良いと思います。その方がPythonらしいですよね。

その他にもBASIC, AWK, Lua, Haskell, SQL, Objective-C, C#, UML の章が印象的でした。あと、意外というか、割と頻繁にですね、人月の神話―狼人間を撃つ銀の弾はない (Professional Computing Series)が脚注で登場します。全編を通じて。あと、同じくですね、割と全編を通じて、せっかく第1章で登場する、C++ が終始 disられててかわいそす…。

同じ本の中でも、各設計者がどこに注目しているかが、章ごとで全然ちがっていて、言語設計そのものの話題、コンパイラとの兼ね合い、それから並列性への考察、構造化やオブジェクトの考え方、また言語が実用的であるかや実践的であるかへの言及。はたまた、ソフトウェア工学というか、システム開発についての取組みについて、テストやデバッグの話題などにも触れている章があって、開発について、一気に複眼的な考え方を、超絶偉人フィルタを通して、超高速道路でフィーリングを伝えてくれる良書です。

ある程度のバックグラウンドがいると思いますし、誰もが全部の章を愉快に読めるわけではないですが、使ったことのある言語の章や、Larry さんや Matz さんの章はとても楽しいので、そこだけでもおすすめです。

SQL の章と UML の章に期待してなくてごめんなさい。

BASIC や AWK の章が実は面白いというのは、前に書いたんですが、さして期待してないかったSQLの章と、UMLの章のインタビュー内容が、すごくクールで、心震えたんですよ。

SQL の章で登場する、「実はまだ有名ではないことがチャンスだということ」。それから、UMLの章のドキュメントの話題と「1,000ページのマニュアル」の話などが、とてもためになります。みんな似たようなことを考えたことはあると思うんだけど、SQL の章のこの部分については、おお!!! と思ったし、UML の章の該当部分については、 すごく同感でした。詳しくはご自身で読んでね…♡

再利用性や継承よりもカプセル化が重視されてる

オブジェクトのよいところはカプセル化だって主張がわりとあったのが印象的でした。こう、オブジェクト指向の考え方のメリットについて、他が重要ではないわけじゃないけど、大事なのはカプセル化だっていうのは、割と同様に思うところがあったので、そこも印象的でした。

初めてのPython 第3版

初めてのPython 第3版

なんかでも、クラスやオブジェクトのメリットではじめに継承や再利用性よりも、カプセル化よりの話をあげてたし、なんかちょっとすっきりしました。

いろいろなところではっきりとあれはマーケティングの都合とか言うw

それから、あの言語のあの機能はマーケティング的な売り文句だとか、ああいう事情は商売上のものでしかない、くらいな勢いで、割とばっさりでですね、そういう清々しさもあったりします。各設計者が本当に色々な観点で語っているので、それは本当に素晴らしいですし、こう他の章の言語も普通に登場して、それらに対してもはっきり見解を述べていて、こういうのって正しい姿だよなとか思わされる記述もたくさんありました。

なんというか、日本て比較したりされたりすることに過敏なところあるよね。でも、事実として違いがあるものについては、無かったことにするのではなくて、はっきりさせた上で、長所や短所や向き不向きを明らかにすべきだと思います。エクセルで方眼(ry

まとめ

というわけで、ちょっと誰にでも… というわけにはいきませんが、面白くてためになって勉強にもなって、ヒーロー達や幾多の言語を身近に感じさせてくれたり、視野を広げてくれるのにとてもよい本です。


次は、ちょっと別の本*1を読んでから、

ビューティフルコード (THEORY/IN/PRACTICE)

ビューティフルコード (THEORY/IN/PRACTICE)

こちらを読もうと思います。ちなみに、前書きのなかで、さる知人の名前が唐突にでてきて衝撃を受けた。

こう、本を読んだよエントリを書いたら、次の本はこれ読むよ!! を書くと、続いて良いかもしれませんね。

iPad にうずたかく積まれた ebook を楽しく読むだけの、簡単なお仕事というか、幸せ者の時間です。