21:42:38 [g14008'in]
21:43:07 <g14008> 今日もぼっち読書会やります
21:43:18 <g14008> Successful Lisp / David B. Lamkins は読み終わったので次は、
21:43:48 <g14008> いまいち評価されてない気がする、Lisp Outside the Boxを読んでみたいと思います
21:43:54 <g14008> http://lisp-book.org/
21:44:20 <g14008> この本はオライリーから出版される予定でしたが、著者の健康etcにより頓挫しました
21:45:08 <g14008> Common Lispの本がオライリーから出るかーと期待されたのですが…
21:45:46 <g14008> 頓挫した後完成しているところは、Creative Commons Attribution-NonCommercial-NoDerivs 3.0 で公開されています
21:45:53 <g14008> ということで、
21:46:02 <g14008> だらだら読んでみます
21:47:18 <g14008> 今回は、一章です
21:47:24 <g14008> (((Preliminaries)))
21:47:37 <g14008> ((((Choosing a Lisp))))
21:50:34 <g14008> まずは、処理系選びということですが、昨日亡くなってしまった Weinreb氏のまとめが参考になるということで引用されています
21:50:38 <g14008> http://common-lisp.net/~dlw/LispSurvey.html
21:51:01 <g14008> どれが良いかは、その人の目的次第ということです
21:51:44 <g14008> まとめを眺めて選んだら良いってところでしょうか
21:51:52 <g14008> ((((Implementing Common Lisp))))
21:57:41 <g14008> Common Lispの処理系についてですが、現在の仕様の正式名称は、
21:57:48 <g14008> ANSI INCITS 226-1994 American National
21:57:48 <g14008> Standard for Programming Language Common LISP
21:58:32 <g14008> だそうで長いので、この本では、the ANSI standardか、the standardとするそうです
21:59:30 <g14008> 仕様に準拠するということですが、appendのように動作が規定されていて、処理系間で差が出ないようなものもあれば、
21:59:49 <g14008> 文字列と文字コードの対応のように、処理系依存のものもあります。
22:00:36 <g14008> この辺りのことが述べられています
22:01:19 <g14008> ((((Libraries))))
22:09:46 <g14008> この本では、ライブラリの利用方法について述べるそうで
22:10:25 <g14008> 何かつらつら述べられていますが
22:11:12 <g14008> Common Lispは大きいので、どこからライブラリでどこがコアなのか、
22:11:51 <g14008> ファイルシステムや、時刻にアクセスできるが、lispの外の世界とのやりとりがある、
22:12:10 <g14008> 処理系によって添付してくるライブラリに差がある、
22:13:34 <g14008> 公開されているライブラリはあるが、移植性が高いものもあれば、そうでないものもあるし、ポータブル・レイヤーのようなライブラリもある、
22:14:22 <g14008> ABCLは、JVMで動くし、ECLは、Cにコンパイルされるので、Javaや、Cにアクセスしやすい処理系もある
22:14:35 <g14008> ということが書いてあります
22:15:44 <g14008> ということで、最初の12章までは、SLIMEを除いて、外のライブラリに依存するようなものは出てこず、それから先は、処理系依存なトピックを解説していくらしいです
22:17:51 <g14008> 処理系依存なトピックの時には、各々の処理系間の差異を調べたりするのが手間でなければ、処理系をとっかえひっかえしながらやってみるのも悪くないだろうね、的なことが書いてあります
22:18:58 <g14008> 書いてあります、ていうか良く読み取れないですね。Successful Lispに比べて言い回しと語彙が難しいですw
22:19:54 <g14008> ((((Development environments))))
22:28:23 <g14008> 開発環境についてですが、
22:30:16 <g14008> lispがライフスタイルの一部となれば、学習にしろ開発にしろ、開発環境で沢山の時間を過すことになりますが、
22:31:09 <g14008> 素のターミナルに引っ付いているというのは、最も嫌だろうと
22:31:45 <g14008> 次にEmacsの素のlisp支援環境を使うというのもあるけど、これもちょっとと
22:35:46 <g14008> lispは、高度にイントロスペクティブ(内省的)で、言語自体もそれを推奨していて、ツールが使い手の能力をどれだけブーストするかは、この辺り特性をいかに有効活用するかにかかっていると
22:38:07 <g14008> 処理系は、大抵リスナー(REPL)や、Lispエディタ、デバッガ、インスペクタを用意しているとのこと
22:38:58 <g14008> デバッガや、インスペクタはターミナルでも動くけれど
22:39:25 <g14008> もっとリッチなのが処理系によっては用意されてますよと
22:39:48 <g14008> 著者としては、そういうのを使って欲しいみたいです
22:40:32 <g14008> ちなみに著者は、長年のLispWorksのユーザーで、開発にも携わったりしてるみたいなので、かなりのヘビーユーザーだと思います
22:41:06 <g14008> LispWorksを使ってる身からすると、ターミナルでちくちくやってるのは見るのも耐えられないのでしょう
22:41:25 <g14008> なので、
22:41:57 <g14008> LispWorksとか、Allegro CL、MacのCCLはIDEが付いてくるので活用しようというのと、
22:42:22 <g14008> 残りの処理系もslimeみたいなのを使おうね、ということみたいです
22:43:24 <g14008> IDEをプッシュするということになると、IDEの使い方も覚えなくてはいけないので、学習曲線が急になりますが
22:44:35 <g14008> 著者曰く、これは取り戻せるとの主張です
22:44:53 <g14008> とりあえず、slimeと素のターミナルを比べてみれば、プッシュする気持ちも分からなくもないです
22:45:50 <g14008> LispWorksを使っている人は、標準のIDEの方が、slimeより良いって言いますので、結構違いがあるのでしょう
22:46:19 <g14008> ((((Performance))))
22:49:46 <g14008> ある処理系が、他の処理系より速かったり、そうでなかったり、ハイエンドな性能だったり、そうでなかったり、色々するけれど
22:50:29 <g14008> 性能だけが決め手かというと疑がわしいですねと
22:51:16 <g14008> この本を読み進めていく内に、色々分かるだろうと。結局のところ関係ないなと
22:51:32 <g14008> ((((Should You Pay?))))
22:53:33 <g14008> 商用とオープンソースの処理系がありますが、どっちかに肩入れしたくはないらしいです
22:53:47 <g14008> 色々述べられています
22:54:43 <g14008> ossな処理系は決してクオリティが低いわけではない、
22:55:36 <g14008> 実際大きな商用プロジェクトがOSSな処理系で書かれていたりする
22:58:16 <g14008> 商用は費用を払えばライブラリを追加できたりするが、公開のライブラリが使えないわけではない
22:58:25 <g14008> ここちょっと意味が取れないです
22:59:17 <g14008> 商用の処理系は、サポート付き
23:00:08 <g14008> 商用は、ライセンスの形態にちょっと気を付けないとならない(配布ライセンスetc)
23:01:11 <g14008> 商用は、ソースを見たい時は交渉しないとならない
23:01:27 <g14008> (Corman lispはソースが付いてくる)
23:02:20 <g14008> 商用の処理系がぴったり来たら、即買わなくても評価ライセンスを発行してくれる
23:02:32 <g14008> ので、それから購入で良い
23:03:02 <g14008> 商用はお試し版がある
23:03:17 <g14008> が、機能は限定されている
23:03:45 <g14008> ((((Personal Bias))))
23:07:44 <g14008> 著者の個人的なバイアスについてですが、著者は、LispWorksを20年間毎日のように使ってきたと
23:07:45 <g14008> のこと
23:08:39 <g14008> its development teamってのは、LispWorksの、ってことでしょうか
23:09:55 <g14008> allegroも使ったことがあるし、SBCLも使ったことはあるし、Interlisp-Dで修行したとのこと
23:10:29 <g14008> ライブラリの章では、商用とOSSを混ぜて紹介することにしたとのこと
23:11:37 <g14008> 一応weinreb紹介の11の処理系はどれもインストールして検討してみたらしいです
23:11:57 <g14008> ((((Common Lisp Implementations))))
23:18:30 <g14008> ここで、ずらっと処理系とWebサイトが紹介されています
23:18:56 <g14008> チェックすべき項目としては、ドキュメントが充実しているか、最近の活動はアクティブか、だそうです
23:20:11 <g14008> この先実習みたいですが、今日はこの辺にしておきたいと思います。
23:21:00 <g14008> 何故か、Lisp Outside the Boxは逐次訳になってしまう雰囲気があります