Quantcast
Channel: アル中ハイマーの独り言
Viewing all 650 articles
Browse latest View live

"ピタゴラスの定理" Eli Maor 著

$
0
0
いまさら感のあるピタゴラスだが、あらゆる建築術の礎がここにあることに変わりはない。定理そのものの美しさは誰もが認めるところであろう。ただ、あくまでも直角三角形という特殊ケースを扱ったに過ぎない。
ところが、ちょいと変形してみると、何かの呪縛から解き放たれるかのように拡張性を発揮しやがる。三平方の定理や斜辺定理、はたまた鉤股弦の法など様々な呼び名があるように、内包される意味や解釈はいまだ広がりを見せる。幾何学だけでなく、代数的な解釈も豊富で、三角関数といった周期性と結びつくと、公式が無限にあると揶揄される。幾何センスがゼロの泥酔者には、対数螺旋やサイクロイドと結びつくだけで崇高な気分になれる。いや、目が回る。幾何学のバイブル「ユークリッド原論」I47(第I巻、命題47)にも記載される。尚、原論はあくまでも証明集であって、ユークリッド自身がどこまで証明をやってのけたかは不明だが...
証明法に至っては実に400を超えるとされ、本書は、幾何学的証明と代数的証明の分類や、最も短い証明と最も長い証明などの観点から、いくつかを紹介してくれる。ルジャンドルやアインシュタインによる証明、あるいは、プトレマイオス、ダ・ヴィンチ、アメリカ大統領J.A.ガーフィールド... など。無名少女アン・コンディットに至っては、大数学者たちが誰一人としてやらなかったことをやってのけた。定理が単純ならば、解釈も多く、乱用もしばしば。数学的な思考に、アマとプロの境界がないことを改めて意識させてくれる。
「答が宇宙なら質問は何か?はい、それは a2 + b2 = c2。それを証明する方法はおよそ400通りある。それでは他に何かいうことがあるか?たくさんある。なぜだかはよく分からないが、ピタゴラスの定理ほど多くの注釈、変種、応用、珍本を作り出した定理はかつてない。」

ピタゴラスの定理を言葉で表すと... 直角三角形において、直角をなす二辺の平方和は斜辺の平方に等しい... となる。お馴染みの代数的な記述は極めて単純!ちょいと見方を変えるだけで、こうなる。

  d = √(x2 + y2)

喫煙 x と深酒 y といった不摂生が平方で祟ると、寿命ディスタンス d は平方根で縮むという寸法よ。だが、このような形で表されるようになったのは16世紀頃で、ピタゴラスの意図したものではない。代数学には、これに似た恒等式が亡霊のようにつきまとい、ちょいと次元を増やしてみようかという衝動に駆られる。n次元に抽象化された「フェルマーの最終定理」が問題提起されたのは17世紀。オイラーは3次元に憑かれ、ワイルズによって解決されたのはほんの1994年のこと。既に2500年もの歴史がある。
しかしながら、ピタゴラスが最初の発見者ではない。少なくとも千年前にバビロニア人は知っていたし、中国人も知っていたと推測されている。インドにも証明の痕跡が見つかっているそうな。エジプト人も知っていたかもしれない。でないと、あれほどの精度でピラミッドを作るのは難しいはず。となると、実に4000年も遡ることに...
紀元前1800年頃のメソポタミア文明の遺跡は、一辺を 1 とする正方形の対角線の値 √2 のかなり高い精度の近似値を得ていたことを示しているという。「YBC7289(イエール大学のバビロニア・コレクション銘板番号7289)」には、傾いた正方形に2本の対角線の図形が描かれ、d = a√2 の関係を60進法の楔形文字で刻まれているとか。中国最古の数学書「周髀算経」にも、柱と影の長さに関する記述があるという。三辺(3, 4, 5)の説明図とともに。古代ギリシア人のお好きな「グノーモン」ってやつか。やはり人間は、自分の影を引きずりながら生きる運命にあるようだ...

結局のところ、数学とは思考の産物であろうか?自然の産物であろうか?人間とは独立した存在だとすれば、その記述は人間のご都合主義によって編み出されることになる。
ゲーテ曰く、「数学者に何を言っても、彼らは自分自身の言葉に書き換える。そしてそれは直ちに何かまったく違ったものになる。」
数学そのものが信仰や哲学から派生したものであっても、やがて純粋客観へ近づこうとする。ヒルベルトの時代になると、すべての現象は数学で完全に説明できるかに見えた。しかし、不完全性定理の登場で人間の野望は打ち砕かれ、哲学に引き戻された感がある。著者エリ・マオールはこう語る。
「私が考えるには、数学の本質は、型を探し、構成と規則性を探し、一見何の関係もないように見えるものの間の関係を探すこと、現実的であろうと抽象的であろうと問題ではない。この意味で芸術とまったく同質である。とくに音楽に近い。音楽では、ある主題の型、リズムの型が繰り返し繰り返し現れるが、それと同じように、ある代数式が数学のいろいろな分野で繰り返し現れる。」

1. ピタゴラス教団
若きピタゴラスが老師タレスに学んだ可能性は十分に考えられる。ただ、数学が極めて宗教に近い時代、いや占いの類いか。ピタゴラス学派は「万物は数である」という信仰を崇め、古代ギリシア哲学には数を幾何的に記述する伝統が育まれた。プラトンのアカデメイアの門には、「幾何学に精通せざる者、我が門に入るべからず!」と刻まれる。
さて、ピタゴラスの発見に音響学に関するものがある。弦の長さを半分にすると1オクターブ高い音が生じ、元の音と調和することに気づくと、和音の理論が構築された。音楽が数の法則に従うとすれば、宇宙もまた数に支配されると考える。天体運動を数学で説明できれば、天空の音楽理論が構築できる。彼らの数への執念が整数論を育んできた。調和平均、調和級数、調和関数なども、ピタゴラス思想の継承を感じる。
しかしながら、妥協のない数至上主義は、狂信的ですらある。対称美や調和を崇めるあまりに、物理学の進化を妨げた。天文学はあまりにも真円を崇めたために、現実世界が見えなかった。ピタゴラス学派は五芒星形の美しさに魅せられて紋章とし、古代ギリシア人はすべての算術を幾何的操作に頼る。積は面積で代替でき、平方根は対角線で代替できる。言い換えれば、作図不能な算術はできないことになる。ユークリッド原論もこの原則に従う。アルキメデスのような現実主義者は、あまり重要視されなかったのだろう。完全を崇めれば、不完全が見えなくなる。プラトン立体の美しさに憑かれ、やはり人間は美人に目がない。
ところが、聖なる正方形の対角線に √2 という無理数が存在すると知ると、整数にこそ理性の存在を認めていたピタゴラス学派を動揺させた。彼らは秘密主義を誓うが、ヒッパソスが世間に暴露しようとすると仲間たちに船から放り出された、という逸話が伝えられる。やはり、宇宙は... 社会は... 人間は... 適度に不完全とする方が健全なようである。

2. ピタゴラスの亡霊たち
ピタゴラスの定理の源泉を遡れば、バビロニア、中国、インドなど、実に多くの地で見かけることができる。しかし、ピタゴラスが一際輝いているのは、厳密な証明が残されるからであろう。ここに客観性の威力を魅せつける。
ちなみに、イライシャ・スコット・ルーミスという人が、著作「ピタゴラスの命題」で371個もの証明法を分類しているという。数学界では、あまり知られていない人物らしい。大まかに代数的証明と幾何的証明の二つに分け、さらに、四元数的証明と力学的証明に分けているとか。四元数とは、何のことはない。複素数(i)を三次元(i, j, k)に拡張した概念で、その特徴は乗法の交換法則が成り立たないこと。ハミルトンによって提唱されたが、今ではベクトル空間で抽象化される。非可換という性質が、物理現象を扱う上で都合がいいのだ。
さて、ピタゴラスの定理は、無限や微積分といった概念とも結びついてきた。無限級数といえば、リーマンのゼータ関数を思い浮かべる。

  ζ(x) = Σ(1/ns)

オイラーは、ζ(2) = π2/6 に収束すると宣言した。いわゆる、バーゼル問題である。無限和がある数に収束する上に、πという無理数が絡むところに神秘がある。だが、最初に無限積で表す公式を編み出したのは、16世紀のフランソワ・ヴィエトという人だそうな。

  2/π = Π xn, (1 ≦ n < ∞)
  ただし、x1 = √(1/2), xn+1 = √{(1 + xn)/2 }

本書は、これを導出する過程で、円周上を移動する直角三角形の頂点との関係を示してくれる。ピタゴラスの定理は、真円上で振る舞うと周期性と相性がいい。平方根は周期性と調和させるための概念、とするのは言い過ぎだろうか...

また、点(x1, x2)と、点(y1, y2)の間の線分の長さ s はこうなる。

  s = √{(x1 - x2)2 + (y1 - y2)2}

そして、ピタゴラスの定理の微分版がこれだ。

  ds2 = dx2 + dy2

さらに、対数螺旋やサイクロイドとも相性がよく、ちょいと座標系の視点を変えて、半径 r と角度θの関係からも規定できる。

  ds = √{(dr)2 + (rdθ)2}

双曲線正弦(ハイボリックサイン)や双曲線余弦(ハイボリックコサイン)など、実に多くの曲線で応用できる。ユークリッド言論、VI31(第VI巻、命題31)には、こう記されるという。
「任意の直角三角形において、二つの辺の上に立てられた円の面積の和は外接円の面積に等しい。」
つまり、直角三角形の辺の上に立てる図形は、正方形である必要はないということだ。相似形にさえなれば、多角形でも、円でも、それ以外の任意の図形でもいい。図における、面積Aa, Ab, Acの関係は、こうなる。

  Aa + Ab = Ac






「ヒポクラテスの月」と呼ばれる図形も、ピタゴラスの亡霊に憑かれている(下図)。中心O、半径OA(= OB)の円の4半分OABにおいて、ABを直径とする半円を描くと、外側に三日月の領域ができる。そして、その面積は三角形AOBと同じになる。円周率と関係しそうな面積が、二等辺直角三角形で代替できるとは...




ピタゴラスが周期性に囚われると、平方根 √1, √2, √3,... もまた螺旋状に幽閉される(下図)。





3. ピタゴラスと相対性理論
三次元座標系の原点にある光源から球面波が放出され、光速 c で伝播して時間 t 後に点(x, y, z)へ達するとすると、

 x2 + y2 + z2 = c2t2

これは、観測者が点(x, y, z)にいる場合で、別の観測者が一定の速度 v で動きながら点(x', y', z')にいるとすると、空間次元 + 時間の座標系において以下の関係がある。

  x2 + y2 + z2 - c2t2 = x'2 + y'2 + z'2 - c2t'2

ここで注意すべきは、c にはダッシュがつかないこと。光速はどんな観測系でも一定だから。相対性理論は、なんといってもローレンツ変換が基本!座標系(x, y, z, t)と座標系(x', y', z', t')への変換はこうなる。

  x' = (x - vt)/√(1 - v2/c2)
  y' = y
  z' = z
  t' = (t - (v/c2)x)/√(1 - v2/c2)

ここで、√(1 - v2/c2) は特殊相対性理論の中核をなしている。アインシュタインの有名な公式は、E = mc2の形で知られるが、実はこうなるわけだ。

  E = {m/√(1 - v2/c2)}c2

4. ピタゴラスの3数
ピタゴラスの3数とは、直角三角形の三辺が(3, 4, 5)になるような整数の組のこと。二つの整数(u, v)において、u > v で、 u と v が互いに素(共通因数を持たない)で、偶奇が逆である時、整数 a, b, c において、

  a = 2uv, b = u2 - v2, c = u2 + v2

が成り立つならば、既約なピタゴラス3数をなす。
また、二つの平方数の和にも不思議な関係があることを紹介してくれる。二つの平方数の和とは、こういうもの。

  2 = 12 + 12, 5 = 12 + 22

そして、次の定理が成り立つという。
「正の整数 a が二つの平方数の和となるのは、a ≡ 3 (mod 4) でないときだけである。すなわち、a を 4 で割った時のあまりが 3 にならないときだけである。」
もっとも、これが与えられるのは、1つの数が二つの平方数の和であるための必要条件で、十分条件ではないとしているが。
3 という数に何か意味があるのか?それとも、mod 4 の方に意味があるのか?必要十分条件の方は、こうなるという。
「ある整数 a が二つの平方和であるための必要十分条件は、a の素因数分解の中に 3 に mod 4 で合同な素数が偶数回登場することである。」
そして、完全平方数が二つの平方数の和である時、ピタゴラスの3数(a, b, c)が得られるという。

"数について" Richard Dedekind 著

$
0
0
かつて、数(かず)というものに対して、ここまで率直に考えさせられたことがあったであろうか?その最も単純な概念は、「より大きい、より小さい」という関係で言い尽くせる。リヒャルト・デーデキントは、有理数の最も重要な性質をこう述べる。
「順序よく整った集合体で、二つの相反する向きに無限に延びた一次元の領域を作っていること。」
そして、「切断」の概念を用いて数の連続性を規定し、無理数の正体に迫ろうとする。連続性を規定できる便利な道具といえば、微積分であろう。微積分の導入時に幾何学的な直観に助けを借りるのは、幾何学と連続性の相性の良さを示している。だが、デーデキントは、連続性に対する科学的見地が甘いと指摘する。
「科学においては証明なしに信頼すべきではない。この要請がこんなにも明白であるように思われるのに、私の信ずるところでは、最も単純な科学、すなわち数の理論を取り扱う論理学の部分の基礎を研究するに当ってさえも、最近の叙述によってさえも決して満たされているとは見なせないのである。」
彼の言う科学とは、ユークリッド原論が幾何学の公理と証明を示したように、代数学にも同様な要請をすることであろう。実際、本書は集合の観点から公理的に語り、集合論こそが数の概念の抽象化した姿であることを実感させてくれる。集合論の創始者と言えばカントールであるが、デーデキントの貢献が大きいことは言うまでもあるまい。
尚、本書には「連続性と無理数」と「数とは何か」の二篇が収録される。

数論とは、「数える」という最も単純な行為から発する必然的な結果であろう。だから、整数論とも呼ばれる。人間が思考する数の性質は、極めて離散的である。しかし、数を図形で表そうとすれば、直線や曲線などの連続性に支配される。はたして精神空間において、離散性と連続性のどちらが居心地良いであろうか?おそらく適度な連続性ということになろう。忌々しい出来事にはアルコール濃度で忘却の渦に連続性を絶ち、小悪魔とのひとときには永遠の連続性の中で夢想を続ける。
ピュタゴラス教団は「万物は数である」という思想を崇拝し、すべての数を自然数で規定しようとした。分数を定義すれば、分子と分母を限りない自然数で規定でき、どんな二つの有理数の間にも第三の有理数を埋めることができる。二つの有理数の間には必ず大小関係が生じ、これを数学者は「全順序集合」と呼ぶ。そうなると、有理数で数直線上のすべての隙間を埋め尽くすことができる、と信じたのもうなずける。だが、聖なる正方形の対角線に √2 という異様な成分が紛れ込んでいることを知ると、彼らを動揺させた。
一方で近代数学が、このような数の信仰に憑かれていないと言い切れるだろうか?最新鋭のコンピュータをもってしても、実数演算には冪乗の壁が立ちはだかり、実際、分子と分母の関係から便宜上の近似値を与えているではないか。アルキメデスは、円に内接する多角形と外接する多角形の関係を考察し、円周率が 22/7 と 223/71 の間にあることを見出した。もっと良い近似値では、355/113 で代用される。
確かに、数学は有理数では表せない数があることを証明した。だがそれで、無理数の意義まで知ったことになるのだろうか?無理数とは、ピュタゴラス教団が唱えたように理性を失った状態なのだろうか?自然数によって世界のすべてを表そうとする古代人たちの野望は途絶えた。自然数の欠点は、減算や除算を行うと答えが自然数の系からはみ出すことにある。算術によって系が閉じられない現象は、数の概念を整数、有理数、実数、複素数へと拡張させてきた。そこに集合論が結びつくと多項式までも呑み込まれ、体、群、環、イデアルへと抽象度を高めてきた。
しかしながら、どんなに数の概念が高度化しようとも、すべての数が大小関係によって規定されることに変わりはない。相対的な認識能力しか発揮できない知的生命体は、何かを認識しようとすれば何かと比較せずにはいられない。人間社会では、数の大小関係はそのまま地位の上下関係と結びつき、収入や資産や知識の量で競い合う。人間ってやつは、大小関係という意識に幽閉された存在というだけのことかもしれん...

そして、読み終えると、いつもの愚痴が蘇る...
現代数学では、実に多くの微分方程式が解けないという事情から、大小関係によって迫る方法が編み出された。ε-δ論法が、まさにそれだ。このヘンテコな理論が大学初等教育で扱われるのは、数学の偉大さに屈服させようという魂胆か。やはり、酔っ払いを落ちこぼれにするための陰謀であったか...

1. 無理数と称すべきか?無比数と称すべきか?
連続性の問題は古代からある。尤も、離散性という意識があったかは知らん。自然数を理性の象徴として崇めれば、数では表せない存在に困惑する。神は不完全な世界を創出したことになるのだから。古代人は、1 + 2 + 3 + 4 個の順に並んだ点の正三角形の配列を崇め、10 を宇宙秩序を表す完全な数とした。テトラクテュスってやつだ。尚、今日で言う完全数とは違う。
1 から 10 までの自然数には奇数と偶数が同数ある。ついでに、素数 {1, 2, 3 , 5 ,7} と合成数 {4, 6, 8, 9, 10} も同数ある。ちなみに、鏡の向こうには「十の時が流れる」という名を持つ野郎がいると聞く。ヤツはテトラクテュスの申し子か?いや!単に顔が赤いだけらしい。
それはさておき、{1, 3, 5, 7, ...} を平方に配列したものを四角数と呼び、{1, 4, 7, 10, ...} を五角形に配列したものを五角数と呼ぶ。そして、六角数、七角数... と続く。これらの配列の組は、三角数では自然数、四角数では奇数、五角数では初項 1, 公差 3 の等差数列となり、図形との関係を表す重要な数とされた。こうした発想から、無限級数が考察されるようになる。オイラーが解いたバーゼル問題を眺めれば、無限和が固定値に収束することに数論の神秘を感じる。その答えに円周率という無理数が含まれることがミソだ。
ピュタゴラスの和音理論による視覚と聴覚の調和は、数の哲学の真髄である。そして、宇宙は音響調和の元で構築されていると考え、真円の下で正多角形が崇められ、真球の下でプラトン立体が崇められた。そういえば、無理数という用語は邦訳の誤りという意見を耳にする。比で表せないから無比数とすべきだと。なるほど...

2. 代数学の意義
方程式の解を求めようとすれば、有理数に頼るだけではすぐに限界に達する。数学者たちの野望は、2次方程式、3次方程式、...、n次方程式へと向けられた。直線定規とコンパスによる作図法は、代数学では2次方程式の解に相当する。言い換えれば、3次方程式以上の解は幾何学的には求められない。それを人類が知ったのは17世紀頃。代数学には、直線定規とコンパスだけでは作図できない領域があり、その本質は、数では表せない数を探求することにある。もし円周率が有理数ならば、すべての図形は四角形に帰することになり、古代人は幸せを謳歌できたであろうに...
自然数にしても、実数にしても、特定の数の体系を崇めたところで、それは人間のご都合主義というもの。神は数の概念を区別しないはずだ。人間のできることと言えば、十分に大きいか、十分に小さいか、それを規定するぐらいであろうか...
「無理数の理論は、有理数の領域に生ずる現象に基づくもので、それに私は"切断"という名をつけてはじめて精密に研究したし、実数の新たな領域の連続性の証明でその頂点に達した。」

"Coders at Work" Peter Seibel 著

$
0
0
この手の書は、なにやら忘れかけているものを思い出させてくれるような気がする。それは、好奇心や探究心といったものだ。同時に、むか~しの愚痴も甦るけど...
人は皆、面倒臭がり屋である反面、純粋な好奇心に対しては真摯になれる面がある。そして、探究心の持続こそが才能を覚醒させるのであろう。
本書は、ピーター・サイベルが、いまや伝説となった15人のプログラマからコード哲学を聞き出すインタビュー集である。尚、サイベル自身がプログラマであり、教科書的な存在である「実践Common Lisp」の著者でもある。
その15人とは...
Netscape の実装者ジェイミー・ザウィンスキー。ソーシャルネットワークの概念を広めたブラッド・フィッツパトリック。JSON(JavaScript Object Notation) の生みの親ダグラス・クロックフォード。JavaScript の設計者ブレンダン・アイク。Java プログラマの尊敬を集めるジョシュア・ブロック。並行処理指向言語 Erlang の設計者ジョー・アームストロング。先進的言語 Haskell の設計と実装の中心人物サイモン・ペイトン・ジョーンズ。NASA と Google という対照的な開発グループを率いたピーター・ノーヴィグ。Scheme と Fortress を作り、数々の主要言語の標準化に携わった多言語話者ガイ・スティール。Smalltalk の実装者ダン・インガルス。実行時コンパイラ技術を生み、Ghostscript を作ったL・ピーター・ドイチュ。Unix の開発者ケン・トンプソン。最適化コンパイラ技術で女性初のチューリング賞受賞者となったフラン・アレン。ARPANET の実装者バーニー・コーセル。そして真打ち登場、コンピュータ科学者ドナルド・クヌースである。

ノイマン型アーキテクチャが提唱されて半世紀余り、インタネット世代を代表するフィッツパトリックを除いて、ネアンデルタール人に属す世代になろうか。共感できる点が多いということは、おいらも古代人ってか?ちとショック!しかしながら、いまだに情熱を持ち続け、趣味の境地でコードを書き続けているのには頭が下がる。
ちなみに、おいらはプログラマではない。むか~し組込システムのOSを書いていた時期もあるが、今では回路設計の経験の方が長い。これといった専門はなく、ずーっと雑用係と称してきた。最近はアルゴリズムの検証ばかりで、実装から遠ざかり気味。それでも思考のスケッチのためにプログラムを書く。いや、電子機器の開発設計に携われば、プログラミングを避けることの方が難しいだろう。回路設計においてもハードウェア記述言語を用いるし、その検証ではコンピュータ言語と協調させて効率を図る。画像処理アルゴリズムの検討では、ImageMagick やスクリプト言語と組み合わせるのも悪くないし、数学の落ちこぼれには、Octave のような数値演算言語の存在もありがたい。
おそらく万能なプログラミング言語は存在しないだろうし、ドメイン固有言語という思想はますます広がるだろう。ハードウェアの進化がムーアの法則に従い、ソフトウェアも大規模化していく中で、プログラミング言語の進化が比較的遅いのは救いである。言語システムには、多くの本質が内包されているように映るからだ。その傾向は、人間社会の変化に対する自然言語の変化にも顕れている。エドガー・ダイクストラは、こう言ったとか。
「母国語で満足に書けないようなら、プログラミングはあきらめることだ!」
プログラムとは、クヌースが言うように本質的に文芸作品なのかもしれん。尚、「The Art of Computer Programming」は数学的に濃い内容だけど、いつか挑戦してやると思いつつ、既に20年が過ぎた...

プログラミング言語がどうあるべきか、その意見が様々であることは驚くに値しない。設計の立場が違えば、設計哲学も思考法も変わる。本書でもその傾向が見られる。コードの取っ掛かり方だけを見ても...
ザウィンスキーやインガルスが、プロトタイプのようにすぐ動くようにすることの重要性を唱えるのに対して、ブロックは、実装前の段階で要求分析の重要性を強調しすぎることはないとし、クヌースに至っては、TEX プログラムをコンピュータに一言も入力せずに紙と鉛筆で書き上げた!と言っている。
デバッグの流儀では、デバッガ派、print 文派、あるいは、assertion 派に色分けされる。あるいは、C や C++ の普及の善悪や、言語システムがどこまで機能を具えるべきか、などでも意見が分かれる。
もちろん共通点も多い。誰もが読めるコードを書くことの重要性を唱え、無条件にシステムが巨大化する昨今、無謀なプログラムが増殖していることを懸念し、過剰なブラックボックス化についても議論される。確かに、Web アプリケーションに触れると、何年も放置された些細なバグが目立つ。情報が溢れればノイズが増殖し、プログラミングが庶民化すれば質の低い作品が氾濫する。高度な情報化社会では、鈍感さがより一層求められるようだ。
ソフトウェア業界は、全体的に良い方向に進んでいるのかもしれないが、回り道をしていることも否めない。ここに登場する偉人たちもまた、誰一人としてプログラミングが解決済みの問題だとは考えていない。ドイチュに至っては、今日のプログラミング言語で SIMULA-67 や Smalltalk より質的に優れたものはないと断言している。なるほど世間では、進歩や進化という言葉が迷信化しているところがある。インターネット世代のフィッツパトリックまでも、こう釘を刺す。
「新しいものが最低でないことを願っているのかもしれません。新しいプログラミング言語でやりたいことができるようになると期待するみたいに、でもユーザだって同じことです。ユーザはいつもバージョン番号の高いものを手に入れようとします。たとえそれがよりひどいものであっても。」
また、マルチコアというCPU構造の複雑化が、コードを書く方法を大きく変えていることも見逃せない。多くの人が最も厄介なバグに並行プログラミングにおけるものを挙げており、STM(Software Transactional Memory) の是非にまで議論が及ぶのは、なかなかの見モノ!

1. C と C++ の善悪論議
C++ の善悪については一般的に論じられているが、偉人たちの意見は、C の普及の段階から真っ二つに分かれる。アレンはコンピュータサイエンスの研究を大きく損なったと難じ、コーセルは最大のセキュリティ問題と批判する一方で、トンプソンはセキュリティはプログラマの問題であって言語システムの問題ではないと主張し、クヌースはポインタを「記法における最も目覚ましい進歩」と言っている。
プログラムで、大きな問題となるのは動的メモリの管理である。メモリリークや残骸の蓄積は、自身のプログラムだけでなく、他プログラムにも影響を与える。そこで、ポインタ機能は直にメモリにアクセスできるために忌み嫌われる。尤も昔は高級言語扱いされたが、今ではアセンブラのような低級扱いされる。しかし、参照で用いる分には便利な面がある。大量のデータ領域を関数の引数で渡すような場合だ。
そもそも、アプリケーション設計者が触れるべき領域なのか?という疑問もある。当たり前のことだが... バッファの境界を越えないことを明示的に確認せずにバッファを読んではいけないし、メモリブロックを不適切なタイミングで解放して他のポインタを不安定にしてはいけないし、サイズの合わないものを格納して他の値とかぶってはいけない。だが、そうした問題を見つけることが意外と難しい。
だからといって昔は、システムをアセンブラで書いて、アプリケーションを Pascal で書くというのも抵抗があった。C はシステムプログラムに大きな恩恵をもたらしたが、その利便性からアプリケーションの領域にも入り込んだ。アメリカ政府は、C の危険性を回避するために、Ada を強制しようとして、Ada 以外での契約を拒否した。だが、C の勢いは政府の思惑までも潰した。システム用言語とアプリケーション用言語を分けるべきだというのも、もっともな意見である。コーセルは、こう言っている。
「C が有用性を超えて長生きしすぎたと言いたくはありませんが、あまりに多くの良いプログラマに使われた結果として、今では十分よくないプログラマがアプリケーションを作るのに使うようになり、結論を言うと彼らは十分な能力がなく、ちゃんとやることができないのです。C は本当に優れたシステムプログラマには完璧な言語なのかもしれませんが、あいにくとあまり優れていないシステムプログラマやアプリケーションプログラマが、使うべきでないのに使っているのです。」
現在、高機能化したスクリプト言語が普及しているのは、よい傾向なのかもしれない。例えば、ガベージコレクションのような機能があるだけで、つまらないストレスから解放される。
一方で、C++ の普及はどうであろうか?多くの大学で C++ を採用したオブジェクト指向を教える講義がある。そもそも、こいつはオブジェクト指向言語なのか?C++ の実装の特異性や奇妙さを、いったいどうやって区別させるのか?クラスベースの言語は、ちと静的過ぎる感がある。大きなクラス階層があると、わざわざ分解してまで使う気はしない。だからといって、動的な言語を用いると、至る箇所でその場しのぎをやってしまうのだけど...
ザウィンスキーは、C++ テンプレートが大好きというような人には近づかないようにしていると言っている。フィッツパトリックは、C++ を少し擁護しているが、なるほど...
「個人的には、少なくとも C++ で scoped_ptr みたいなものを使っている限りでは、自分でメモリ管理することも特に煩わしいとは思いません。new も delete も書くことなく何日も C++ を書いていることができます。」
志の高いプログラマにしか手を出してはいけない領域というものがあるのだろう。思想に優れた者しが踏み込んではいけないシャングリ・ラのような聖地が...

2. デバッグの流儀
最近のスクリプト言語は、動的メモリまで言語システムが管理してくれるので、print 文で大方の現象は掴めるだろう。だが、システムに近い領域ほど、実際に何が起こっているかを知る必要がある。言語システムが十分優れたデバッグ機能を具えているとすれば、わざわざ余計なコードを埋め込む必要はあるまい。よって、用いる言語系と、システムとの距離によって、デバッガ派と print 文派に分かれることになりそうだ。実際は、いろんな手法を組み合わせるのであろうが...
テストにおいては、誰もが怠け者になりがちである。最も厄介なのは微妙に動いているように見える現象で、おまけに放置されがち。そこで、assertion を埋め込んで、不変条件を自動チェックするといった考え方も有効である。おいらはこの思想が好きだ。
print 文派のアームストロングは、こう言っている。
「プログラミングの偉い神様が言っています。汝プログラムの間違っていると思われる部分に printf 文を置いて再コンパイルし実行せよ...
"ジョーのデバッグの法則"というものがあります。それは、すべてのバグは最後にプログラムを修正した箇所からプラスマイナス3ステートメント以内にある、というものです。」
そもそも、デバッガの吐き出す情報が正しいのか?という問題もある。デバッガが関与する時点で、物理的なタイミングのズレが生じ、不安定な動きをすることもある。したがって、検証においては、検証環境をも含めたデバッグを心掛けるようにと、おいらは周りの連中に指示している。そのためには、必然的にシステムを理解する必要があり、それが真の意図だけど...

3. 純粋関数型と静的型付け
関数プログラミングとオブジェクト指向プログラミングでは、どちらが生産的か?という議論をよく見かけるが、宗教論争に映る。ここでは、ジョーンズがもう少し突っ込んだ観点から純粋関数型言語の魅力を語ってくれる...
関数型言語の始まりが、ギーク的で数学的であることは想像に易い。尚、ここで言う関数とは、多くの手続き型言語が採用している関数とはかなりイメージが違う。少なくとも副作用がない。アーサー・ノーマンは、副作用のまったくない二重連結リストを構築する方法を示したという。二重連結リストを作ろうとすれば、セルを割り当てて互いに指すような仕組みが必要で、どこかに副作用が生じそうなもの。だが、純粋関数型言語ならば、副作用なしにそれを実現できるという。デビット・ターナーという人の論文に、SK コンビネータについてのものがあるそうな。SKI なら聞いたことがあるが。ラムダ計算を変換して実行する一つの方法で、I は SKK と等価で取り除くことができるらしい。任意の複雑なラムダ項を、なんらかの変換ステップによって、S と K の項に置き換えられるのだとか。この得たいの知れない S や K のコンビネータが実装できれば、任意の演算モデルが実装できるってか。にわかに信じがたい、まるで魔法のような抽象化演算モデル。純粋関数型言語とは、純粋数学言語のようなものであろうか?数学も言語であることに違いはない。この発想は、まだノイマン型アーキテクチャの領域に留まっているのだろうか?純粋な関数にできることは、答えを返すことがすべて。根本的に呼び出すというプロセスは必要ないってか。だから、カッコだけでつなぐ Lisp のような構造も可能となる。だが、Haskell はそんな次元ではなさそうである。
とはいえ、評価するプロセスは必要だし、評価した結果を出力するのがコードのすべてだ。つまり、応答した遅延評価を扱うことが、入出力の問題となる。ここで言う「純粋」というのはどういう意味であろうか?極めて強い静的な型ということらしいが... ん~、難しい!
ところで、プログラミング言語には、データ型というものがある。これが言語の本質だと思うから、言語リファレンスを読む時は必ず型の章から始める。ちなみに、Perl のような言語に触れると、型なんかお構いなしって感じで、やはりクレイジーに映る。むかーしは型が厳密でない言語を扱う気がしなかったものだが、近年は適度に融通が利く言語を好む。ジョーンズは、ほとんどのプログラムは静的型で書けると主張する。保守の面で素晴らしい恩恵があると。
「依存型プログラミングをやっている人たちは言うでしょう。型システムは究極的にはすべてを表現可能にすべきだと。しかし型というのは奇妙なところがあって、コンパクトな仕様言語のようなものです。型は関数についてなにがしかのことを言いますが、頭の中に一度に入れられないほどたくさんのことは言いません。だから型について重要なのはそれが明快なことです。」
なるほど、型が関数の抽象化をなしているという見方はできそうか。データ型を適切に定義するだけで、そのプログラムが何をするものかについて、かなりの事を語ってくれる。全体像として型を書いて、型が済んだから次はコードを考える、という2段階のプロセスではない。整理する順番は二段階だとしても、型の検討中にスケッチ用のコードを同時に書いている。型設計そのものがプログラム設計であるという発想は、まったく同感である。

4. 並行プログラミングとソフトウェアトランザクショナルメモリ
ジョーンズは、STM が世界を救うほどのものではないが、ロックや条件変数を使う方法よりマシだと言っている。複数のプログラムカウンタ、マルチスレッド、マルチコア上で共有メモリを使うぐらいなら、STM の方が優れていると。
ロックベースのプログラムは、競合を最小化するためにロックを保持する期間を最小限にしようとするだろう。だが、細かい粒度のロックはうまくやる事が難しい。この点で STM が大きく優っているらしい。非常に細かいロック並みの粒度を、シンプルな原則で手に入れられるという。STM の推論原理では、トップの不変条件を設定すれば、後は逐次処理で推論できるらしい。例えば、銀行口座の残高を管理する場合、取引トランザクションの開始時と終了時で不変条件が成り立つようにすれば、推論では逐次的であっても、引き出そうが、預けようが、トランザクションは分離できるという考え方である。
となれば、トップレベルの不変条件の設定が鍵となりそうである。トランザクションの前後を矛盾なく設定する必要がある。また、トランザクションの途中で例外が生じても、それを破棄して不変条件は絶対に破壊されないようにする必要がある。並行処理にもかかわらず、命令型のコードに対してシーケンシャルに推論できると言っているようだが、ほんまかいな?やはり用途によりそうだ。
いずれにせよ、ロックマネージャのようなヤツが、データベースの中で最も物々しい存在となりそうだし、あるデータがロックされて、アクセス不能になるといった現象は、STM でも生じそうな気がするけど...

5. 文芸的プログラミング
文芸的プログラミングの提唱者といえばクヌースだが、当人は趣味みたいなものだと言っている。いずれにせよ、これが最高のものという証明はできまい。考え方のセンスだから、うまくやる人とそうでない人もいるだろう。
クヌースは、文章を書くためのルールを二つ挙げている。一つは、読者を理解すること。二つは、技術的な文書という条件付きで、すべてを二通りの仕方で補うように書くこと。だから、通常の技術文章は冗長性があるという。へー...
確かに、一つの事を違った視点から語るだけで、頭の中に入ってきやすい。文芸的プログラミングは、コードを書いた後にドキュメントを書くといったものではなく、両方を同時に書くようなもので、そこにはコードがあるだけでなく、ドキュメントが共存することになる。優れたコードを読む楽しさは、優れた小説を読む喜びに似ている。
スティールは、C の欠陥は文芸的プログラミングツールをもってしても克服するのは難しいことだと言っている。Common Lisp 用の文芸的プログラミングツールがあれば、きっと早く飛びつくだろうと。
しかし、文芸的プログラミングの魅力を認めつつも、現実にコードに反映することは難しいという意見もある。トンプソンは、二つの書き方があるなら、片方は間違っていると指摘している。正しいのはマシンが実行する方だけと。ノーヴィグは、こう言っている。
「クヌースのオリジナルの"文芸的プログラミング"の論文を読むと、彼が本当に言おうとしているのは、"本を書くための最良の順序は何か"ということで、本全体が読まれることを前提としており、それが論理的な順序になるようにしようと考えています。みんな今ではそのようにはしていません。本を読みたいとは思っていなくて、インデックスを求めているのです。"読まなければならない最小限の部分はどこだろう?必要な3段落だけを見つけたい。それを示してくれ!"これは大きな変化だと思います。」
圧倒的多数はそうだろうが、中には一冊を隅々まで目を通したいという貧乏性の読者もいる。ここに。やはり好みの問題であろう。逆に、上辺だけを拾って回る読者を締め出すには良い方法とも言えそうか。実際、技術文書ってやつは、読者の理解よりも数学的な厳密性が優先されるもの、という見方をする人が多い。だから、なるべくコンパクトに書きなさい!とよく叱られる。誤解されないように意識すると、どうしても補足的な記述を加えずにはいられない。おまけに、酔っ払いはお喋りときた。なによりも自分に分からせようと書いている。このブログにしても、対象読者は十年後の自分だ。ただ、数ヶ月後に読み返すと既にチンプンカンプン!文芸的プログラミングへの道は遠すぎる。はぁ~...

6. 過剰なブラックボックス化
ライブラリを自分で書けないなら、やることはライブラリを呼び出すだけになる。ライブラリの使い方を丸暗記することが仕事になるのでは、寂しい!数学書には証明がいっぱい詰まっているが、用途にピッタリとはまる定理がなかなか見つからない。ライブラリにも似たような事情がある。
おまけに、お偉いさんには、とんでもないライブラリを強制する性癖がある。黒幕の潜むブラックボックスは、いつも悪臭が漂う。根拠のないスケジュールの短縮という思想に憑かれると、マイルストーン上に何かが埋まっているだけで仕事をした気になれるらしい。再利用の効果を過剰に強調すれば、なんでもブラックボックスに頼ろうとする。それで責任転嫁できればOKってか?設計哲学の合わないライブラリやブラックボックスを組み合わせれば、奇妙な設計資産を量産させるだろうに...

7. 民主主義の在り方
スティールの言葉は興味深い。
「Lisp は容易に成長してきた言語の例だと思います。そのマクロ機能の柔軟性のためです。またある程度までは、それを作ったグループの社会的な姿勢のためでもあります。
それと対照的に、Scheme はもっと苦難の道をたどっています。そのある部分は、Scheme コミュニティが初期において全員、ないしはほとんどの人が同意するのでない限り何も言語に付け加えないという文化を発展させたためです。反対投票の文化なのです。
一方で、Common Lisp のほうは多数であればみんなを満足させるに十分という文化です。人はほかのものを手に入れるためなら、そう熱烈に好きでないものも受け入れるのです。」

"実践 Common Lisp" Peter Seibel 著

$
0
0
本書を購入したのは、三年ぐらい前になろうか。時々横目で追い... 辞書代りにし... これを読破するには気が重い。ところが、改めて目を通してみると、意外とストーリー性があって、おもろいんでないかい!
それは、音楽ファイル(MP3)からタグ情報(ID3)を抽出し、曲情報をweb上で管理するという物語で、最終的に、曲の検索、プレイリストの追加、ストリーミングといった機能を備えるMP3ブラウザを作成することにある。
ここに含まれる技術要素は... 単語の頻度を調べるために、スパムフィルタでよく見かけるベイジアンフィルタを用いて学習する仕掛け。バイナリファイルのためのパーサの作成。リスト型言語らしいデータベースの構築。WebアプリケーションのためのWebサーバ(AllegroServe)の導入。HTMLライブラリの生成。ストリーミング再生のための、Shoutcastプロトコルの実装など...
実践と言うには、ちと話題がづれていそうだが、試してみると、なかなか役に立ちそうではないかい。もちろん、Common Lisp の処理系や、CLOS(Common Lisp Object System)といった話題も豊富!満腹すぎて吐きそうなほどに...

Lispは、FORTRANの時代を思い出させる言語で、その歴史は1950年代に遡る。だが、改良を重ね重ね、いまだ輝きを失っていない。オブジェクト指向の機能をもたらす CLOS は、もはや Common Lisp と分けて論じることができないほど馴染んでやがる。
今日のコンピューティングは、メモリ容量やCPU性能、あるいは、表示システムの高精細化や入力システムの操作性向上など、リソースは格段と進化している。プログラミングにおいても、ハードウェアをほとんど意識しなくて済み、本来の目的に傾注できる高水準言語が続々と登場する。おそらく万能な言語は存在しないだろうし、ドメイン固有言語という発想はますます広がるだろう。
そんな時代にあってもなお、Lisp が生き残ってこられたのは、言語自体に柔軟性があるのも確かであろうが、チューリング等価の記法という意味では、ソフトウェアはあまり進化していないのかもしれない。いずれにせよ、チューリングマシンが考案されて一世紀にも満たず、コンピューティングの歴史はいまだ過渡期にある。実際、新しい技術が品質やユーザビリティを落とすケースも珍しくないし、登場時期が早すぎたために廃れていくアイデアも少なくない。この手の書に触れる時は、新しいとか、古いとか、そうした意識は捨ててかかった方がよさそうである。引退間際の古代人には、なんでも真新しく映るけど...

Lisp信者は、こんなことを言う。Lispを学べば、もっとましなプログラマになれると。言語に対する思いは宗教的なところがあり、その座右の銘は禅問答に似たものがある。Lispの場合はこれだ。
「プログラム可能なプログラミング言語」
彼らは、マクロ機能の強力さをこわだかに話す。まるで万能言語であるかのように。だが、手続き型言語に慣れ親しんできた者にとっては、まるで宇宙人の文化だ。S式とかいうヘンテコな宣教師が、カッコカッコ... コッカコッカ... と呪文を唱えれば、カッコの奥から let とかいう控えめな教職者が lambda とかいう名もない浮浪者に見返り(返り値)をねだってやがる。実に、鬱陶しい奴らだ!
しかしながら、異質の言語に触れることにも意義がある。当たり前と思い込んでいる事でも、疑問を持つ機会を与えてくれる。最近、気に入っている感覚は、リスト型データ構造である。Lispが記号処理のために設計され、list processing を得意とすることは、その名が示している。
「リストは不均質で階層的なあらゆるデータを表すための格好のデータ構造だ。」
仕事では数学のアルゴリズムを検討することが多く、関数で多次元空間を記述する場合、返り値には多値を用いたい。例えば、C言語などの return変数は基本的に一つで、多値を返したければポインタ参照の形をとる。これが副作用の原因となりやすい。わざと副作用を利用することもあるので、一概に悪いとは言えないのだが。一方、リスト型データはもともと多値が想定されているので、そんな気遣いはいらない。尚、ここで言う「多値」とは、群論で言うところの集合体を意味し、論理学のそれとは意味が違うので注意されたし...
「関数プログラミングの真髄は、与えられた引数のみに依存して演算を行う副作用を持たない関数のみでプログラムを構成されることにある。」
本書は、リスト構造が柔軟であるがために、その弊害で、ユーザがリストに特化しすぎる傾向があると指摘している。そして、もっと効率的な方法として、コレクションの概念を用いたベクタやハッシュテーブルの事例を紹介してくれる。また、リスト型が複素数に対応してくれるのもありがたい。尚、今日では多くの言語で複素数型がサポートされている。C99ライブラリのように...

1. コレクションの概念
「リストを理解する手がかりは、そのほとんどがより基本的なデータ型のインスタンスであるオブジェクトの上に構築された幻想だと理解することにある。その単純なオブジェクトはコンスセルと呼ばれる値のペアであり、関数 CONS を呼び出すことによって作り出される。」
リスト型データ構造を効率的に用いる方法として、コレクションが紹介されるが、明確な違いがよく分からん!コレクションを操作する方法として、シーケンスというサブタイプがあるが、その多くはリストでも使えそうだし。ただ、シーケンスは非常に強力なために、リスト操作とは抽象度の違いを感じるのも確かで、コレクションという用語を新たに生み出すだけのことはありそうか。

例えば、ベクタでは...
固定サイズに vector関数、固定サイズと可変サイズの両方に make-array関数が用意される。要素の追加と削除には、vector-push, vector-pop があり、シーケンスのレベルでベクタとリストが区別されるかに見える。反復関数には、count, find, position, remove, substitute などがあり、これらの関数の末尾に、-if を付けて条件式として使える。count-if, find-if... といった具合に。
シーケンス全体の操作では、copy-seq, reverse、あるいは、連結に、concatenate がある。ソートには、sort, stable-sort。尚、stable- 述語で順番が入れ替わらないことを保証する。部分シーケンス操作には、subseq。尚、範囲は開始と終了インデックスで指定。他には、marge, search, mismatch など。
また、シーケンス述語に、every, some, notany, notevery がある。

  every : すべての述語が満たされれば t、それ以外は nil。
  some  : 1つでも満たすものがあれば t、すべて満たさないときは nil。
  notany : 1つでも満たされれば nil、1つも満たさない場合に t。
  notevery : 1つでも満たされれば t、1つも満たされない場合 に nil。

複数のシーケンスに対して関数を施したい時は、map, map-into といったマッピング関数が使える。
また、一つのシーケンスに対しては、reduce が便利。
合計を求めるには...

  (reduce #'+ #(1 2 3 4 5 6 7 8 9 10))  => 55

最大値を見つけるには...

  (setf numbers '(10 12 14 16))
  (reduce #'max numbers)  => 16

キーワード引数には、:key, :from-end, :start, :end がある。
固有の引数には :initial-value があり、シーケンスの初期値が設定できる。

ハッシュテーブルでは...
生成に、make-hash-table。要素にアクセスするには、gethash。gethashに複数の返り値がある場合は、 multiple-value-bind マクロが用意される。
反復処理は、maphash でこんな感じ...

  (maphash #'(lambda (k v) (format t "~a => ~a~%" k v)) *hash*)

2. 例外処理とコンディションシステム
Lispの偉大な機能の一つにコンディションシステムがあるという。Java や Python や C++ における例外処理と似た目的で提供されるが、もっと柔軟でエラー処理にとどまらないという。プログラムの実行中に起こる出来事を記述できるので、例外よりも汎用性が高いということらしい。例外処理においては、エラーの捕捉とその通知が鍵となるが、Lispでは更に再起動という機能が付加される。
ところで、エラー処理とは、なんであろうか?プログラムは関数の階層によって組み立てられる。低位の関数の上に高位の関数が構築されれば、実行中の実体はコールスタックという形で現れる。低位のプロセスは、高位のプロセスのコールスタック上にあるということだ。
したがって、エラーを捕捉する格好の場所は、関数の境界ということになろう。実際、低位と高位の依存関係において問題が発生しやすい。例えば、呼び先のファイルが存在しないとか、メモリの空き容量が足りないとか、ネットワークが落ちているといった原因で。関数単体から見て、想定外の条件への対処とも言えよう。一方で、関数内で起こるエラーはそれこそバグであり、ここで扱う問題ではない。
例外機構を備えていないシステムでは、エラー通知は関数の呼び出し元に送ることになろうか。そして、復帰のための処理をするか、失敗を放置するかは、呼び出し元が決定することになる。単純にスキップするだけで何事も起こらなければいいが、現実はそう甘くない。
しかし、例外機構が具わっていれば、コンディションを監視することによって、何らかの対処をシステムレベルで可能にする。復帰処理において、スタックを巻き戻して関数の再起動を試みたり、保険処理のようなものも定義できそうだ。ただ、あくまでも想定外の条件に対処するわけで、却って仇となることもあろう。
Common Lispでは、エラーを回復するコードと、どうやって回復するかを決めるコードが分離されているという。戦略的には、どうやって回復するかは高位の関数に委ね、回復のためのコードを低位の関数に記述できるという仕掛けか。しかも、コンディションは一般オブジェクトと同等な扱いで定義できるようである。再起動によって効果をもたらすには、明確にコードを呼びださなければなるまい。復帰条件も異なろうが、複数の再起動が定義できるようである。コンディションハンドラは、警告をエラーに昇格させることも、その逆もできそうだ。
通知の基本関数は、signal 。なんとなく馴染みのある名前だ。これだけでプログラムのコンディションというよりは、システムコールレベルを想定していることが分かる。コンディションを理解する鍵は、コンディションを通知しただけでは制御フローに影響しないことを理解することだという。
「エラー処理には、プログラミングの教科書であっさりとしか説明されないという残念な宿命がある。エラー処理が適切かどうかは、解説用のコードと製品レベルの品質コードの最も大きな違いだといえる。後者を書くコツは、特定のプログラミング言語の構文の詳細ではなく、ソフトウェアについて特別な厳しい考え方を身につけることにある。」
ただ、あまり柔軟すぎると例外処理と通常処理の境界が曖昧になりそうだ。最もコードのセンスが問われるところでもあろうか。いずれにせよ、最悪の場合、リセットすべきか?再起動すべきか?あるいは、他の処理をすべきか?それはシステムによっても違ってくるし、ソフトウェアだけの問題ではない。
ちなみに、某原発事故では、あろうことか!電源を供給する電力会社が、電源を失うことを想定していなかったと平然と語られた。多くのシステム屋さんにとって、戒めの言葉に聞こえたことだろう...

3. loopマクロ
「皮肉なことだが、マクロを正確に理解する最大の障壁は、おそらくマクロがあまりにうまく言語に統合されてしまっていることにある。」
Lispを使っていると、まずもって不思議な感覚に見舞われるのは、マクロと関数の違いが曖昧にさせられることである。引数も取れば、値も返すし、ちょっと風変わりな関数にしか見えない。だが、実装は全く違う。マクロは単純に展開されるだけに、ローカル変数の束縛で悩ましい。だが、変数名が重複しないように、with-gensyms が用意される。
関数は言語の構文に従うが、マクロはそんな制約を受けないと言えばそうだが。あるいは、マクロはある種の翻訳機とも言えるわけだが...
「言語を"コアに標準ライブラリを追加したもの"と定義する利点のひとつに、理解や実装が容易になることがある。しかし本当のメリットは、言語が容易に拡張できる表現力にある。なにせ、言語だと思っているものの大半はただのライブラリなのだ。」
この感覚を味わうには、loopマクロがうってつけである。ループ構文には、do, dolist, dotimes とったものがある。ただ、これらの表現力は大げさ過ぎる。Lispで書かれていながら、using などの副節でカッコが省略されるところは、実にLispらしくない。
「なぜ LOOP の作者がこの副節で括弧なしスタイルに怖気づいたのか、私に訊かないでほしい。」

loopマクロの主な機能部品は、ざっとこんな感じ...
  • ローカル変数の生成とループ変数の自動更新。
  • 値の収集(collect)、計数(count)、合計(sum)、最小化(minimaize)、最大化(maxmize)。
  • 任意のLisp式の実行。
  • 条件付き終了。
などなど...
おまけに、前処理(initially)と後処理(finally)の節を用いて、ループの前後に任意の処理が指定できる。このあたりの実装は、unix上で動く awk の思想を感じる。

4. format関数
「Common Lisp の FORMAT関数は、LOOPマクロと並んで人々を感情的にさせる機能だ。信者もいればアンチもいる。」
format関数の複雑な制御文字は、電話のノイズに似ているという。確かに、printf風でありながらまったく違うし、正規表現とも違う。短く書けることが最善とするならば、あらゆる文書は暗号文となろう。いや、呪文か!
ただ、暗号ってやつは、解き明かせば恐れるに足らん。まず、すべての指示子は、~(チルダ)で始まる。指示子によっては、前置パラメータをとる場合がある。前置パラメータは、チルダのすぐ後に書き、複数ある場合はコンマで区切る。最も汎用な指示子は、~a で、人間の読める形に出力する。これだけ押さえれば、大概のことは解読できそうである。
改行を出力するには、~%。新しい行を出力するには、~&。尚、~% は常に改行するのに対して、~&は行頭でないときのみ改行する。

  (format t "~a~%" list)
  (format t "~5$" pi)  => 3.14159  ($ は小数点表示、デフォルトは2桁)
  (format t "~d" 1000000)  => 1000000 (d は10進数表示、他に、~x, ~o, ~b がある)
  (format t "~@d" 1000000) => +1000000 (符号付き)
  (format t "~:d" 1000000) => 1,000,000 (3桁ごとに区切る)
  (format t "$~:d" 1000000) => $1,000,000 (通貨単位ドル)

条件による整形には...
~[, ~] で囲んで、条件分岐を指示する。

  (format t "~[cero~;uno~;dos~]" 1)  => uno (~; で区切ってインデックスで指定)

~{, ~} で囲んで、反復を指示する。

  (format t "~{~a, ~}" (list 1 2 3)) => 1, 2, 3,

最も驚かされるのは英文制御が凝っていることだ。使うかどうかは別にして...
~r は、英語の指示子。

  (format t "~r" 1234)  => one thousand, two hundred and thirty-four
  (format t "~@r" 1234)  => MCCXXXIV (@ はローマ数字)
  (format t "~:@r" 1234)  => MCCXXXIIII (:@ は古いローマ数字)

単数形と複数形の制御に、~p を用いると、複数形の時、sを付加する。

  (format t "~r file~:p" 1)  => one file
  (format t "~r file~:p" 10)  => ten files

さらに、@ は単数形の時 y、複数形の時 ies を付加する。

  (format t "~r famil~:@p" 1)  => one family
  (format t "~r famil~:@p" 10)  => ten families

大文字と小文字制御では、~(, ~) で囲んで、その間の制御文字列を小文字で出力する。
@ は文字列の最初の文字が大文字。: はすべての単語の頭が大文字。両方つけると、すべて大文字。

  (format t "~(~a~)""THE QUICK BROWN FOX")  => the quick brown fox
  (format t "~@(~a~)""THE QUICK BROWN FOX")  => The quick brown fox
  (format t "~:(~a~)""THE QUICK BROWN FOX")  => The Quick Brown Fox
  (format t "~:@(~a~)""THE QUICK BROWN FOX") => THE QUICK BROWN FOX

5. Lisp in a BOX
REPL(read-eval-print loop)とは、読み取り(read)、評価(evaluate)、印字(print)の終りのないサイクル、すなわち、対話式機構のこと。この環境を手っ取り早く提供してくれるものに、「Lisp in a BOX」というものがあるそうな。それは、Emacsと Common Lisp開発環境 SLIME をパッケージ化したものだという。elispにはかなり方言があるようで、やはり SLIME がよさそうである。Emacs風のIDEといったところか...

6. AllegroServe
最近のブラウザは余計な機能が多すぎる。核となる機能は、Webサーバからページをリクエストし、それをレンダリングすること、これだけでもかなり遊べる。
仕事では、ドキュメント関連を、XMLで書け!って要求されることがある。閲覧するだけなら pdf でもよかろうが、検索機能や入力フォームなどが欲しいというわけだ。そのくせ向こうからは、word や excel の文書が提供されるけど。この手の自動生成ツールは、スペックが大げさで、しかもろくなコードを吐かない。結局、機能を限定したXML生成ライブラリを書く羽目に...
そこで、コードのテスト用に、簡易的なサーバが立ち上げられるとありがたい。本書は、そんな時にうってつけのWebサーバを紹介してくれる。AllegroServe と PortableAllegroServe だ。Rubyで言うところの、WEBrick のようなものか。ちなみに、Hunchentoot ってのもよさそう。

パッケージを導入するには...
Allegro Common LIsp ならば、AllegroServe に対して、require する。

  (require :aserve)

他のLispシステムでは、PortableAllegroServe に対して、require の代りに loadする。

  (load "./portableaserve/INSTALL.lisp")

localhostサーバを定義するには...(例えば、ポート2001の時)

  (net.aserve:start :port 2001)

ファイルやディレクトリを公開するには...

  (publish-file :path "/hello.html" :file "/tmp/html/hello.html")
  (publish-directory :prefix "/" :destination "/tmp/html/")

後はブラウザで、http://localhost:2001/hello.html にアクセスすればいい。

"Emacs Lisp テクニックバイブル"るびきち 著

$
0
0
本書は、Lisp を手軽に学ぶために手にしたのだが、仕事仲間に話題を振ると、エディタ談義で盛り上がってしまった。プログラミング言語とエディタには相関関係があるという説もあるが、無理に法則性を見出すこともあるまい。開発環境は開発者の思考の場であり、テキストエディタは思考プロセスを書きとめる上で最も単純で根幹的な道具となる。それだけに使い手の思い入れは強く、プログラミング言語同様、宗教的ですらある。むかーし、出張先で困らないように、最低でも vi ぐらいは使えないといけないよ!と指摘されたことがある。もうそんな時代でもあるまいが、どんな環境でも対応できるような身体にはしておきたい。
本格的にエディタの選択に迫られたのは、20年前になろうか。Emacs に敷居の高さを感じたのは、デフォルトのキーバインドが酷かったこと。vi の方がましだと思ったぐらい。現在でも、Emacs のキーバインドにうろたえる人は少なくあるまい。ネット社会ともなれば、カスタマイズした設定ファイルを公開してくれる方々がいて、非常に助かる。shell環境もそうだが、この手の設定環境は伝承される傾向があり、情報不足に陥ることはなさそうだ。
とはいえ、デフォルトで使いづらいというだけで、ヤル気が失せる。編集作業において、キーワードの補完や色分けといった機能は必須だ。コーディング中に、変数名の綴りを間違うだけで大きなストレスとなる。ちなみに、Emacs では、テキストの色分け機能がデフォルトで無効になっているという。(require 'generic-x)ってやれば済む話だが。著者は、これだけで Emacs ユーザの損失だと嘆いている。そうだろう!そうだろう!てなわけで、おいらは秀丸エディタ派となった。なんにせよ、テキストエディタってやつは、料理人でいうところの包丁一本... の存在だ!

しかしながら、プラットフォームに依存しない作業環境という観点から、Emacs も捨てがたい。たまには、Emacs + Mew を使うし、TRAMP というリモートアクセス用のパッケージにも興味がある。Windows版や Mac版もあるにはあるが、一昔前はバージョンや OS の違いで互換性が保たれないという印象があった。現在ではそうでもないらしい。
Emacs のマクロ機能は、秀丸エディタのそれとは比べ物にならないのも確か。一つのエディタの中に作業環境を押し込むのもどうか?という疑問もあるが、Emacs はエディタの概念をも超越している。実際、エディタの外に、gcc, Ruby, HTML & JavaScript などの環境を並行して構築しているが、プラットフォームを Emacs で吸収するという考え方もあるだろう。それを実現させるものが、バッファの概念だ。初めて触れた時、そのエレガントな思想に感動したものである。ファイルから独立したバッファの抽象度は高く、作業領域やアプリケーション領域に割り当てることができる。
ざっと眺めるだけでも... コマンドや関数の補完では、Completions バッファが自動で開いて候補が表示される。Help を開けば、そこに表示用バッファが生成される。ファイルを探す時(find-file)、カーソルでディレクトリ階層を辿ることができる。shell との相性がよく、端末として使える。本書は、eshellってやつを紹介してくれるが、病みつきになるらしい。なによりも驚くべきは、一時的な作業領域の scratch バッファが、lisp式を評価する機構を具えていることだ。あるいは、Lisp用対話型インタプリタも用意されている。本書では、これらよりもっといいやり方を教えてくれるけど...
それにしても、秀丸エディタのタブモードは捨てられん!と思いきや、Emacs にもあった。tabbar.elってやつが...

さて、Emacs Lisp の方はというと、ちと印象が違う。多少の方言は覚悟しても、Common Lisp の簡易版ぐらいに思っていたのだが、本書は決定的な違いがあることを教えてくれる。その違いとは、グローバル変数やクロージャの思想、そして、Common Lisp がレキシカルスコープであるのに対し、Emacs Lisp はダイナミックスコープだということ。
例えば... 関数もどきの let ってやつは、Common Lisp ではレキシカルスコープだが、Emacs Lisp ではダイナミックスコープになるんだとか... おいおい!!!
Common Lisp の機能を提供するパッケージ(cl.el)ってやつもあるが、禁止事項があって制限が設けられているという。著者は、そんな無駄なことを... と愚痴を語ってくれる。ソフトウェアを使う上で、達人の愚痴ほど参考になるものはあるまい。Emacs Lisp の進化過程では、Common Lisp の機能から派生したものが多い。昔は、when すらなかったとか。徐々に Common Lisp に近づいていくとすれば、制限することになんの意味があるのか、と疑問を持つのも当然であろう。実際、cl.el は標準装備され、(require 'cl)ってやるだけで使える。Lispユーザは当たり前のように使っているそうな。いくら制限を設けても、民主主義によって淘汰されていくだろう。
また、Emacs lisp はシングルスレッドだが、emacs 自体はマルチスレッドで、擬似マルチスレッドプログラミングのための deferred.el というライブラリも紹介してくれる。

1. Emacs Lisp のためのパッケージ... auto-install.el
auto-install.el は、URLを指定するだけでネット上の Emacs Lisp プログラムをインストールできるようになるという。尚、EmacsWiki(http://www.emacswiki.org/)には、様々なパッケージが集められている。

$ mkdir -p ~/.emacs.d/auto-install
$ cd ~/.emacs.d/auto-install/
$ wget http://www.emacswiki.org/emacs/download/auto-install.el
$ emacs --batch -Q -f batch-byte-compile auto-install.el

.emacs.el
(add-to-list 'load-path "~/.emacs.d/auto-install/")
(require 'auto-install)
(auto-install-update-emacswiki-package-name t)
(auto-install-compatibility-setup)
(setq ediff-window-setup-function 'ediff-setup-windows-plain)

他にも、Lisp 使いに便利そうな5つのパッケージを紹介してくれる。
  open-junk-file.el          (試行錯誤用ファイルを開く)
  lispxmp.el                 (式の評価結果を注釈する)
  paredit.el                 (括弧の対応を保持して編集する)
  auto-async-byte-compile.el (保存時に自動バイトコンパイル)
  package.el                 (ELPA/Marmaladeインストーラ emacs24で標準)

ダウンロードは...
M-x install-elisp-from-emacswiki open-junk-file.el
M-x install-elisp-from-emacswiki lispxmp.el
M-x install-elisp http://mumble.net/~campbell/emacs/paredit.el
M-x install-elisp-from-emacswiki auto-async-byte-compile.el

ついでに、tabbar.el も...
M-x install-elisp-from-emacswiki tabbar.el
それぞれダウンロード後にファイルがポップアップするので、C-c C-c とすればインストール完了。

2. Lisp式の評価方法
対話的に評価できる方法が二つあるという。一つは、scratch バッファを使う方法。二つは、ielm(Interactive Emacs Lisp Mode)を使う方法。
scratch バッファでは、eval-print-last-sexp コマンドで直下に評価結果が出力される。eval-last-sexp でも評価できるが、出力場所がコマンドライン上で少し遠い。尚、eval-print-last-sexp には C-j が、eval-last-sexp には C-x C-e がキーバインドされている。
ielm は対話型インタプリタで、Rubyで言うところの irb(Interactive Ruby)か。M-x ielm とやれば起動する。
この二つだけでも感動しているというのに、本書はもっといいやり方を教えてくれる。上記の方法は、Emacs を終了すると結果が消える。そこで、open-junk-file.el パッケージを用いれば、ジャンクファイル上で評価して自動保存できる。ジャンクファイルとは、日時を元にしたファイル名をもつファイルのことで、M-x open-junk-file ってやれば起動する。惚れっぽい酔っ払いは、ジャンクにイチコロよ!

3. Common Lispパッケージ... cl.el
関数の名前空間は、Common Lisp と Emacs Lisp に違いがあって、衝突の可能性がある。なので、cl.el の禁止事項は、eval-when-compile でバイトコンパイル時にロードしてマクロを使う分には許可するが、Common Lisp の関数は使うな!ということらしい。つまり、(require 'cl) が禁止ということか?
本書は、(eval-when-compile (require 'cl)) ってやれば、Common Lisp のマクロを合法的に使えるとしている。ランタイムに cl.el のロードが禁止となれば関数は使えないが、コンパイル時に展開されるマクロならOKってか?ん~... 解釈の問題のような気もするが...
今となっては、Common Lisp に総入れ替えするわけにもいかないだろう。古い資産が誤動作しそうだし。Common Lisp と Emacs Lisp で、レキシカルスコープとダイナミックスコープの違いがあるのも、関数の変数をめぐって大きな問題となりそうだ。ならば、(require 'cl)を許可して、Common Lisp でオーバライドさせることを明示すれば良さそうな気もするが...
それはともかく、本書で紹介されるマクロは、なかなか便利そうである。リスト構造を分解して変数に代入する時、car, nth が冗長的なので、destructure-bind を使うとすっきりする。汎変数を使うと、代入の概念を拡張できる。setq は、その拡張版の setf が使える。汎変数には、car, nth といったリスト要素だけでなく、buffer-substring, point といったバッファ関連もあるようだ。
let/let* のレキシカルスコープ版は、lexical-let/lexical-let* があるという。ん~、これは微妙だなぁ!他には構造体が使えたり...
本書は、loop マクロをかなり丁寧に解説してくれる。こいつは、Common Lisp が提供するモンスターマクロだという。リストやベクタの要素の合計/最大値/最小値を与えたり、各要素に関数を適用したり、条件を満たす要素を抽出して演算を施したり... などの演算節が豊富で、統計情報を処理するのに強力なツールとなる。連想リストやハッシュテーブルのキーを求めたり、フィボナッチ数列を求めたりするのも、エレガントに書けるという。
また、非局所脱出メカニズムには二つあるという。Emacs Lisp 本来の catch/throw と Common Lisp の block/return-from。Common Lisp には block の概念があり、明示しなくても暗黙に block が形成される。この block がレキシカルスコープを実現している。block からは、return-from で脱出できる。一方、catch はダイナミックスコープの場合で、脱出時には、throw を呼び出す。cl.el のおかげで、Emacs Lisp でも block/return-from の仕掛けが使えるというわけか。

4. eshell のすゝめ
eshell は、Emacs Lisp で書かれているために、プラットフォームに依存しないという。zsh ライクで、使い勝手もよさそう。普通のシェルはC言語などで書かれているため、シェルスクリプトの範囲でしか拡張できないが、eshell はコマンド解釈の部分ですら乗っ取ることが可能で、コマンドラインを丸ごと zsh や Ruby に渡して実行することができるという。おぉ~...

"ガベージコレクションのアルゴリズムと実装"中村成洋/相川光 著 竹内郁雄 監修

$
0
0
プログラムが深刻な問題を抱える時、動的メモリの管理に関するものが多い。メモリ系のバグが厄介なのは、バグが埋め込まれる箇所と、それが顕在化するタイミングが大きくズレていることにある。かつて、必要なデータ領域の確保と解放の問題は、プログラマの責任とされた。今でも、そうなんだろうけど...
整数型や文字型などプリミティブなデータ型を扱う分には、それほど目くじらを立てることもあるまい。だが、大量のデータ領域、あるいは、クラス型や構造体といった抽象化データを扱う場合には注意がいる。メモリ空間を相対アドレスで管理すれば、複雑なデータ構造にもアクセスしやすい。物理的には、参照という形で間接アドレッシングの構造を持つことになる。あの忌み嫌われるポインタってやつだ。こいつの危険性は、参照値をちょいと間違えたり改竄するだけで不正領域を指すことができることで、セキュリティ上の問題となる。あるいは、malloc/free, new/delete といった御呪いを疎かにするだけで、ヒープ領域には文字通りゴミが山積みされる。メモリ資源が豊富になればなるほどコードは複雑化し、バグの頻度が高まるは必定。不要になったゴミは長い間メモリ空間に居座り、メモリリークやらで他のプログラムと衝突したり、コールスタックに矛盾が紛れ込んでシステムを不安定にさせたり、最悪の場合メモリを喰い潰してシステムをダウンさせる。
そこで登場するのがゴミ収集係、そう、ガベージコレクションだ。人間社会においても、ゴミ清掃システムが破綻すると都市は崩壊する。地味な存在こそが、真の意味でシステムを支えている。本来、論理性だけに傾注したいプログラマとって、低水準な構造を意識させられることは思考の足かせとなる。動的空間を意識せずに済むというだけで、情報のゴミに翻弄される酔っ払いは幸せよ...

しかしながら、自動化という言葉は、心地よい響きがするだけに迷信となりやすい。厄介な機能を隠してくれるということは、その危険性までも隠蔽することになる。
近年、ポインタの概念を排除した多くの高水準言語を見かける。だが、むろんポインタがなくなったわけではなく、隠しているに過ぎない。トリッキーなキャストを要求するようなデータ定義が危険なことに変わりはない。ゴミ収集の仕掛けや癖を知っておくだけでも、危険なデータ構造を定義するリスクを避けることができよう。
ちなみに、おいらはプログラマではないが、メモリ管理やデータ構造の考え方はハードウェア設計でも参考になる。FIFO構造やスタック構造など物理構造の制限に因われなければ、思考も広がるだろう。おまけに、アルゴリズムを読むのが好きときた。コンパクトでエレガントに書かれる分野だけに、数学的で無味乾燥的なものと思われがちだが、そこには作者の思考物語が埋め込まれている。それが読み取れた時、感動を禁じ得ない...

本書に共感を覚えるのは、実装の解説をデータ型から始めてくれることである。おいらは、データ型やクラス型や構造体などの定義が、コンパクトな仕様書のようなものだと考えている。静的なデータ型を一通り定義するだけで、大方のプログラムイメージが出来上がっている。型の適切な定義は、そのプログラムが何をするものかについて、かなりの事を物語ってくれるはずだ。
実装編では、Python, DalvikVM(Android), Rubinius(Ruby), V8(JavaScript)におけるものが紹介され、言語システムを違った視点から眺められるのも興味深い。ただ、アルゴリズムではやや意外な印象を与える。それは、この技術分野が思ったより推論的で、確率論的であること。人間社会的とも言えようか。自分で明示的にやった方がマシかもしれない、と思わせるところもある。もう少しきちんと管理してくれると思ったのだが、保険の機能ぐらいに思った方がよさそうである。
ガベージコレクションは、大まかに「保守的GC」「正確なGC」の二つに分類される。保守的GCとは、「ポインタと非ポインタとを識別できないGC」のことだという。正確なGCとは、言うまでもなく確実にポインタを識別すること。それがポインタなのかも正確に判断できないとなれば、データ領域を勝手に移動すると本来の参照関係が崩れることになる。よって、フラグメーテーションの問題がつきまとう。
しかしながら、ポインタの識別は構文解析と関わり、言語処理系の支援なしで完璧な判別は困難となる。処理も重そうだし、本筋のプログラムが遅くなったり停止するのでは本末転倒。保守的GCを選択する方が、実用的なようである。
さらに、アルゴリズムが言語処理系に対して独立して設計できるかどうかも、実用性の指標となろう。結局、現実味のある実装は、互いのアルゴリズムの欠点を補い合うような複合的な用い方になる。いまや実用的の代名詞となった、妥協、適当、微妙... ってのが、この世にマッチしているのかもしれん。どうせ世界は不完全だし。現代社会は、何事も面倒なことを覆い隠し、利便性や自動化に邁進していくが、自動化に頼り過ぎる感は否めない。本書は、これを問うているようにも映る。プログラミングが庶民化すると、低品質のソフトウェアが大量に出回る。少なくとも、システムプログラムとアプリケーションプログラムでは、プログラマの意識にも雲泥の差が生じるだろう。高水準という基準も曖昧になっていく。かつて、C言語も高水準言語と呼ばれた。そりゃ、アセンブラ言語に比べれば、見た目からして高級だ。アセンブラ言語だって機械語に比べれば、はるかに抽象度が高い。所詮、相対的な価値観の問題か。今日、高水準と呼ばれるプログラミング言語の一つの指標として、言語システムが動的メモリを自動で管理してくれるかどうか、という見方はできそうである...

1. ガベージコレクションの世界と三つの基本アルゴリズム
1995年、Javaの発表以来、ガベージコレクション技術の有り難さが広く認知されるようになった。しかし、その歴史は古く、1959年、Lispの設計で、D.Edwards が実装したという。
本書は、基本的なアルゴリズムに、「マークスイープGC」「参照カウント」「コピーGC」の三つを挙げ、他は派生型や組合せとしている。マークスイープGCは1960年、John McCarthy が発表... 参照カウントは1960年、George E. Collins が発表... コピーGCは1963年、Marvin L. Minsky が発表... と、この分野の基礎技術は半世紀前にほぼ確立しているようである。いずれにせよ、完璧なガベージコレクションの方法はない。マシン、言語、アプリケーションなどの設計思想に応じて、アルゴリズムの組合せや用い方も変わる。
全般的な印象として気になるのが、GCの起動タイミングが先送りなところである。具体的には、メモリアロケーションに失敗した時。おいらは、ゴミが発生したら即掃除しないと気が済まないタチだ。もちろん、先駆けてメモリ状態を健全に保とうとするアルゴリズムもあるが...
また、同じソフトウェア業界でありながら、用語のニュアンスもだいぶ違うようである。
例えば...
「オブジェクト」とは、オブジェクト指向で言うところの属性や振る舞いを持ったサービス群という意味合いでなく、データの塊を意味するという。ガベージコレクションは、この塊を基本単位とし、メモリ上での移動や破棄といった操作を行う。
「ミューテータ(mutator)」という用語も紹介してくれる。Dijkstra によって考案された用語だそうで、「変化させるもの」という意味。オブジェクト指向的なオブジェクトへのアクセスメソッドは、基本的に set/get 系で済むと思っているが、ガベージコレクションでは参照関係を重視するため、ゴミ収集ではミューテータのタイミングが鍵となりそうだ。つまり、参照関係は時間とともに変化するが、その監視の手がかりになるというわけである。
「チャンク(chunk)」という用語も聞き慣れない。「かたまり」という意味で、将来的にオブジェクトを利用するための空き領域のこと。ガベージコレクションは、死んだオブジェクトを回収して、チャンクとして次に備える。
... こうした用語がデータ構造にだけ着目している点に、いかにもゴミ収集の世界という印象を与える。要するに、問題は死んだオブジェクトをいかに判別するかということ。過去の実績や栄光などに構っちゃいない。そして、ガベージコレクションの役割は、死んだオブジェクトを本当の意味で葬り去ることにある。

2. マークスイープGC(Mark Sweep GC)
保守的GCの代表的な存在のようで、その名のとおり、マークフェーズとスイープフェーズからなる。マークフェーズは、生きているオブジェクトにマークをつけるステップ。スイープフェーズは、マークのついていないオブジェクトを回収するステップ。その機構は極めて単純で、ルートから階層的に参照関係を再帰的に辿ってマークすれば、すべてのオブジェクトがマークできるという発想。
オブジェクト探索には、その階層から「深さ優先探索」と、その広がりから「幅優先探索」とが考えられる。GCはすべてを探索する必要があるので、どちらを優先しても探索するステップ数はあまり変わらない。だが、メモリ消費量を比較すると、深さ優先探索の方が少なく抑えられる傾向にあるという。アロケーションのタイミングは、ミューテータからチャンクが要求されると、その適切なサイズのチャンクを返す。
チャンクには、「First-fit, Best-fit, Worst-fit」の三つの戦略があるという。First-fit は要求されたサイズを返す。Best-fit は要求サイズ以上で最小のチャンクを返す。Worst-fit は最大のチャンクを見つけ、要求されたサイズとその残りに分割する。戦略によっては、細かなチャンクが多くなってしまう問題がある。そこで、連続したチャンクをつないでおいて、フリーリストとして持っておく手もある。
また、マークスイープGCは、Copy-On-Write との相性が悪いという。Copy-On-Write とは、unix系の仮想記憶で使用されている高速化手法で、プロセスのコピー(fork)を行う時など、大半のメモリ領域でコピーしたふりをして、実際にはメモリを共有するといった仕掛けである。だが、書き込みが発生した場合、他のプロセスとの不整合が生じるため、共有メモリを勝手に書き換えるわけにはいかない。書き込む場合は私有領域にコピーしておき、その領域上でデータ操作を行えばいいのだけど。マークスイープGCは、生きている可能性のあるオブジェクトすべてにマークビットを立ててしまうため、本来発生しないコピーが頻発してメモリを圧迫するという。確かに、マークビットを立てるだけで、オブジェクトに書き換えが生じたと勘違いされては困る。この問題に対処する方法が、「ビットマップマーキング」だという。ガベージコレクション用のヘッダをビットマップテーブルとして別管理するわけか...

3. 参照カウント
すべてのオブジェクトに参照の数を記憶させるという考え方で、各オブジェクトは自分の人気度を知っていて、人気がなければ自然消滅させる。マークスイープGCでは、チャンクがなくなった時にミューテータがGCに空き領域を要求するが、参照カウントでは、ミューテータが明示的にGCを起動することはなく、ミューテータの処理とともにカウンタの増減を行う。カウンタの増減のタイミングは、ミューテータが新たなオブジェクトを生成する時やポインタの参照状態を更新した時で、カウンタ値がゼロになると破棄される。参照カウントは、メモリ管理をミューテータと並行して行うという特徴がある。しかしながら、カウンタ値のビット幅が大きくなり、処理が重たそう。
また、循環参照が回収できないという大きな欠点を抱えているという。カウンタのビット幅を減らす方法では、「Sticky参照カウント法」を紹介してくれる。その極端な例では、1bitしか割り当てない「1ビット参照カウント」という方法もあるという。すぐにオーバーフローするわけで、簡易的な判別ぐらいにしか使えないような...
カウンタの増減処理を軽減する方法では、「遅延参照カウント法」という改良版が紹介される。
さらに、循環参照が回収できるように、マークスイープGCと組み合わせた「部分マークスイープ法」を紹介してくれる。循環参照が回収できないのは、参照カウントの特有の問題とすれば、通常は参照カウントをやっておき、必要な時にマークスイープGCを呼び出すという戦略である。しかし、効率が悪いようだ。一般的に、循環参照をもつゴミは滅多に生じないのだとか。循環参照を持つかもしれないオブジェクト群に対してのみ、マークスイープGCを適用するとなると、循環参照であるかもしれないという推定が必要になる。再帰的にアロケーションを試すといった機構が必要か。これはこれで、オーバーヘッドが大きそうである。滅多に生じないのであれば、最初のキューが空かどうかだけでも、かなりの判別ができそうな気もする。

4. コピーGC(Copying GC)
生きているオブジェクトだけを集めて別の領域にコピーし、連続した領域を確保するという考え方。むかーし、メインフレームでコンデンスによる最適化といった処理を明示的にやっていたような... おっと、年齡がバレそう!ユーザが明示的にデフラグをやる某OSの思想もどうか?と思うが...
それはさおき、コピーGCはフラグメンテーションの抑止に非常に良く、メモリ状態を常に健全に保てるという特徴がある。全領域をコピーするので、保守的GCと相反する。参照関係にあるオブジェクト同士が隣り合わせにあるので、キャッシュメモリの恩恵を受けやすい。しかし、ヒープ領域を常に二等分して、片方をバックアップ用に開けておく必要があるため、メモリの使用効率が悪い。
また、再帰的関数の呼び出しでは、子オブジェクトが再帰的にコピーを行うため、オーバーヘッドが大きいという。再帰的コピーの対処では、固有の反復コピー関数で置き換える「CheneyのコピーGC」を紹介してくれる。キャッシュとの相性を犠牲にするが...
あるいは、全体を二等分するのではなく、細かく空間を分けて、マークスイープGCなどの他のアルゴリズムに割り当てる「複数空間コピー法」も紹介してくれる。フラグメンテーションの問題が再浮上するけど...

5. 世代別GC(Generational GC)
三つのアルゴリズムとは、ちと違う視点だが、考え方としては興味深い。注意したいのは、このアルゴリズムは単独なものではなく、他のGCと組み合わせることである。
ほとんどのオブジェクトは生成されてすぐゴミになり、長く生き残るのは稀、という研究報告があるそうな。そこで、オブジェクトに年齡の概念を導入する。GCを一回経て、生き残ったオブジェクトは、1歳となる。そして、オブジェクトを世代別に分類し、一定の年齡を超えると旧世代オブジェクトとし、新世代オブジェクトを重点的にGCの対象とすることで時間を短縮する。
とはいえ、旧世代から新世代への参照を考慮する必要がある。その対処では、記憶集合(Remembered set)を使って、新世代への参照を効率よく見つけることができるという。そして、「ライトバリア」という旧世代から新世代への参照を記録するための機構を紹介してくれる。ヒープ領域が圧迫された時の非常手段として、旧世代オブジェクトから排除するというのはありかもしれん。楢山節考やなぁ...

6. Python
Python のメモリ確保は、単純に malloc/free を使うだけでなく、その上に3階層の独自レイヤを重ねて、効率的なアロケーションを行う戦略をとっているという。

  レイヤ3: PyList_New(), PyTuplet_New(), PyDict_New(),...
  レイヤ2: PyObject_GC_New(), PyObject_Malloc(), ...
  レイヤ1: new_arena()
  レイヤ0: malloc()

しかも、オブジェクトの生成時に、割り当てるメモリのサイズによって、アロケーション方法を変えている。要求サイズが 256byte を超えると素直に malloc を呼び、それ以下だとレイヤ順に登っていく。オブジェクトのほとんどが、256byte 以下で、しかも、すぐに捨てられる傾向にある。例えば、forループ文では一時的な文字列や数値列を大量に使い捨てるので、malloc/free 構造を使うのはあまりにも酷。
その構造は、細かい方からブロック、プール、アリーナの3階層になっているという。アリーナオブジェクトはプールで分割され、プールサイズは 4Kbyte 固定。このサイズは、大抵のOSの仮想メモリのページサイズ 4K と合う。OSがプール単位でメモリ管理してくれることを期待してのことか。それで、OSとの相性が良くなるかは知らんが...
また、アルゴリズムは参照カウントをベースとし、「参照の所有権」という構造を紹介してくれる。所有権はオブジェクトに対するものではなく、参照に対してのもの。尚、オブジェクト自体には所有権はない。参照の所有権は、関数の戻り値と引数に大きな意味を持つという。関数側は、呼び出し側に戻り値と一緒に参照の所有権を渡す。参照の所有権を持つものが、同時に破棄する権利を持つという考え方か。他から参照ができるのは、参照の所有権を借りている状態とするわけだが、借り手が勝手に破棄するわけにはいかない。ただ、カウンタをデクリメントする権利はある。貸出時にインクリメントして、返却時にデクリメントするという仕掛けか。まるで図書館の仕組み。しかし、すべてのデータのやりとりにおいて、参照の所有権がつきまとうとなれば、言語処理系に仕様変更や機能追加をする度に、GCの構造に振り回されそう。
また、参照カウントの欠点である循環参照の問題は、マークスイープGCの改良版との組合せで対処しているという。循環参照は、すべてのオブジェクトで起こるのではなく、コンテナオブジェクトによって引き起こされるという。コンテナオブジェクトとは、他のオブジェクトへの参照を保持することが可能なオブジェクトのこと。尚、Pythonのオブジェクト構造には、リスト型、タプル型、辞書型といったコンテナオブジェクトが用意されている。
なんと!コンテナオブジェクトは三世代あって、世代別コンテナオブジェクト構造だという。言語設計者は、こんなデータ構造までも考慮しながら設計しなければならんのかぁ... 足を向けて寝られん!

7. DalvikVM
DalvikVM は、Androidプラットフォームに搭載される仮想マシン。Android のアーキテクチャは、Linuxカーネルやそのライブラリ(libc, SQlite, ...)で構成されるが、その上位階層に位置づけられる。尚、Dalvik(谷間の入江) という名は、開発者Dan Bornstein の祖先が住んだアイスランドのフィヨルドにある漁村に因んでいるそうな。
Androidを起動すると、最初に Zygote というプロセスが立ち上がるという。Zygote はすべての親プロセスとなる。アプリケーションを立ち上げる際は、Zygote から fork してプロセスを作る。Zygote は多くのライブラリを抱えるために起動は遅いが、その後の子プロセスは起動が高速に行える。また、子プロセスは親プロセスの共有メモリ領域を使用するため、メモリ消費量も軽減できるという。
ちなみに、Android には、bionic という独自のCライブラリが搭載されているという。bionic は、glibc malloc から派生した独自の dlmalloc を持っているとか。glibc が大きすぎるということか。BSD libc を改良したものらしい...
共有メモリ用のデバイスには、ashmem(Anonymous Shared Memory Subsystem) というものが組み込まれているという。こいつが、mmap の機構を持っているらしい。mmap とは unix系のシステムコールで、ファイルのランダムアクセスなどを可能にするライブラリ。通常のアロケーションには、brk というシステムコールを使うという。これは、Cのヒープ領域を拡張するシステムコールだとか。だが、Cのヒープ領域はプロセスによってサイズの上限が決まっていて、mmap は、brk より制限が少なく、大きなメモリサイズを取得できる。ただし、mmap はページサイズ 4KByte 単位でしか割り当てない。
dlmalloc のアロケーションは、小さなサイズには brk を、大きなサイズには mmap を使うという。mmap 機構からして、Copy-On-Write との相性が良さそうだが、DalvikVMでは、これを苦手とするマークスイープGCを採用しているという。もっとも、この問題に対処したビットマップマーキングのようだが...
ところで、仮想マシンの世界は、大まかにレジスタマシンとスタックマシンの二つに分類される。スタックマシンは、レジスタを使わずにスタックを使って計算し、結果をスタックに積み上げる。一方、レジスタマシンは、数値を固有のレジスタにロードして、計算結果をレジスタに格納する。CPUの設計経験を持つおいらには、後者の方がイメージしやすい。それも古代人の感覚かもしれん。実際、固有レジスタで機能を差別化するよりも、スタックだけで抽象化した方がすっきりしている。スタックマシンのメリットは、オブジェクトコードのコンパクト化、コンパイルの単純さなどが挙げられるが、なによりもプロセッサの状態数が少なくて済む。ただ、メモリ参照をスタックで管理すればアクセスがそこに集中するわけだし、GCにとっては辛そうな気もするけど...
多くの JVM(Java Virtual Machine )でスタックマシンが採用される。しかし、DalvikVM はレジスタマシンを採用しているという。それも、Android 特有の事情があるようだ。Android端末のプロセッサが、レジスタマシンアーキテクチャだからであろう。ハードウェア思想をそのまま受け継いで、最大限の高速化を狙っているのだろう。これを仮想マシンと言うのか?は知らん。実際、ARMに特化したアセンブラコードもたくさん置かれているらしい。Androidマシンには、ARMが採用され、Android-x86 も進行中という事情もある。

8. Rubinius
Rubyの処理系で有名なのは、C言語で記述される CRuby の方だが、本書はあえて Rubinius を扱っている。Rubiniusは、Evan Phoenix を中心に進められ、その象徴的なポリシーに「Ruby で Ruby を実装」というのがあるそうな。思想では、Rubinius の方がエレガントに映るが、実用性では、CRuby の方であろうか。Rubinius が興味深いのは、本書で扱われる数少ない「正確なGC」の事例だということ。尚、CRuby の方は「保守的GC」だという。
Rubinius は世代別GCを採用し、マイナーGCとメジャーGCの二段階で構成されるという。マイナーGCでは、コピーGC(CheneyのコピーGC)を、メジャーGCでは、マークスイープGCとマークコンパクトGC(ImmixGC)を。メモリ空間も、それぞれ三つの領域に割り当てられる。シーケンスは、閾値を超える大きなサイズの場合はマークスイープGCアロケータを呼び出し、閾値を越えない場合は、コピーGC空間用に割り当て可能な場合はコピーGCアロケータを呼び出し、それ以外はマークコンパクトGC用アロケータを呼び出すといった具合。コピーGCでは、ライトバリアが実装されているようだ。
やはり、Rubiniusも、CRuby用に書かれたC拡張ライブラリをサポートしているようだ。では、Cのコールスタックやレジスタをどうやって走査するのか?保守的GCであれば、オブジェクトへのポインタがC拡張ライブラリのコールスタックやレジスタに漏れたとしても、とりあえず生きているオブジェクトとみなす。しかし、正確なGCではそうはいかない。その対処として、C拡張ライブラリに渡すすべてのオブジェクトへのポインタをハンドラに格納し、ルートで扱うという。そして、参照カウントに似た形でハンドラの生死を管理するとか。こりゃ、いくらなんでも Ruby じゃ書けんやろ。どうやら、C++ で書いてギャップを埋めているようだ。あれ、ポリシーに反しないのか?
保守的GCのメリットは、ミューテータでGCを意識する必要がない。デメリットは、使用できるGCアルゴリズムが制限される。対して、正確なGCのメリットは、GCアルゴリズムが制限されない。デメリットは、ミューテータを意識する必要がある。保守的なGCを採用している CRuby は、驚くほど簡単にC拡張ライブラリを記述することができるという。対して、正確なGCを採用している Rubinius は、アルゴリズムの制限がないために、比較的簡単にGCを改良することができるという。GCの作りやすさを優先しているという見方もできそうか...

9. V8
Google Chrome の特徴は、Google社が独自に開発した高速な JavaScript エンジンを搭載していること。そう、V8 JavaScript Enjine ってやつだ。名前の由来は、V型8気筒エンジンからきているらしい。高速なパワフルエンジンの代名詞だとか。コードは、80%以上が C++でグルグルしそうだけど...
V8 は正確なGCが採用され、世代別GCが使用されるという。構成は、Rubinius のGCに似ていて、これも正確なGCの事例。マイナーGCでは、コピーGC(CheneyのコピーGC)を、メジャーGCでは、マークスイープGCとマークコンパクトGCを採用している。ハンドラでリストを持つという考え方も、Rubinius と同じか。もっとも、こちらは最初から C++ で書こうとしているので、なんでもありだけど...
そもそも、GCをどう位置づけるか?システムプログラムなのだから、わざわざスクリプト言語で書く必要があるのか?あるいは、言語システムはアプリケーションプログラムなのか?OSの境界も曖昧になっている。ユーザの立場では、ポインタから解放してくれることはありがたい。だからといって、ポインタの概念を知らなくて、本当にいいのか?将来はガベージコレクションも独り一人歩きを始めるのかもしれん...
ところで、むかーしから、ファイナライザってやつの意義がよく分かっていない。ソフト屋さんに、いろいろ説明してもらうのだけど、いまいちしっくりこない。ファイナライズとは、オブジェクトの解放処理にフックをかけて、何らかの処理をする機能である。何らかの処理というのが微妙で、メッセージを発行するぐらいしか思いつかない。デバッグの手がかりにはなりそうだが、パフォーマンスを落とすだけのような気もする。GCを装備していない言語システムでは、直接デストラクタをやればいいだろう。だが、自動化システムではファイナライザにオブジェクトの解放まで期待していいのか?
案の定、V8 にはファイナライザがないという。ファイナライザに関する問題は、GCの実装において厄介なものらしい。もしかして、いらねぇってかぁ?変に操作をやると怖いから、触らぬ神に祟りなし!

"連分数のふしぎ"木村俊一 著

$
0
0
ピタゴラス教団は、整数では表せない数を忌み嫌い、隠蔽工作に走った。「万物は数である」を崇拝する者たちにとって、無理数は宇宙の理性に反する存在だったのである。自然数を分母と分子に配置する表記法に限界を感じるのは、現代人とて大して変わるまい。実際、あらゆるデジタルシステムは実数演算を近似値で誤魔化している。浮動小数点演算で答えが合わないと騒ぐ新人君を見かければ、IEEE754の意義を匂わせてやればいい。
ところが、だ!
ここに分数の底力を魅せつける一冊がある。連分数とやらを用いれば、無理数とて正体が暴けるというのだ。黄金比だろうが、超越数だろうが... はたまた、閏年も、12音階も、松ぼっくりも...
自然数、恐るべし!

連分数とは、分母の中に分数が含まれ、その分数の分母にさらに分数が含まれ... というように分数が階段状に連なったもの。こいつが本格的に活躍を始めたのは17世紀頃だが、古代ギリシア人はこれに近い思考法を知っていた。ユークリッドの互除法が、それだ。二つの数における最大公約数を求めるとは、約分しながら既約分数に迫ることであり、まさに連分数の発想である。もっともユークリッド原論では除算ではなく減算で示されるので、より厳密に言えば、互減法とするべきだという意見も耳にする。共通した線分の長さを除いていくという意味では、互除法でそれほど違和感はないけど。
それはさておき、問題は単純な操作の繰り返し回数にある。連分数における有理数と無理数の境界は、連なり方が有限か無限かだ。とはいえ、古代ギリシア人だって無限の連なり方を想像できなかったわけがなかろう。自然数が無限に連なることを数直線上で表せば、循環小数や循環連分数といったものも想像できそうなもの。幾何学表記の無限は神に崇められても、整数論表記の無限は悪魔とでもいうのか?神も、悪魔も、人間がこしらえた概念であることに違いはない。数が宗教の域に達すると、もう手に負えん...

ところで、平方根を語呂合わせで覚えたりする。一夜一夜に人見頃... 人並みにおごれや... 富士山麓オウム鳴く... 円周率は、30桁もあれば事足りる。産医師異国に向かう、産後厄なく産児、みやしろに虫さんさん闇に鳴く...
そういえば、この手の覚え歌で英語版をあまり聞かない。単語の文字数を割り当てる技は見かけるが、ゼロはどうするんだろう?なぁーに、心配はいらん。ゼロが登場するのは30桁より後ろだ。遥か果てにファインマン・ポイントという理性の配列があることを知らなくても、男性諸君のπ(オッパイ)好きは変わらんよ!

1. 初期値と周期性の原理
小数点以下を10進数で1から順に並べた数を、「チャンパーノウン数」と呼ぶそうな。

  0.1234567891011121314...

こうした規則性は連分数との相性の良さを予感させる。小数の循環パターンが見抜ければ、数値解析も容易となろう。問題となるのは、循環しないか、循環してもパターンが長すぎる場合だ。本書は、数の並びのパターンが見抜けなくても、連分数を用いれば数の正体が見抜ける可能性を匂わせてくれる。
数列の生成パターンで有名なものにフィボナッチ数列がある。最初の数を{1, 1}とし、{0, 1}でもええが、後は2つの数を足して次の数を作るということを繰り返す。

  {1, 1, 2, 3, 5, 8, 13, ...}

これに似たもので、「リュカ数列」というものがあるそうな。最初の数を{2, 1}とし、後の操作は同じ。

  {2, 1 ,3, 4 ,7, 11, 18, 29, ...}

このような数列の重要性は、初期値と繰り返される操作という二つで構成されるアルゴリズムの単純さにある。この事例では足し算されるが、引き算でも、剰余算でも、それこそどんな関数でもOK!思考原理は、等比数列や等差数列、はたまたユークリッドの互除法やニュートン法も同じだ。このような数列アルゴリズムは、デジタルシステムを設計する際の検証法において、システムの苦手とするパターン生成、ノイズ発生器、乱数生成などで重宝できる。分数は割り算であるが、具体的な処理では多項式に排他論理を組み合わせることで等価性が得られたりする。連分数は、ある種の循環アルゴリズムという見方はできそうである。
もしかしたら、あらゆる数は何らかの循環性に支配されているのかもしれない。フーリエ解析では、三角関数の直交性を利用して成分分解すれば、どんな数でも近似値を、それなりに得ることができる。フラクタル解析では、縮小拡大、回転、反転といった単純な幾何学操作によって、どんな図形にも相似パターンを、それなりに当てはめることができる。あらゆる物理現象は、初期値、境界条件と言ってもいいが、これと周期性で決定できそうな気がする。もしかしたら、素数の出現パターンにも周期性があるのかもしれん。しかも、初期値が変わるだけで、まったく様変わりするような... 実は、多様性の正体とは、初期値の違いだけなのかもしれん。これを社会では環境と呼んでいる...

2. 黄金比と松ぼっくり
縦横比が黄金比となる長方形が最も美しい図形という説があるが、それは本当だろうか?美とは、周辺との調和によって生じる概念であり、絶対的な概念ではあるまい。少なくとも、人間の感覚に絶対というものはない。正五角形が崇められるのは、辺と対角線の長さの関係が黄金比になるからであろうか。古来、五芒星に宗教的な意味が与えられてきた。真ん中に現れる正五角形に対角線を引けば、正五角形の無限地獄へ誘なう... という魂胆かはしらん。
さて、黄金比は、x2 - x - 1 = 0 の解である。x2 =  x + 1 ... つまり、2乗すると1増えるような数。もちろん、黄金比を2乗しても同じ結果が得られる。

  ( (1 + √5)/2 )2 = (1 + 2√5 + 5)/4 = 1 + (1 + √5)/2

フィボナッチ数が一際輝いているのは、隣り合う2項の比が黄金比に近づくことにある。松ぼっくりが、宇宙においてどんな役割を果たしているのかは知らん。ただ、松ぼっくりの鱗片にフィボナッチ数が現れれば、ここに宇宙法則を感じずにはいられない。葉っぱたちが複雑に混在すれば、平等に太陽の光を欲する。互いに重ならないように満遍なく太陽の光を浴びることができれば、究極の民主主義像が描ける。その答えが、フィボナッチ数なのか?
本書は、次のような配列シミュレーションををやってみせる。

まず、葉っぱの付け方は...
最初に、1本目の枝を右方向に出し、丸い葉を1枚つける。
次に、一定の角度θだけ回転した方向に枝を出し、2枚目の葉をつける。枝は1枚目より少し長めにする。
さらに、同じ角度θだけ回転した方向に枝を出し、3枚目の葉をつける。枝は2枚目よりさらに長めにする。
以下、繰り返し...

次に、長さのルールは...
円形の葉の半径を1とし、1枚目の葉の長さは1、2枚目の枝の長さは√2、3枚目は√3、4枚目は√4(= 2)...
回転角θは90度とし、螺旋を描く。

これを有理数回転で配置すると徐々に隙間ができていき、無理数回転で配置するとうまいこと隙間を埋めることができる。自然界は、無理数回転を要請しているのか?
「有理数による近似がもっとも悪い無理数は、黄金比である。もしかしたら植物はそのことを知っていて、黄金比回転で葉っぱや松ぼっくりの鱗片を配置しているので、植物の渦巻きの腕の本数にフィボナッチ数が出てくるのかもしれない。」

3. 12音階と53音階
1オクターブを12の半音に分けた音階理論は、ピタゴラスが構築したとされる。その正体を、本書は16世紀に考案された対数と連分数を組み合わせて解き明かそうとする。対数は、実に奇妙ながら便利な道具だ。なにしろ、掛け算の世界を足し算の世界に変えてくれるのだから。おかげで、指数関数的に増加する物理現象を比例関係で考察することができ、電気回路では利得の概念が単純化できる。
さて、人間の耳は対数耳になっているという。確かに、耳の周波数特性は、計算尺のように数字が大きいところで目盛の幅が詰まっている。人間が音程の違いを聞き取るのは、周波数の差ではなく周波数の比である。ピタゴラスはそのことに気づいていたことになる。そして、一弦琴で弦の長さと周波数の関係を示した。
「ピタゴラスが "簡単な整数比であらわされる2音がよく協和する"という原理から、ド : ソ = 2 : 3 という周波数比を繰り返し適用することでピタゴラス音律を作った。その後、より簡単な整数比を実現するように改良された純正律があらわれ、さらに転調しやすく改良された平均律があらわれた。」

12音階平均律とは、対数の世界で12等分するということ、すなわち、2の12乗根をとることである。


本書は、12音階平均律よりもっと美しくなりそうな53音階平均律を提示している。しかも、モーツァルトの父レオポルトが書いたバイオリンの教則本にも、これにピッタリ合う記述があるそうな!


4. 近似と精度
無理数を連分数で近似する場合、精度の見極めでは、程よい次数で連分数を打ち切ることになる。その次数は、偶数次において小さめの近似、奇数次において大きめの近似、この間を振動している。
「αの連分数近似として p/q という分数が出てきたら、その誤差、つまり |α - p/q| は、1/q2以下である。... αが無理数であれば、|α - p/q| < 1/q2を満たすような整数のペア {p, q} が無限組存在する。」
ただし、これは2次の場合。n次の有理数の場合では「リウビィユの定理」というものがあるという。
「実数αはn次の代数的、つまり有理数係数のn次方程式の解としてあらわされる数であるとする。このとき、αの近似分数 p/q で、誤差が 1/q(n + 1)以下のものは有限個しかない。」
さて注目したいのは、幾何学的なアルゴリズムで「中間近似分数」というものを紹介してくれる。X-Y 平面上において、整数座標の格子状に釘を打ち付けた様子を考える。そして、原点と目的の点との間を糸で張り、原点側で最初にひっかかる釘(0, 1)と(1, 0)の間で糸を上下させる。糸がどの釘で折れ曲がるかの中間点を拾っていき、その中間点を連分数の要素とすれば、近似分数が得られるという発想だ。
例えば、5/7 の近似分数を求める場合、原点(0, 0)と座標(5,7)の間を糸で結ぶと、折れ曲がる釘が(0, 1), (1, 0), (1, 1), (3, 2)、通過する釘が(2, 1), (4, 3)となる様子が示される。これらの座標が、連分数の中間近似分数に対応する。しかも、糸が上下する様子がそのまま誤差として見える。誤差関数もまた連分数で記述できるというわけだ。

5. マハーラノービスの問題
ラマヌジャンがケンブリッジにいた頃、友人のインド人数学者マハーラノービスが雑誌の難問コーナーから、こんな問題を見つけてきたという。
「通りの家がずらっと並んでいて、端から順番に1番、2番、... と番地番号がつけられている。さて、ある家の左側に並んでいる番地番号を全て足した数と右側に並んでいる番地番号を全て足した数がちょうど同じになるという。この家の番地番号は何番で、通りには家が何軒あるか?ただし、通りの家の数は50軒以上、1500軒以下とする。」
ラマヌジャンは、即座に50軒未満の場合で、通りの数が8軒、家の番地番号は6番と答えたそうな。

  1 + 2 + 3 + 4 + 5 = 15 = 7 + 8

他の解は、通りの数が49軒、番地番号が35番の場合。

  1 + 2 + ... + 34 = 34 x 35 / 2 = 595
  = (36 + 49) x (49 - 35) / 2 = 36 + 37 + ... + 49

これを幾何学的に表すと、底辺が軒数の49、高さが存在する番地番号の49、の直角二等辺三角形の面積で表すことができる。番地番号35は、その斜辺の過程のどこかにあるはず。すると、底辺と高さの比は √2 であり、その思考法では、連分数による √2 の近似法に置き換えられる。代数的には、通りの軒数をn、番地番号をm とすると、次の方程式を満たすような自然数の組(n, m)を求める問題となる。

  1 + 2 + ... + (m - 1) = (m + 1) + (m + 2) + ... + n
  1 + 2 + ... + n = (1 + 2 + ... + (m - 1)) + m + ((m + 1) + (m + 2) + ... + n)

この二つの方程式から

  n(n + 1)/2 = m + 2m(m - 1)/2 = m + (m2 - m) = m2

そして、n(n + 1)/2 が平方数になるような n を求める問題に変えている。答えは、(n, m) = (288, 204)。

  1 + 2 + ... + 203 = 203 x 204 / 2 = 20706
  = (205 + 288) x (288 - 204) / 2 = 205 + 206 + ... + 288

尚、本書には具体的な解法が紹介される。ちと複雑だが、なかなか興味深い!

"数学と論理をめぐる不思議な冒険" Joseph Mazur 著

$
0
0
数学を小説のように読ませてくれる書とは、こういうものを言うのであろうか。そこには、タレスやピュタゴラスによって始まった幾何的思考から、カントールやゲーデルを苛ませた無限の概念に至るまでの論理思考の旅物語がある。幾何的思考の根源は、精神空間を物理空間に投影しようという試みから始まった。そこに代数的思考、すなわち記号が融合すると、アレフという別世界が開ける。「万物は数である」という信仰が崇められ、数学が極めて宗教臭い時代、無限の概念はゼノンのアキレスと亀の競争物語によって伝えられた。アリストテレスは、「現実的な無限」と「可能的な無限」を区別し、自然数の集合を「可能的な無限」と考えたようである。アルキメデスに至っては、既に可能無限から実無限の概念へ飛躍していたのではないか、という研究報告がある。だからといって、ニュートンやライプニッツの微積分学の功績が色褪せることはない。ほんの束の間ヒルベルトの時代、宇宙のすべては数学で完全に記述できるとされた。しかし、ゲーデルがどんな論理にも不完全性が紛れ込むことを証明すると、数学はまたしても哲学の領域へ引き戻される。人類は、無限を手懐けるために二千年以上もの旅を続けてきたが、いまだ精神空間を完璧に物理空間に投影できないでいる。数学は、永遠に哲学に幽閉され続けるのかもしれん...
「数学は精神で構成するものであり、精神の活動を通す以外には、実存性はもちえない。記号、方程式、定理は、数学の内容を伝えるための手段にすぎない。それらのものは命題をなし、それが集まって物語となる。」

数学の王道は演繹原理にある。それは、ユークリッドが原論で示した証明への道筋だ。純粋な証明ほど説得力のあるものはない。自己主張を論理武装しようとするのは、それが説得の道だからだ。
しかしながら、説得の道にはもう一つある。見たまんま!ってやつだ。実際、原論は五つの公準から成り立っている。公準とは、平たく言えば前提である。つまり、証明の要なし、いや、証明できない自明な命題があることを承知せよ!と要請している。すべての論理証明が前提によって成り立つとすれば、前提の根源を考察せずにはいられない。人間は何事を思考するにも、まず直感や直観の類いを働かせる。インスピレーションとは、ある種の霊感のようなものであろうか。そうした思いつきは極めて経験的であり、演繹に至る前に帰納という思考を試している。純粋な思考だけで定理は導けない。寄り道、回り道、近道といった思考実験を繰り返すうちに、定理らしきものがうっすらと見えてくる。学問に王道なし!とは、この道だ。王道を探るには、覇道や邪道も探ることになる。定理への道は前提から始まる、これを帰納原理とでもしておこうか。とはいえ、邪道ばかり歩いていると疲れる...

前提ほど脆いものはない。まさに非ユークリッド幾何学は、第五公準の崩壊によってもたらされた。第五公準の言い換えはいくつもあるが、ここではルジャンドルの言葉を拝借しよう。
「角の和が180度に等しい三角形が少なくともひとつ存在する。」
だからといって、ユークリッドを蔑む者はいないだろう。ポアンカレはこう言ったという。
「ひとつの幾何学が他の幾何学に比べてより正しいということはありえない。どちらが便利かと言えるだけである。」
人間社会もまた、すべて前提によって成り立っている。社会制度、政治体制、経済システムなどすべてが。民主主義社会では説得の力がモノを言う。説得力とは奇妙なもので、論理だけでは心もとなく、信じこませる何かひと押しがいる。すると、大数の法則は多数決の原理と結びつき、感情の向う確率論に支配されるという寸法よ。これを意志力というかは知らん。物事が客観性から乖離するほど扇動の力が武器となる。アピールやプレゼンテーションなどと呼ばれる技術が、それだ。精神が素粒子で構成されているとすれば、量子力学に従うはず。そこで、宇宙人たちの噂を耳にした。地球という天体には、マクスウェルの悪魔君が大勢いる世界があるとさ...

「天秤は、おもりを載せれば必然的に下がらざるをえない。それと同じく、精神は明白な証明には屈せざるを得ない。精神がからっぽで、釣り合い用のおもりがなければ、最初に言われたことの説得力の重みにすぐに負けてしまう。」
... モンテーニュ「エセー」の中のキケロの引用...

1. 疑い深きトマス君!
著者ジョセフ・メイザーは、マールボロ大学の数学教授。彼は講義中にこんな実験をしたという...
まず前提で、2p - 1 は、p が素数の時、必ず素数になると宣言する。そして、2 から 19 までの数を計算して見せる。わざと p = 11 を飛ばして。さて、受講生の反応はいかに...
1000 の桁に達すると、学生諸君は教授の権威によりかかる。だが、冷静になってくると、ある学生が疑念を抱き始めたという。最前列に陣取る彼の名は、トマス君!イエスの復活を信じなかった、疑い深きトマスにかけているのかは知らん。彼は、実例だけでは証明にならないと食い下がる。確かに、p = 11 や p = 23 では成り立たない。

  211 -1 = 2047 = 23 x 89
  223 -1 = 8,388,607 = 47 x 178,481

数学は純粋な判断であり、想像力が作る虚構とは次元が違うという評判だが、それは本当だろうか?数学だって、経験を基に憶測で納得しているところがあるのでは...
学校は、証明の手順を真似することを教える。証明を思いつく方法を教えるわけではないし、教えられるものでもない。試験とは、既存の証明をまる写しすれば良い成績が取れる仕組みである。おいらが好青年と呼ばれていた頃、数学は暗記科目ではないと固く信じていた。試験中に公式を導くところから始めていると、とても時間が足りない。決定的だったのは大学に入ってからだ。暗記科目と割り切れないと単位がとれない... どうせ落ちこぼれの愚痴よ!
おっと、話を戻すと...
反証するには一つの反例を示せばいい。だが、証明の方はどうであろう?真理が精神空間に映し出される幻影に過ぎないとすれば、数学もまた芸術の域にある。証明への道が無条件のエクスタシーを与えるならば、数学もなかなかの宗教だ。今でも証明されていない難題が真であることを頑なに信じて、その証明に人生を捧げている研究者たちがいる。その定理は、あてすっぽに真理らしきものを、気まぐれに語っただけかもしれないのに...
ポアンカレ曰く、「すべてを疑うのも、すべてを信じるのも、同じように都合のいい手だ。どちらもよく考えてみなくてすむ。」

2. 推論式(シロジズム)と自己矛盾性
数学の論証は、推論式によって組み立てられる。つまり、「もし~ならば~...」式の束によって。本書は「シロジズム」と呼んでいるが、なかなか微妙な用語である。論理学の根源は、アリストテレスの演繹モデルに従う。「すべての人は死ぬ。ソクラテスは人である。故にソクラテスは死ぬ。」の類いだ。この手の三段論法を好む社会学者や経済学者は、実に多い。歴史は言うであろう。戦争が起こる時は必ず強大な軍事指導者がいたと。故に、強大な指導者がいる時は必ず戦争が起こると。
一方で、三段論法の危険性を忌み嫌う数学者や科学者は少なくない。ただ、一つの命題が他の命題との依存関係によって成り立っていることは事実だ。キェルケゴール風に言えば... 命題とは一つの関係、その関係はそれ自身に関係する関係の関係の... 狂ったか!
関係が複雑ならば、論理をほぐすために、カルノー図のような見た目で解釈する方法がある。実際、ブール代数を簡略化して真の意味を探ろうとする思考が、コンピュータシステムを支えている。こうした論理性は、境界条件によって支えられている。
ただ、論証できるからといって意味があるとは限らないし、結論が前提から導き出せるとしても前提の正しさとは無関係だ。ここに、根源的な論理の脆弱性が内包されている。ウィトゲンシュタインは、考えを伝える時に混乱を避ける方法は、論理的に正確な言語を作り、それぞれの単語に一つしか意味を持たないようにすることだとしたという。
しかしながら、一つの意味とはどういう意味か?精神の内で勝手にイメージされるものを、どうやって一つに集約できるのか?客観性に満ちているはずの専門用語ですら、微妙にニュアンスの違いを見せ、誰一人として同じ言葉を喋っちゃいない。記号に意味が生じた時、既に感覚と結びついているではないか。
とはいえ、人間社会は、矛盾だらけの言語を用いながら、それなりに通じ合っている。確かに、代数的記号は無味乾燥的なものだ。x = y という式の意味は、それ以上でも、それ以下でもない。だが、人間が解釈した途端に客観性を失う。コンピュータ言語だって人間が意味解釈をすれば、そりゃ暴走もする。純粋客観とは、無認識の領域にしかないのかもしれん。ここに、数学の抱える自己矛盾性があるのではなかろうか...

3. 数を数え続ける動物
プラトンのあまり知られていない短い対話篇「エピノミス」は、こんなことを論じているという。
「動物の魂は、理性的な計算ができなければ、魂の力の長所すべてを得ることはできないだろうし、2 と 3、奇数と偶数を認識できず、数をまったく知らない人は、事物を合理的に説明することはできないだろう。事物について、感覚と記憶しか有しないからだ。それで勇気や沈着などのその他の長所がなくなるわけではないにしても。しかし真に語ることができなければ、人は決して賢くはならず、十全な徳の最も重要な成分である賢さがないことには、その人は完全な善に達することはありえず、したがって幸福にもなれないことになる。」
人間は自然数の概念になんの疑いもなく、数え続けてきた。数の概念がなければ文明すら成り立たない。それはプラトンの言うように、本能的に理性を求めている証であろうか?
ところで、ユプノ族というニューギニアの奥地に暮らす原住民には、手の込んだ計算法があるそうな。まず指から始まり、いろいろな体の部分を指定の順に右から左へ移りながら、33 まで数えるという。
ちなみに、フランス式指電卓というものがあると聞く。

「計算機がなくても、掛け算が出来る便利な方法があるのをご存じですか。俗にいうフランス式指電卓です。
7 x 8 = 56 の場合、左は、7 を表します。御一緒に... いち、にぃ、さん、しぃ、ごぉ、ろく、しち。右は、8 を表します。御一緒に... いち、にぃ、さん、しぃ、ごぉ、ろく、しち、はち。次は答えです。十の位は立ってる指を足します。2 + 3 で 5 ですね。一の位は折れてる指を掛けます。3 x 2 で 6。ということで、7 x 8 = 56。九九を忘れた方はぜひやってみてください。
では次に、8 x 9 = 72 にチャレンジ。いち、にぃ... これ大変時間がかかります。お好きな方は自分でやってみてください。」
... 「警部補・古畑任三郎スペシャル 笑うカンガルー」より...

4. 有限と無限の境界
エレアのゼノンは、亀にハンデをやれば、いくら足の速いアキレスでも勝てないことを論じた。アキレスが亀のスタート時点に着いた時には亀はさらに先に進んでおり、次の亀のスタート時点に着いた時には亀はさらに進んでいる。これを繰り返せば、永遠に追いつけないと。この謎掛けには、摩訶不思議な世界がある。亀もアキレスも、有限の時間で、有限の距離を進んでいる。なのに、追いつく距離は無限に縮まり、迫りくる無限小の時間の中でもがき続ける。それでも、境界条件をちょいと加えると論理は崩れるかもしれん。
「靴下さえ履いていたら、アキレスもちゃんと勝ったはずだ!」
さて、有理数と無理数の違いにも摩訶不思議な境界がある。有理数とは、分母と分子を自然数で表せる数。自然数は無限にあり、分母も分子も無限に配置できる。どんな有理数と有理数の間にも必ず有理数を配置できるわけで、無限小の隙間を埋め尽くせそうな気がする。にもかかわらず、有理数では表せない無理数ってやつが存在しやがる。そりゃ、ピュタゴラス教団も慌てるわね。無理数とは、無限の自然数で配置される有理数よりも、高貴な無限なのか?無限にも濃度があるというカントールの主張は、出任せではなさそうである。
それにしても、初めてカントールの無限に触れた時には、たまげた!デカルト座標上のすべての点は、数直線上の点と一対一で対応できるというのだから。集合論は詐欺か?論理とは、屁理屈と紙一重の世界にある... とでもしておこうか。
これと似た感覚がトポロジーの世界にもあって、ドーナツもコーヒーカップも同じ形とされる。形の属性において「位相」にだけ着目すれば、確かにそうなる。もはや常識ってやつは、まるで役に立たない。着眼条件をちょいと変えるだけで、客観性の視点も変わるということだ。
無限濃度の境界条件には「可算」という概念がある。平たく言えば、数えることが可能かどうかによって濃度が区別されるということ。無限と無限を比較する時、一対一の対応というと少々抵抗があるので、対応するものが必ず一つだけあるとしたらどうだろう。言い方をちょいと変えただけよ。直観的に大小関係を感じても、互いに無限個あれば、対応がつかないなんてことはありえない。同じ原理を用いれば、整数も、偶数も、奇数も、はたまた有理数もすべて同じ無限個数ということになる。
「有限の世界が無限の世界と出会うところには、ヘリも境界も端も限界もない。有限の図が無限の図になる特定の瞬間もない。」
ここで、人間の直観には、見たまんま!という思考原理が働くことに注意しよう。知覚の危険性が潜んでいることを。例えば、生まれつきの盲人が40歳で視力回復手術を受けた時の体験談を読むと、階段が目の前にあるのに、足下に危険があることすら認識できないと語っていた。形の属性は確実に認識できても、それが自分の身にどんな作用が生じるかまでは分からないらしい。そして、映像情報が大量に脳に入り込み、処理能力が追いつけず、却って精神病を患うことになる。あるいは、よく見慣れた人の顔でも、逆さに見ると誰だか見分けがつかなかったりする。人間は、知覚情報だけで認知処理をしているわけではない。論理思考とはいえ、極めて経験的だということだ。
カントールの無限は、人間にとって純粋に思考することが、いかに難しいかを問うている。現実に人間社会には、解釈され過ぎた常識ってやつで溢れている。客観性の能力を放棄したかのごとく...
「ここでの教訓は、帰納による論証には、疑いを向けた方がいいということだ。ただ、帰納による論証もそれなりに地位があるのは確かで、本当らしい印象を作ろうとするときには、非常に役に立つ。」

5. 連続体仮説ってどうよ?
無限濃度の記号は、ヘブライ文字の ℵ(アレフ) が用いられる。カントールはカトリック系だったと思うが。
それはさておき、有理数の集合と無理数の集合には、可算という境界概念において区別される。整数や有理数の濃度は、ℵ0と表し、実数の濃度 c に対して次の関係が成り立つとされる。

  ℵ< c

これが、「連続体仮説」ってやつだ。日常的な数の感覚では、有理数よりも無理数の方がはるかに多い。まさに見たまんま!可算の条件に照らしても、自然数で表せないものを数えるなんて不可能に思えるし、直観的には連続体仮説は真に映る。
しかし、だ。次の命題が真だとすると、どうだろうか?
「どの二つの有理数の間にも無理数があり、どの二つの無理数の間にも有理数がある。」
これは直感に反する。二つの有理数の間に必ず無理数があるのはいい。二つの有理数の差がとても小さいとすると、その差をπで割り、結果を小さい方に足す。これで、元の二つの間にある無理数が一つ得られる。
問題は、無理数の間に有理数が必ずあるか?だ。二つの無理数を a, b とし、xy座標において原点から傾き a と b の直線α, βを引く。p, q を整数とすると、二つの直線は格子点(p, q)を避けて通るはず。そうでないと、傾きが q/p となって有理数となる。a と b の間には必ず角が生じる。その間の直線を無限に延ばせば、必ず格子点(p, q)のどれかに捕まるという。なんとも信じがたいが、そうなるらしい。
となると、無理数は、二つの有理数の間に存在するという関係から、可算という条件に当てはまるのではないか?二つの有理数の中間値に対して、見事に一対一で対応づけているではないか。ん~... アル中ハイマーには、無限濃度とアルコール濃度の区別が永遠につきそうにない...

開封の儀を執り行う... Surface Pro3

$
0
0
十年前のノートPCを、誤魔化し、誤魔化し... もう我慢できん。ついに衝動買いに走る。モノは「Core i5 + 128GB SSD + 4GB RAM」搭載モデル。思い切って Core i7 を選択する手もあるが、貧乏性には辛い。そして、これがチーム・モバイっちの面々...




タブレット型を選んだのは、メモ機能が欲しかったからである。特に睡眠中に考えつくことが多いので、枕元にメモ用紙を置いていないと落ち着かない。ただ真っ暗でないと眠れないので、メモをとる時は灯りをつけることになる。そこで、手書き入力のできる軽いマシンがあるとありがたい。実際、スリープしたままでもバッテリーの持ちがいいので、毎晩一緒にスリープよ。
ついでに街中の情報を感じながら歩いてみるが、ちとでかい!軽くなったとはいえ、喫茶店あたりで落ち着かないと開く気がしない。そして、スタバ戦略にしてやられる!

しかしながら、本当に必要なのはノートPCとしての装備だ。Surface には前々から目をつけていたが、いまいち気乗りしない。モバイル用途だけなら、こいつを選ぶ理由がないし、タブレット型とノート型の両方を持つのが現実的だと考えている。
こいつが仕事で使い物にならなければ大損だが、引退間際の酔っ払いだって、たまには冒険したい。I/F装備が貧弱な気もしなくはないが、他のスペックを眺める限り、ちっぽけなリスクだろう。実際、USBの電源供給はしょぼいが、SSDの起動が速いし、補って余るものがある。まだまだ手足には程遠いが、幸せに近づきつつある... ような気がする今日この頃であった...

開封して、いきなりタッチパネルで30分ぐらい悪戦苦闘!まず、ストア・アプリの終了の仕方が分からん。画面の左端でスワイプして起動アプリの一覧を表示させ、終了したいアプリをつかんで画面の下端までスライドし、しばらく待つと画面がくるりと回転して終了する。アプリ内では、上端でつかんで下端までスライドし、しばらく待つと画面がくるりと回転して終了する。おぉ~っ...!しかし、3回見たら飽きる。わざわざ回転させなくても、下端に放り投げれば終了できたりして...
さらに、右クリックで悩む。目的の場所で、押したまましばらく待って放すだけ。
どうも、しばらくってのが待ちきれん... 年寄りって言うな!

1. Type Cover(Pro3用) = USキーボード
ノートPCを購入する上で、いつも悩ましいのがキーボードの選択である。OSが多言語対応だというのに、日本で購入する場合、日本語キーボードしか選択肢を与えないというメーカは実に多い。日本マイクロソフトとて例外ではない。このグローバル時代に、外国人たちはどうしてるんだろう?
ちなみに、おいらは二十年来、英語配列キーボードしか使う気がしないネアンデルタール人だ。日本語の刻印が目障りな上に、変換ボタンに圧迫されてスペースキーが短い... ここまでは許せても、記号文字(Shift + !@#...)の配置が違うのはどうも。数式には欠かせない文字群、こいつらを探そうとするだけで思考の妨げになる。キー入力は脳と直結するだけに長く叩くほどストレスとなり、キーボードのデザインにこだわる技術屋は少なくない。そもそも日本語キーを直接叩く人が、知人には一人もいない。八十にもなろうかというお婆ちゃんですら、ローマ字入力をする。
... などと愚痴りながら、Type Cover は並行輸入版を別購入するものの、正規版より1万円ほど高いのはいかんともしがたい。
しかし、モノはそこそこいい!バックライト装備で真っ暗でも叩けるし、打鍵感も悪くない!Home/End/PgUp/PgDn や、チャームに直接アクセスできるキーも揃っている。
タッチパッドもなかなか!当初、なんて使えないパッドだと嘆いていたが、操作法を開拓していくうちに印象がまるで逆転。指感覚では分かりにくいが、手前端に左クリックボタンと右クリックボタンが隠れている。ドラッグ&ドロップは、一本指でタップし、二本目の指でタップしたまま動かす... と思っていたら、一本指でも、ダブルタップして押したまま動かせばいい。ドラッグ&ドロップが改善されるだけで、こうも様変わりするものであろうか。一度キーボードに手が固定されると、億劫な上に惚れっぽい酔っ払いはタッチパネルへ手がいかなくなる。
とりあえず、左サイドで威張っている CapsLock を抹殺して、Ctrl にマッピングしておくかぁ...

2. バッテリー
バッテリーの持ちは意外といい。SSD のメリットも大きそうだ。
まずは、Type Cover を接続し、バックライトを消した状態で、映画や音楽の再生、ファイル転送などでストレスをかけてみる。スリープだけオフにして、他の設定はデフォルトのまま。すると、5時間ほどで、"バッテリー残量がなくなっています(10%)"と大きく表示される。仕様には、ブラウジングで8時間程度となっているが、大袈裟でもなさそうだ。日帰り出張ぐらいなら電源を持ち歩かなくてもよさそう。充電は、起動したままでもそこそこ進み、フル充電に2時間ちょい...
さらに、CPUをガンガン動かす演算処理を残量30%あたりから試す。CPU使用率 70% - 80%、クロック 2.80GHz 近辺をうろちょろするような... さすがに熱を持つ。残量20%の時点で、10%の通知は30分後ぐらいかなぁ... と構えていると、10分ぐらいでいきなり残量ゼロの警告が出て、慌てて電源をつなぐ。バッテリー駆動で、ここまで酷使することはないだろうが、リチウムイオンの特性からして減りだすと速そうだ。いくらリチウムイオン式の二次電池が安定性が高いとはいえ、電解物質の特性からしてメモリ効果を完全にゼロにはできないだろう。使いきってフル充電... を繰り返す方が持ちはいいのだろうけど、シェーバーのような感覚にはなれそうにない。
ちなみに、スタート画面にバッテリー残量表示のアプリがあってもよさそうなものだが、今のところストアには見当たらない。わざわざチャームを出さなければならない上に、表示も貧弱!

3. ハイバネーション
さて、最も気になるのはハイバネーションだ。ハードウェアとOSの相性が現れやすい機能でもある。古くから電源系のトラブルの元という印象があるので、デスクトップ環境では叩き斬るわけだが、ノート環境ではそうもいかん。
電源ボタンには、スリープ、シャットダウン、再起動の三つがエントリされている。これに、休止状態ってのがあるはず。
powercfg -a で確認すると休止状態は利用可能になっているが、無理に表に出すこともあるまい。ただ、シャットダウンしても、Type Cover を叩くと起動することがある。最初は操作ミスだと思っていたが、やはり何度かある。デフォルトで「高速スタートアップ」が有効になっているが、こいつが臭い。でも、やめられん!スリープの方は、ある程度時間が経つと休止状態になるようで、こちらはありがたい。
ちなみに、システムを完全にシャットダウンやコールドリブートさせるためには、こうやればいいらしい。

  shutdown /s /t 0  # シャットダウン
  shutdown /r /t 0  # コールドリブート

尚、再起動はコールドリブートという噂を耳にしたが、ほんとかなぁ...
本当のシャットダウンではないとすれば、起動の速さをアピールするためのズルか?同期系アプリとの関連性はどうなっているのか?例えば、シャットダウンしたつもりで街を歩いていて、勝手にフリースポットに接続してファイル転送でもやられたらかなわん... まさか!共有やら、同期やら、便利なことは結構だが、裏で何をされるか油断も隙もあったもんじゃない!

4. WiFi機能を試す
無線アクセスポイントを外出先で5ヶ所ほど試したが、接続できない場所は今のところない。スターバックス(at_STARBUCKS_Wi2)もOK。実は、我が家のWiFiルータが一番苦労してたりして...
ちなみに、地元の魚町商店街(UomachiWLAN)は、田舎ながら頑張っている。番地ごとにアクセスポイントを設置して、通りをすべてカバーしようと。無防備だけど。たまーに「制限あり」と表示されて断絶することがあるが、再接続でOK。ただ、隣の通りに行った途端に電波は届かない。
ところで、「制限あり」という症状は、なかなか侮れないようだ。"Surface, Win8.1, 制限あり"で検索すると、対処法がわんさと出てくる。OSの再起動、ドライバのアップデートや再インストール、ルータとの相性など、あるいは諦めた!というものまで...
Surfaceの問題か?Win8.1の問題か?は知らんが、対処法が収束していないことは根本的な問題を抱えているかもしれない。802.11ac が、まだ安定していないというのもありそうか。とりあえず、11n でつながってくれれば文句はない。いずれにせよ、信頼できるアクセスポイントでないと、重要な作業をやる気はしない。重要ポイントで使い物にならなければ困る、さっそく夜の社交場への出張計画を立てるとしよう...

5. 手書きメモツール... OneNote2013 vs. Windows Journal
OneNote には、なんとなく期待していた。尚、標準装備される Office2013 をセットアップすると、OneNote2013 が使えるようになる。こちらの方が断然いい。
Surfaceペンの頭を、シャーペンのようにカチっと押すと、OneNote が起動する。
ペンからの起動を OneNote から OneNote2013 に切り替えるには...

[ファイル] -> [オプション] -> [詳細設定]で、"既定の OneNote アプリケーション"をチェック。

最初、この項目が表示されなかったが、Office2013 を更新すると表示される。
AdobeReader と連携して、pdfファイルが挿入できる。要するに印刷環境さえ整えていれば、ExcelでもWordでも印刷イメージでインポートできる。この機能は大きい。セミナーなどで資料を見ながら、手書きでメモが加えられる。
しかしながら、本当にメモ機能として有効なのは、ファイル保存という概念を取り去ったことだろう。シャットダウンしてもデータが残るので、純粋にメモに集中できる。
ただ、"OneNote のクリーンアップ作業中"というメッセージが出て、起動が異常に遅い場合がある。同期でもとっているのか?どうもクラウドってやつは油断ならん!
ちなみに、Note Anytime ってのもある。タッチキーボードと合わせてかなりのことができそうだが、そこまで機能はいらない。
前からあるツールだが、Windows Journal も悪くない。勝手に雲に上げられたくなければ、こちらの方がいいかもしれない。こいつも、「Journal ノート ライタ」ってやつを[ツール]からインストールしておけば、印刷可能な環境でファイルがインポートできる。しかし、普通のアプリ同様、ファイル保存をやらないとデータが残らない。
この差は意外と大きい。いかにコンピューティングがファイルってやつに付きまとわれてきたか、を考えさせられる。そして、改めてメモという行動パターンを見つめなおすことに... 結局、OneNote2013 に病みつき!

6. OneDrive と「共有&同期」宗教
OneDrive は標準でバインドされる。クラウド空間に15GB容量を無料に提供してくれるサービスのこと。おかげで、OneNote などのアプリで「共有&同期」の概念が前提できるわけだが、有難迷惑なところが多分にある。
ただし、デフォルトの保存先をローカルに変更することも可能。

[PC設定の変更] -> [OneDrive] -> [ファイルの保存」で、"ドキュメントを既定でOneDriveに保存"スイッチをオフ。

これで本当に安心できるのかは知らんが、とりあえず信じてみよう。
さらに、[同期の設定] にわんさと項目が出現するのに仰天!こいつは、環境設定で最初にやるべきではないか。ネットワークに参加している他の Win8.1 マシン上で、Microsoftアカウントにログインしようものなら、環境ごと同期を始めそうな項目が並んでいる。スタート画面のレイアウト、ウィンドウのデザイン、個人設定のテーマ、ブラウザ環境、言語設定...
バックアップ設定では、OneDrive と同期させておくと、PCの復元もできる。確かに便利なものもあるが、デフォルトですべてオンになっているのは強烈!
ちなみに、起動時のログインに、Microsoftアカウントとローカルアカウントが選択できるが、これも悩ましい。例えば、全アプリ一覧画面の構成が気に入らないから、以下のディレクトリでショートカット群の階層を整理すると、再起動だけでは不十分で、同期がとれるまで反映されないようだ。

"c:\ProgramData\Microsoft\Windows\Start Menu\Programs"

全般的に余計なカスタマイズは歓迎されない。ユーザは本当に自由を獲得しているのだろうか?
ところで、持たない時代とは、持たれる時代ということか。じゃ、誰に?そんなこと知ったこっちゃない。ますます鈍感力が問われる時代ということか。生物は危険性を認知できるからこそ進化してきたはずだが...

Surface Pro3 から見た Win8.1

$
0
0
Win8.1 は、全般的に大雑把な行動パターンには向いていそうである。視覚的にも分かりやく、そんなに悪くない。既に、Win7 でその傾向を示しているが、多くのユーザを囲い込もうとすれば、使い方は庶民化していくだろう。
実際、タッチパネル操作で違和感はない。指で操作するにはアイコンはそこそこ大きい方がいいし、マウス操作では余計なAeroスナップ機能もタッチパネルではちょっと便利。
なによりも、スタート画面のタイル構想は、単にアプリ起動の一覧だけではなく、最新情報の通知という大きな役割がある。天気予報やニュース、カレンダーやスケジュール、メールやSNSなど。ストアには、ろくなものが見当たらないが、可能性を感じさせてくれる。とりあえず欲しいのはバッテリー残量表示、そして、バックグランドでタスクを動かすことが多いので、CPUやメモリのモニタであろうか。タスクマネージャやリソースメータあたりのグラフから、スタート画面にピン留めできるのでもいい。さらに、せっかくのタイルに、JavaScript などのコードが埋めこめれば、本格的なポータル画面に位置づけることができるだろう。セキュリティポリシーに反するか?既に無法地帯か...
しかしながら、デスクトップ環境で、わざわざディスプレイまで手を伸ばそうとは思わない。ましてやマルチディスプレイ環境で。それに、マウスの方が細かい操作に向いている。ただ、ノート環境だからこそ、セカンダリディスプレイの活用幅が拡がるという見方もできそうだ。いずれにせよ、用途が多様化すれば、ユーザインターフェースも多様化しそうなもの。デスクトップPCの Win7 を Win8.1 にアップする気にはなれん...

世間全般の傾向として、大雑把な仕様になりつつあるようだ。Webサービスには、何年も放置された些細なバグが目立つ。使う分には、ほとんど支障にならないので、無視するようになっていく。情報が氾濫する社会では、つまらない事を気にしている余裕はない。鈍感になるということか。
Win8.1 にしても、余計なカスタマイズは歓迎されない。ユーザは本当に自由を獲得しているのだろうか?おまけに、デフォルト値や推奨、といったものが信用ならない。つい最近、自動アップデートを強く推奨しておきながら、おかげで起動しなくなった!と世間では騒いでいた。しかも対処法では、レジストリをいじれ!と堂々と宣言する。知識のある者はより快適に、知識のない者はより言いなりに... 機会均等という一見美しい理念も、能動的性格と受動的性格をはっきりと区別させ、格差を助長させるのかもしれん。そりゃ、毎日呑んだくれてりゃ、ついていけんよ!
通信業界も負けじと、課金方向に誘導しやがる。プライバシーポリシーでは、心地良いフレーズが踊る。
"we may share your personal information..."
だが、share を use と置き換えるとゾッとする。we ってのも怪しい。政府や企業、あるいはテロリストも含まれるってことだ。SNSを取り巻く世界には、個人情報の分析から利益を上げるビジネスモデルによって這い上がってきた企業が群がる。通信業者は、こんなことを平然と宣言する。
「当社は、利用目的の達成のために、利用者から個人情報をご提供いただくことがあります!」
人類の叡智を共有するとは、なんと美しい理念であろう。クラウド時代では、すべてを持たなくて済む、いや、持った気になれる。では、真の所有者は誰か?いまやビッグデータは、漏洩経路を辿ることすらできず、独り歩きを始めた。利便性が宗教化すると、いっそう自己責任が問われる。そもそも所有なんてものは、幻想なのかもしれん...

ところで、社会の多様化、生活様式の多様化が進む一方で、なぜこうもコモディティ化が促進されるのだろうか?単純に経済効果を狙っているだけか?少々使い方が合わなくても、人間は馴らされやすい動物ということか?最新製品を持っている、使っているというだけで、一つのステータスになっているのは確かだ。アリストテレスの生まれつき奴隷説も、あながち間違いとは言えまい。ちなみに、進化という言葉は迷信化しやすい... と誰が言ったかは知らん。

1. Microsoftアカウントとローカルアカウント
まず、アカウント空間が二つあることに戸惑う。OneNote などのアプリで「共有&同期」思想を活用するためには、Microsoftアカウントとローカルアカウントが関連付けられている必要がある。実際、関連付けることを推奨している。だが、余計なデータ転送をバックグランドでされたくない場合や、完全なローカル空間で仕事がしたい場合もある。そんな時は、ローカルアカウントで起動すればいい。おかげで、ストアアプリの利用やインストールなどをアカウント毎に制限できるわけだが、管理思想がどうも肌に合わない。
特に驚いたのは、購入して最初のセットアップ時にユーザ名やパスワードが聞かれるので、安易に答えると、意図しないフォルダ名がローカル空間に作成される。"c:\User\ユーザ名"てな具合に。姓と名が聞かれ、どちらの入力もサボれないようになっていて、名の方がフォルダ名になった。世間では、漢字名を指定して往生した人も少なくないようだ。
このフォルダ名を変更したければ、別のローカルアカウントを作成して、こちらにMicrosoftアカウントとの関連付けを移して、元のアカウントを削除すればいい。
しかし、だ。散々カスタマイズした挙句にこれをやれば、環境設定を最初からやり直し... 冗談じゃない!そこで、環境を保持したままフォルダ名を変更するには、実体名とレジストリにエントリされるポインタ値をいじればいい。当然ながら、この整合性が崩れると起動画面が崩れる。しかも、ポインタ値は、Microsoftアカウントとの関連付けにも使われる。
したがって、変更作業では、Administrator権限を持ったダミーのローカルアカウントを作成し、そこで作業しなければならない。そして、実体名(c:\Users\ユーザ名)と、以下のレジストリにエントリされるポインタ値を変更する。

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\"
ここで該当するUIDの "ProfileImagePath"を変更。

その後、改めて元のユーザ名でログインし、Microsoftアカウントとの関連付けを戻せば修復できる。理屈では...
ただし、危険な作業であることは間違いないし、そのまま放置するのが最も賢明な選択かもしれない。実は一度しくじったが、Administrator権限を持つ別のアカウントがあれば、どうにでもなる。また、レジストリにゴミが溜まったり、アプリケーションによっては多少の不具合が出るかもしれない。ちなみに、おいらの場合、Windows Media Player の再生リスト群が二重になった。どちらが本物かはすぐに判別でき、偽物の方を削除すれば済む。

2. セキュリティソフト... avast!2014 vs. Windows Defender
avast!を愛用してきたが、アクションセンターが Windows Defender との共存を嫌う。無理やり共存させる手もなくはないが、却ってスッキリしない。おまけに、アクションセンターが、起動が重い!バッテリー寿命が短くなる!などと騒ぎよる。ここは素直に Windows Defender にしてみるかぁ...

3. タッチキーボードとスクリーンキーボード
デフォルトのタッチキーボードで、イライラ!
記号キーを表示するために、[&123]ボタンで切り替えなければならないし、ファンクションキーも見当たらない。そこで、ハードウェア準拠のキーボードが選択できる。

[PC設定の変更] -> [PCとデバイス] -> [入力]で、"ハードウェアに準拠したレイアウトをタッチキーボードオプションとして追加する"スイッチをオン。

これで、タッチキーボードの右下で、物理キーボード風のマークが選択可能となる。
また、タッチキーボードとは別にスクリーンキーボードというのがある。これは使えそうだ。大きさと場所が自由に変えられるし、邪魔な時は透過表示ボタンがある。そして、スタート画面とデスクトップ画面の間で移動しても、キーボードは表示したまま。これはどうでもええか、いや余計か...

4. ついでに、大雑把な作りを感じたものをメモっておく
デスクトップ画面のアイコン間隔を微調整するには、レジストリをいじるしかなさそうだ。Win7 には[画面デザインの詳細設定]ってやつがあるが...

"HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics"

試しに、アカウント画像を作成してみると、デフォルト状態に戻せない。なんじゃそりゃ!画像を消すには、これまたレジストリをいじるしかなさそうだ。作成という概念はあっても、削除という概念はないのか?

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\"
ここで該当する SID にアクセス許可を与えて、以下のキーを削除。
"Image200, Image240, Image40, Image448, Image96"

... 結局、レジストリをいじる羽目になるのなら、Windows のGUI思想は成功へ導いているのだろうか?金儲けで成功すれば、それは成功というわけか...

Surface Pro3 とISPのモデム(NETGEAR CG3000D)をWiFi接続

$
0
0
おもちゃの噂を嗅ぎつけたお客人が、見物にやってきた...

さて、仕事場(= 自宅)には無線系統が二つある。普段はルータ(Yamaha RT107e)にぶら下げたアクセスポイント(NEC Aterm WG300HP)を利用し、プロバイダ(Jcomさん)が提供するモデム(NETGEAR CG3000D)搭載のWiFi機能はずっと眠らせてきた。
そこで、こいつを起こして客人に解放しようと思ったら、ちょっとビックリ!

まず、CG3000D はブリッジモードで動作中。尚、工事屋さんがそのように設置していったし、その方が都合がいい。そして、無線端末と CG3000D をLANケーブルでつないでおいて、Jcomサイトからダウンロードした設定用ソフト(WLANSetup_cg3000d.exe)をセットアップするだけで簡単につながる。無線端末をつなぐために、わざわざ有線経由で設定するという発想もどうかと思うが、サポートが楽になるのだろう。このソフトは、MACアドレスを CG3000D に自動登録する仕掛けも具えている。
てなわけで、Surface をLANアダプタ(BUFALLO LUA3-U2-ATX)経由でつないで、難なく完了!802.11n のチャネル幅は、20MHz/40MHz が選択でき、もちろん 40MHz に設定。実測値は、50Mbps ってとこか。実は、モデム直の 5GHz帯に期待していたが、ルータ越えの 2.4GHz帯(Aterm)の方が速かったりして...
まぁ、ここまではいいだろう。

ところが、この設定用ソフト、CG3000D の動作モードをルータモードに切り替えやがる。ちょっと考えれば当たり前だが、一言ぐらい断ってもええんでないかい!
ブリッジモードでは、RT107e に素通しでグローバルアドレス(IPv4)が振られるが、ルータモードでは、DHCP 経由でローカルアドレスが振られる。もちろん、無線端末にもローカルアドレスが振られる。まさか、端末の数だけグローバルアドレスを与えてくれるわけがない。ルータモードは必然であり、すぐに推察できる。
とはいえ、無線がつながった途端に、有線側が一斉にダウンしたのには仰天!いくら感覚の麻痺した泥酔者でもよ。おまけに、RT107e は外からのローカル空間に対してブロックしている。それは、こっちの都合だけど。修復には、RT107e のフィルタ設定を修正するだけで、1分とかからない。ただし、VPN を張る時は、ちと頭が痛い!
やはり、もう一度眠ってもらおう。お詫びに強烈な睡眠薬を投与してあげる...

世間では、かんたん設定やら自動設定やらが横行し、便利なことは結構だが、油断も隙もあったもんじゃない!と思う今日この頃であった...

参考までに、試した構成は...
CG3000D(ルータモード:DHCP,WiFi) - RT107e(DHCP) - Aterm(ブリッジモード)

元に戻した構成は...
CG3000D(ブリッジモード) - RT107e(DHCP,VPN) - Aterm(ブリッジモード)

補足... RT107e のLAN側には、SW-hub経由でマシン群をぶら下げ、Aterm は無線アクセスポイントでしか使っていない。Aterm をルータモードにすると、ローカル空間が二つになって経路管理がスッキリしない。

余談... Aterm WG300HP は、DLNA準拠のメディアサーバを具え、余計な機能だと思っていたが、Surface のおかげで、ちょっぴりええんでないかい!

"種の起原(上/下)" Charles Darwin 著

$
0
0
生物学に触れるのに、進化論を避けて通るわけにはいかない。ただ、科学の中でも極めて社会学的な印象が強く、遠ざけてきたところがある。自然淘汰説では、自由放任や市場原理と結びつけて、弱肉強食と重ねる経済学者も少なくない。それでも、科学者から芸術家に至るまで実に幅広い分野でダーウィンを称賛する声を耳にするし、遺伝子工学が量子力学と深くかかわる様子から徐々に興味を惹き、いつかはダーウィン!と意気込んでいた。案の定、つまらないイメージを払拭してくれる。尚、多くの翻訳版が混在する中、比較的新しい光文社版(渡辺政隆訳)を手にとる。

「種の起源」は、専門家向けの学術書ではなく、一般読者向けに発行されたそうな。当時、大著「自然淘汰説」の執筆を進めていたところ、諸般の事情から要約を刊行する必要に迫られたとか。確かに、感情的批判の避けられない説ではある。要約にしては大作だが...
この時代、まだ遺伝の仕組みが皆目解明されておらず、ダーウィン自身、遺伝の法則についてまったく分かっていないことを表明している。この真摯な態度こそ自然科学者たるもの。彼はなにも、人類の祖先を猿と言っているわけでもなければ、ヒトの祖先についてすら触れていない。ひたすら飼育栽培や家畜、あるいは野生の動植物を観察しながら、進化の原理を論証しているだけだ。もちろんヒトの種も含めてのことだが、批判を想定し、言葉を選びながら語っている。要するに、あらゆる生物種が共通の祖先を持つと言っているだけで、現存する生物種の優劣を語っているわけではない。
「私は類推から出発して、地球上にかつて生息したすべての生物はおそらく、最初に生命が吹き込まれたある一種類の原始的な生物から由来していると判断するほかない。」
その本旨は、地上を豊富な生命で満たすための条件として、多様性と分岐の性質を主軸に置く。そして、すべての生命は指数関数的に増殖する性質を持ち、そのために生存闘争が生じるのは必然で、数を抑制するために大量絶滅の機会は避けられないとしている。これは、T.R.マルサス風の人口論ではないか。自然淘汰の原理が機能しなければ生物の分布は偏り、地上がこれほど多様な種で満たされることはないというわけだ。
近年、個々の生物種のDNA配列が明らかにされると、すべての生物種に共通点が多いことが発見される。見た目が明らかに違う生物でも、DNAレベルでは驚くほど似通っているというのは、自然の驚異を感じずにはいられない。構造を司る遺伝子メカニズムは、スイッチをオン/オフするだけで多様な形態をこしらえる機能を具えている。まるでプログラマブルデバイスのように。地上に存在する構造体は、すべて選択と分岐で説明がつくのかもしれない。これが偶然性ってやつの正体であろうか。生ってやつは、死を運命づけられてこそ生となる。だからこそ次の生を夢見るのであろうか。しかも、子孫の複製では、ほとんどの動植物が二つの個体で結ばれることを望む。雌雄同体であっても、やはり結合を求める。生の複製だけなら単体で生殖する方が合理的であろうが、遺伝子にはほんの少し変身願望があるようだ。生活環境が不変ではないことが、結合と分岐の原理を育み、適応能力を身につける。この意志こそ進化の正体であろうか。運命には、切り開く運命があれば、逆らえぬ運命がある。双方を調和させる意志こそ運命とうまく付き合う術なのだろう...

「個々の事象は神の力が個別に介入することで起こっているわけではない。神が定めた一般法則によって起こっているのだ。」
... W.ヒューエル「ブリッジウォーター叢書」より

自然淘汰説は、ある種の利益主義と言えなくはない。だが、自然的な利益と人為的な利益を区別する必要がある。個々の生物が具える体制、構造、習性を厳密に精査し、よりよいものを選択しながら保存すると同時に悪いものを排除する。自然の力とはなんと偉大であろう。だが、人間は自然の意志を解しているだろうか?人間精神はそこまで進化しうるだろうか?ダーウィンはこれを問うているようでもある。
人間の意志は、無意識の領域では自然の意志に適っているのかもしれないが、その一方で、意識できる領域ではどうであろう。満腹なライオンは人が側を歩いても襲わない。底なしの欲望を抱いているのは人間ぐらいなものだ。人為的に遺伝子操作された食物ばかり食べていると、その生命体はいずれ報いを受けるのかは知らん。
ところで、進化論といえば、お馴染みのイメージ図がある。腰を曲げて腕を引きずりながら歩く猿から、背筋を伸ばして直立歩行する人類へ段階的に変化していく、あれだ。ダーウィンの生きた19世紀は、すべての生物は神が個別にこしらえたとするキリスト教的な創造説が支配的な時代。人類の住む地球は、既に宇宙の中心でないどころか太陽系の中心ですらないことが証明され、生物の起源は神の御手が介在できる最後の砦であった。当時、ダーウィンは猿になぞらえた風刺画で揶揄される。
現在でもなお、人間の祖先はチンパンジーなどという誤解がある。ヒトに最も近い種といえば、そのあたりではあるが。おまけに、進化論を教育の場に持ち込むべきではないと主張する道徳者どもがいる。人間自身を崇めれば、人類のルーツに敏感に反応する。これも、ある種の民族優位主義のようなものか。人間社会では多数決が崇められるのに、宇宙では生命が存在する地球はごく稀な存在で、変質や奇形の類いとなろう。だが、これまた神の祝福を受けた天体と解す。人間のご都合主義、恐るべし。マスコミ連中が面白おかしく書きたてれば、興味本位で群がる民衆によって真っ当な学説が捻じ曲げられる。単に注目されたいという脂ぎった欲望が、真理を探求したいという純粋な欲望を圧殺にかかる。そんな構図は現在とて変わらないが、はたして自然淘汰の原理に適っているのやら。尤も俗世間に惑わされない資質を持った天才たちが、真の意味で人間社会を支えているであろうし、どんな状況下でも必要以上のドーパミンを発することはないのだろう。ダーウィンは、あの世でつぶやいているに違いない。戯言を科学に持ち込んで人類の叡智を崇める種が祖先だと言うのなら、自分自身は哀れな類人猿を祖先に持つ方がましだと...

1. 連続性と離散性
自然淘汰説は、想像を絶するほどの長い時間によって徐々に変化する過程を前提にした説である。つまり、連続性の概念によって支えられている。よって、ダーウィン批判は、地質学調査が示す不連続性によって巻き起こる。それは、最古の化石が堆積するシルル紀や、多様な生物が爆発的に出現したカンブリア紀を、どう説明するかにかかっている。
ダーウィンは、地質学的調査の不完全性を指摘する。種の絶滅は、隆起や沈降といった地質学的に保存の難しい状況で生じやすいために、連続的に移行する生物の連鎖を地質学に求めても難しいというわけだ。その信念は、「自然は飛躍せず」という自然史学の古い格言に沿っている。ただ、ちと言い訳じみていて、やや苦しく、かなりくどい言明を感じる。素人目にも、気候の大変動期が鍵になりそうなことは想像できそうなものだが...
そこで、ダーウィンをちょいと擁護してみよう。今では突然変異説ともうまく融和しているので、そんな必要もなかろうが、酔っ払いはお喋りよ...
社会学的、経済学的な観察において、連続性という概念に因われ過ぎるのは、現代とてあまり変わらない。人間の思考力は、記憶や知識といった元手を拠り所にするだけに、連続性とすこぶる相性がいい。その一方で、物理現象の多くがは離散的に生じるのも事実で、それは量子力学が示している。原子構造は、原子核の周りに電子が安定した軌道を描く。引力が一様に働けば電子は徐々に原子核に近づき、いずれ原子核に落ちそうなものだが、実際の電子軌道は整数倍で安定し、電子の存在数まで制限されている。電子に欠落が生じれば、化学反応を起こして安定状態へ戻ろうとする。そぅ、エネルギー状態には安定を求める性質があり、エネルギー準位は極めて離散的だということだ。だからといって、力の作用が離散的というわけではない。力が連続的に加えられながらも、状態遷移では離散的なのである。宇宙における物質分布にしても、均等ではなく、島宇宙や銀河といったクラスター化が生じる。気候の大変革もまた一夜にして起こる。The Day After Tomorrow... 映画の見過ぎか。
社会現象もまた離散的に生じる。革命や金融危機といった類いがそれだ。あれだけ巨大なソビエト連邦ですら一夜で崩壊した。社会学には、ティッピングポイントという用語がある。小さな民衆エネルギーがある閾値を超えた途端に、突如として大きな変化を見せる。今まで見向きもされなかった商品が、口コミによって突然売れ始めることだってある。人間社会では、出る杭は打たれる!の原理が常に働き、既得権益を守ろうとする種が変種への移行を拒み続ける。変種がとって代わるには、種の持つエネルギーの閾値を超えたエネルギーを蓄積する必要がある。微妙な変化を果たした中間的な変種が生まれては、既存の種によってすぐに絶滅させられる。
その一方で、種が限りなく数を増やせば、居場所を拡大するために、形質を分岐させていくしかあるまい。群れる習性が、狂った変種を多発させるのかは知らんが。その避けられない結果として絶滅が多発し、すべての生物は離散的に配列されることになろう。保存しようとする意志も、変異しようとする意志も、エネルギーの塊のごとく機能する。したがって、むしろ進化の過程が離散的であることが、自然淘汰説を後押ししている、と解するのはどうであろうか...
ところで、種と変種の違いとはなんであろう?人間の認識力では、多数派を種とし、少数派を変種とするぐらいなもの。少しぐらい疑問を持っても、多数派で安住する方が楽だ。一人の欲望が支配する独裁主義も恐ろしいが、多数派というだけで正義とされる民主主義も恐ろしい。ならば、頭がおかしいと言われるぐらいがちょうどいいのかもしれん...
「種とはきわめて顕著な特徴をもつ永続的な変種にすぎない。」

2. 性淘汰の原理
飼育下では、雌雄の一方だけに奇妙な特徴が出現し、その特徴が遺伝的に固定される例が多いという。性淘汰は、生存闘争ではなく、異性をめぐる闘争によって決まり、精力絶倫な雄がその場所で最も適合する個体となり、最も多くの子孫を残す。性の勝者だけに繁殖が許され、不屈の闘争心が武器となる角や爪、あるいは腕力を身に付けさせる。こうした形質的な差異が生じるのも、二次性徴の類いであろうか。ライオンの鬣のように見かけで脅す性質もあれば、人間社会では金銭や権威という空虚な武器も生み出される。雄どうしの戦いが熾烈を極めるのは、一夫多妻制への夢が隠されているのかは知らん。
その一方で、嬢王蜂に雄が群がる社会もある。性の同質化が進めば、雄の運動能力が雌に追い越されることもあろう。人間の種では、精神力や腕力で既に逆転した事例がわんさとあり、男性が子を産むという変異が生じる日が来るのかもしれん。
さて、雌と雄に分かれる生物は、子が生まれるにあたって、二つの個体がその都度結ばれることになる。それはそれで不合理に映るが、ことはそう単純ではない。交尾は単なる性的快楽を求めるためだけではない。奇妙なのは、雌雄同体の動植物でさえ受精が起こることで、究極の男女平等社会でもなさそうである。雌雄同体のカタツムリ、ミミズ、ヒルなど大部分のものは二個体間の交尾によって生殖する。遺伝子コピーのために二つの個体が協力しあうとは、何を意味するのか?死を運命づけられたものの生への執着か?いくら子供に夢を託したところで、親の言うとおりにならないのが人の世。
ただ、性淘汰の作用は自然淘汰ほど厳格ではないらしい。死をもたらすわけではないし、単に子孫を残さない選択をするだけ。しかも、二次性徴の変異性は高いという。生命の潜在意識には、命の保障付きで変身してみたいという願望でもあるのか?成長過程も個人差が大きい。人間では、女性の方が二次性徴の発現時期が早いとされる。こうした傾向は、精神的な作用も大きいだろう。子どもの頃は、女子の方が妙に大人っぽかったりする。
また、変異作用が大きいと、遠い祖先に逆戻りする形質も見られるという。しかも、失った形質を取り戻す傾向は、一時的な変種状態となるのではなく、何世代にも受け継げられるとか。人間社会にも、古典回帰といった文化活動が度々起こる。その代表はルネサンスだが、社会に幻滅すれば思想回帰も生じよう。
生命ってやつは、亜変種を試みては形質を戻すという作用を繰り返しているようである。変異とは、生命的危機とのリスクの大きさによって、必要なエネルギー準位で決まる現象とすることはできそうか。だとすると、生命的危機のないところでは、いくらでも変異が生じていることになる。個性ってやつも変異の一種であろうか。現代社会も亜変種の一つであろうか...

3. 退化の原理
「自然淘汰は、有益な変異をもつ個体は保存し、不利な変異をもつ個体は排除するという、生と死の使い分けで作用する。」
自然界とは、不要なものが淘汰されるという、そんな単純なものであろうか?少なくとも、その基準が人間の都合で決まるものではあるまい。不要そうに見える器官でも、そうでないかもしれない。確かに、身体の中で必要とされる部分の発達は著しい反面、使用されない部分は劣っていく傾向がある。人間の盲腸は小さく、不用の代名詞のような言われようだが、草食動物にとっては意味があり、そこに微生物を飼ってセルロースを分解させる。そして、微生物のたまり場を虫垂と呼んだりする。痕跡器官ってやつもある。本来の用をなさなくなった器官が、わずかに形だけが残しているような。尾骶骨が、それだ。
「一般に自然史学の研究書では、痕跡器官は "対称性を保つため"とか "自然の計画を全うする"ために創造されたものだという言い方がされている。しかしそれでは何も説明したことにならないと思う。単に事実を言い換えているにすぎないからだ。」
自然条件下よりも飼育栽培下の方が、変異がはるかに生じやすい上に奇形が生じる頻度も高いという。生殖機能は、生活環境の変化に影響されやすく、精神的に、肉体的に乱されると、変異も生じやすい。同じ種であっても、気候や気温の違いで血液の流れ方が違うだろうし、性格や運動機能も違うだろう。器官だけでなく生物体そのものの大きさも、住みやすいように相対的な関係から適切な大きさに保たれるだろう。恐竜が絶滅したのは、その巨大さにあるという説もある。地球の重力に対して、適切な重量と数というのがあるのだろう。
また、知覚能力は、生活環境の危険性との関係から生じる。洞窟や深海など暗闇で生活する動物は視力がほぼ消滅し、その代償に触覚や聴覚を発達させるといった変質をもたらす。アヒルが空を飛べないのは、飼育慣れしたからであろうか。視力や聴力が衰えるのも、恵まれた環境の裏返しであろうか。利便性にどっぷりと浸かれば認識能力を衰えさせ、なんでも周囲のせいにし、他人のせいにし、精神だけが旺盛になるのだろうか。仮想映像ばかり見慣れていると、そのうち実質が見えなくなるのだろうか...

4. 交雑と雑種形成
なぜ、かくも多様な生物が存在するのだろうか?その答えを求めて、ダーウィンは雑種形成にこだわる。このあたりも宗教的批判は避けられない...
雑種を作る簡単な方法といえば、遺伝的に異なる種どうしを交配させることであろう。しかし一般的に、異種間では雑種はできないとされるし、もしできたとしても、雑種個体には生殖能力がないとされる。トラの雌とライオンの雄の間のライガーや、ライオンの雌とヒョウの雄の間のレオポンは、いずれも不稔とされる。ラバやケッティも。それは、人工的に仕向けられたからであろうか?種間によって生殖的隔離があるかどうかは重要である。
ダーウィンは、新種が誕生するのは、既存の変種から独自性を獲得した結果だとしている。そして、雑種に生殖能力がないというのは、自然淘汰の直接的な作用ではなく、あくまでも二次的な作用だとしている。
では、生殖能力が保てる程度においての交雑はありうるのだろうか?人間と他の動物の交雑で子供が生まれるとすれば、ぞっとする社会となりそう。その一方で、血縁が近すぎると奇形が生まれやすいというのは、何を意味するのだろうか?異種間でも、適当に近縁で適当に離れているのが望ましいということはあるかもしれない。ちなみに、人間同士でも相性があるようだ。子供ができないからと相手のせいにして離婚すると、再婚してそれぞれの夫婦に子供ができたという話も聞く。なんのために離婚したのやら?子供を作ることだけが、夫婦の使命でもなかろうに。
それはともかく、自然淘汰説では、祖先が共通であっても、不稔性が生じることが重要だとしている。雑種が生存競争において不利となれば、雑種を作ることを拒む意識が働くだろう。しかし、雑種が有利となる場合もありそうなもの。それが、現存する雑種ということであろうか?偉大な生物史において、雑種が生じる現象も、既に安定時期にあるのだろうか?人間も、猿も、ゴリラも、過去の生物よりもちょいと有利な雑種というだけのことかもしれん。
一方で、植物には容易く交雑できるものがあるという。機能の抽象度という意味では、動物よりも植物の方が高等という見方ができるかもしれない。おそらく、動物よりも植物の方が先に繁栄した時代を迎えたであろう。生命力の逞しさでも、樹齢何千年と生きるものがある。余計な動きをせず、つまらないことも語らず、実にシンプルな生命体モデルだ。無駄な活動をしなければ縄張り争いで揉めることもないし、余計な存在感を示す必要もないし、精神の進化に集中できそうだ。交雑を受け入れる能力においても、多様性の受容能力は、植物の方がはるかに高等なのかもしれない。種子植物がミツバチに花粉を運ばせる受精モデルは、うまいこと動物を奴隷化している。しかも、本能を操って。夜の社交場に漂う美しい花びらや甘美な香りに惑わされるのは、動物の因果な習性よ...

5. 本能の起源
本能と習性は似ているが、起源が違うという。そう言いながら、ダーウィンはこの言葉の定義を諦めている感がある。古来、本能は先験的なものか?経験的なものなか?という哲学的論争がある。本能には普遍的な目的があるのだろうか?判断力の基底になっている直観も本能の類いであろうか?気まぐれとも、ちと違いそうか。習性は本能よりも経験的であろうか。
さらに、経験とはなんであろうか?記憶を根源にしているとすれば、DNAにも情報が記憶されている。本能と習性には、無意識の領域において類似点が多いような気がする。やはり、自然の意志と、人間の意志を区別せねばなるまい。本能とは、習性を昇華させた意志であろうか?もしそうだとすれば、習性を本能にする段階とは、直感を直観に昇華させるような過程であろうか?
習性は生活環境において育まれる。本能が習性の積み重ねから生じるとすれば、環境の変化によって本能もまた修正されるだろう。奴隷狩りや人種差別といった意志が、本能からきているとは思えない。だが、働きアリの奴隷振りはどうであろう?彼らに奴隷という自覚はないだろうけど。植物の意志がフィナボッチ数列や螺旋パターンを求め続ける一方で、人間の意志は十進数に囚われて金銭勘定を毎日繰り返す。こんなところに普遍的な意志が生じるかは知らんが、アリストテレスの生まれつき奴隷説も生あるものの宿命に見えてくる。自律神経系ですら自分の意志で説明できそうにない。自然淘汰説をもってしても、本能の起源を説明するとなると、やはり手強い...

"動物の心臓ならびに血液の運動に関する解剖学的研究" William Harvey 著

$
0
0
医師ウィリアム・ハーヴェイは、ガリレオやデカルトの時代を生き、解剖学で尊敬を集めた人物だそうな。ジェームズ1世やチャールズ1世の侍医だったというが、一般的にはあまり知られていないようである。ハーヴェイ贔屓の人々によると、目立たぬように振る舞うことで悦びを感じるような人物だったとか。真理を語る者にとっては、目立つと災いの降りかかる時代。科学的観点はことごとく宗教論争に巻き込まれ、案の定、ガリレオは宗教裁判にかけられ、デカルトは自由国オランダへ逃れた。全人類を敵に回すぐらいの覚悟がなければ、宗教的教説を打破することはできない。ハーヴェイは心臓と血液の運動についての画期的な理論を提示するが、これまた多大な批判を浴びたようである。本書には、アリストテレス主義の亜流に対する批判が多分に込められている。名指しはしていないが、スコラ学派あたりか。アリストテレスには敬意を払いつつも...
当時の解剖学は、ローマ帝国時代の医師ガレーヌスの学説が一般的だったという。つまり、ルネサンスに至る1500年もの間、この分野は進歩していないと苦言を呈しているわけだ。人体解剖は倫理的に攻撃されやすい分野だが、記録はヒポクラテスよりも前に遡る。言い換えれば、古代ギリシア、ローマ時代の智がいかに偉大であったかを示しているのだけど...

本書に示される血液循環の理論は、現代医学では当たり前とされる。それは... 血液は左心室の搏動によって動脈を介して身体全体に供給され、同様に右心室の搏動によって静脈を介して心臓へ戻す。そして、右心室から肺動脈を通して肺臓と接続され、肺静脈を通って右心室に入る。... といった血液経路である。
特に重視している点は、血液が運動を必要とするだけでなく、再び心臓へ戻ってくることが必要だとしていることである。この理論を証明するために、ハーヴェイは約128種もの動物解剖を行ったというから、その執念には凄まじいものがある。誇張することなく、真理を静かに物語ることが、研究者魂というものであろうか...
また、解剖を通して生命組織を解明しようするだけでなく、病理学の視点も忘れていない。医師の本能であろうか...
「真理への愛と、知識欲に燃えている真の哲学者は、その真理がたとえ誰からこようとも、またいつこようとも、それに対して道をあけないほどに自分が聡明で豊かな知識をもっているものでないことをよく知っており、また彼ら自身の感覚からいっても、決してそれほどに知識に富んではいないのである。」

従来の理論では、右心室は肺臓のために栄養を供給する役割があり、左心室は身体全体に血液を供給する役割があるとされ、血液は肝臓あたりで作られ、一方通行で身体の各部でそのまま消費されると考えられていたという。アリストテレスの時代から、血液の供給を生気の供給と呼んでいたそうな。動脈には生気がみなぎっており、赤々とした赤血球こそが生気の源とし、赤が生、青が死の代名詞とされてきた。生気とは極めて哲学的な表現だが、生気を酸素と読み替えるだけで、医学書っぽくさせる。尚、本書には、酸素や二酸化炭素という用語は登場しない。呼吸に関する空気と生気で区別されるぐらいか。
ハーヴェイは、右心室と左心室で役割が違うことに疑問を持った様子から語り始める。しかしながら、機能的な対称性を信じたとしても心臓の位置は左に偏っているし、実際に右心室と肺臓が接続されていれば、アリストテレスの構造論もそんなに悪くはあるまい。問題は、それを実証もせずに鵜呑みにすることであろう。想像や予測はできても、それを実証することこそ自然科学者の使命である。
とはいえ、凡庸な酔いどれときたら、こうした研究者たちの主張を鵜呑みにするしかない。ほとんどの知識は自分で確かめたものではなく、本を読んでお茶を濁すことぐらいしかできないのだ。それでも、手も足も出ない知識の渦の中に身を投じると、それが快感になってくるから困ったものである。ハーヴェイは、老人(プビリウス・テレンティウス・アフェル)が書いた喜劇の中に、こんな格言があることを紹介してくれる。
「ただ年齡(とし)をとり、経験をつむことは、なんら新しい変革をもたらさない。知っていると思っていることも、本当に知っているのではない。至上のものとして大切にしていることも、身をもってためしたうえでなければ、それを信じない。... このように、まったく理性を以てその生涯を、よく生きぬいた人は、いまだかつてみられない。」

1. 停止メカニズムと起動メカニズム
人体組織の構成を観察するだけなら、死体を解剖すればいい。だが、生命のメカニズムを解明するとなると... 動物愛護団体から集中砲火を浴びそうだ。
ハーヴェイは、心臓が停止する順序を手で触りながら克明に綴っている。最初に左心室が搏動をやめ、次に左心耳、ついに右心室が停止し、最後に死亡が確認されているにもかかわらず、右心耳はなお搏動し、生命は右心耳において最後まで残留するという。そして、心臓が漸次死に近づきつつある間に、心耳の二搏、三搏した後に、心臓はあたかも再び覚醒したかのように時折反応し、やがて緩やかになると。心臓が搏動を停止した後も、心耳がなお搏動している間は、心室中に搏動が認められるらしい。心耳が搏動するということは、血液の放出も見られるということであろうか。
なるほど、停止メカニズムを逆に辿れば、起動メカニズムを想像することもできそうである。ここには、デカルトの機械論をより具体化しようとした印象がある。人間機械論的ですらあるけど...
鼓動メカニズムがポンプの原理である以上、一時的に停止しても蘇生できる可能性がある。つまり、鼓動がたまーに乱れたり、瞬時に停止してもおかしくないほど、際どい関係から成り立っている。そこに呼吸作用が関与する。
では、呼吸の正体とはなんであろうか?赤血球が二酸化炭素を放出して、代わりに酸素を取り込む。化学では酸化と呼ばれるやつだ。こんな単純な交換作用によって、生命が維持されるとは... これを宇宙の奇跡とするか、神の仕業とするか、あるいは、何億年もかけて獲得した進化の産物に過ぎないとするか、まぁ、好きにすればいい...
注目したいのは、心臓の運動に心耳が関与していることを重視している点である。尚、心房という用語が登場しないのは、心室で抽象化しているのだろうか?
左右の心耳は同時に運動し、左右の心室も同時に運動するが、それぞれの系統は同時に起こらないという。心耳が先行して心臓の運動がこれに続くという。心耳が起動タイミングを作っているということか?心臓がポンプ運動を起動しているのは確かなようだが、一旦起動を始めると、身体全体が惰性的な周期運動を続ける。血液の放出からの圧力、すなわち、左心室側から主導されるということになろうか。そうなると、心耳には、物理的な連動波、鼓動波や周期波の伝播、ひいては、リズムを整える役割があるのだろうか?心耳と呼ぶからには、受動的な伝播運動なのかもしれない... などと解釈してみたものの、ん~... よく分からん。実は、それほど重要でない組織ってことはないの?ハーヴェイ先生!
まぁ、モノの有難味ってやつは、失った時に実感できるもの。その機能を排除した時、どうなるか?それを実験してみれば明らかになろう... おっと、動物保護団体の眼が怖い!
「肺臓と心臓とは、血液のための倉庫、源泉および宝庫であって、血液がそこで完成されるための実験場である。」

2. 動脈と静脈の対称性、そして、静脈弁の神秘
本書は、静脈の全域に配置されるシグマ字型の弁があることに注目している。つまり、逆流防止機構があることに。動脈には、逆流防止は必要ないのだろうか?血液の放出圧力で制御できると言えば、そうかもしれん。大動脈の入り口には弁があるけど...
弁は、分岐のあるところに明らかに多く見られるが、それだけではないという。頭部など上部へ血液を流れやすくする役割もあろうが、単に重力に逆らうためのものではないらしい。動脈から噴出したものを、静脈を通して必ず心臓へ戻す必要があると指摘している。そして、食物の摂取量から換算して、大量に血液を供給するには、循環路を巡っているとするしか、充満させることはできないという。ハーヴェイは血液の放出圧力と脈拍数から、血液の供給量を算出して見せる。
生命維持のためには栄養は必要であるが、食物を摂取してそれを消費するという工程だけでは説明がつかないのも確かだ。エネルギー保存則の観点からも、エネルギーの逃げ道が必要である。動脈こそが生気を与えるとされる従来の理論に対して、動脈と静脈の対称性こそが、安定した整脈をもたらすというわけである。
尚、静脈内に膜のような弁があることを最初に唱えたのは、ヤコブ・シルビゥスという人だそうな。ただ、弁は発見されたものの、用途が解明できなかったという。
ところで、本書では扱われないが、循環系には血管系とは別にリンパ系ってやつがある。血管系が燃料補給の役割があるとすれば、リンパ系は余分な組織液を排除する役割があるとされる。素人感覚では、リンパ系を静脈で兼用できそうな気もするが、そう単純でもないのだろう。
また、同じく本書では扱われないが、怪我などで身体が異常状態になると、動脈と静脈の間に痩管という連絡路ができると聞く。例えば、硬膜動静脈瘻といった病では、動脈と静脈が直接つながるといったことが起こるらしい。正常状態では、太い動脈から細い動脈へ、更に細い毛細血管を経て静脈へ繋がる。静脈から動脈へ移ることは心臓を経由しない限り不可能なはずだが、循環系に異常がきたすと、こんな補完機能まで具えているとは、生命の神秘どころか脅威すら感じる。
尚、本書は毛細血管までは言及されない。後に、マルセロウ・マルビギィが顕微鏡によって毛細血管を発見することに...

「哲学者が言ったとおり、人間は宇宙の中心だ。マクロの世界とミクロの世界の中間にいる。そのどちらも無限だ。赤いのは赤血球だけだよ。それも動脈内だけ。あとは海水に似た結晶だ。生命の川だな。... 全長10万マイルある。」
... 映画「ミクロの決死圏」より

"社会契約論" Jean-Jacques Rousseau 著

$
0
0
おいらは、説教じみた話が嫌いだ。ルソーといえば教育者の印象が強く、避けてきたところがある。ただ、モンテスキュー思想に批判的な立場であることを知ると、ちと興味がわく。おまけに、モンテスキューの「法の精神」は禁書目録に加えられ、ルソーの主著「エミール」もまた禁書に指定された。それだけで反社会分子には、ルソーを読む理由となる。彼はこう釘を刺す、「注意を払おうとしない読者にわからせる方法を、わたしは知らない。」と...
尚、「社会契約論」の翻訳版がいろいろある中で、桑原武夫、前川貞次郎訳版(岩波文庫)を手にとる。

これは人民主権論を説いた書である。当時、政治理論の多くが支配者の立場から語られたのに対し、ルソーが民衆の立場から語ったことは注目すべきであろう。その観点が、ロックを継承しているのは間違いなさそうだ。必然的に、統治者たる資格を持つ崇高な道徳観を求めるよりも、俗的な意志に則した政治体制が議論されることになる。とはいえ、立法者の資格に限っては、超人的能力を求めているものの...
その精神はフランス革命の引き金になったと評され、日本においても自由民権運動に影響を与え、近代デモクラシーの宣言書とも呼ばれる。本書は、国家は個々が結合した状態で、互いの自由と平等を最大限に確保するための契約によって成立するとしている。はたして社会の運命は、契約などという人の力で変えられるや、否や。いずれにせよ、人の意志につられる運命と、運命につられる人生とがあるように思う。
「いかなる人間もその仲間にたいして自然的な権威をもつものではなく、また、力はいかなる権利を生み出すものでない以上、人間のあいだの正当なすべての権威の基礎としては、約束だけがのこることになる。」

モンテスキュー式権力分立は、立法、執行などの政治機能を同列に配置する並列型機構である。対して、ルソーは立法能力を国家形成の根幹に位置づけ、他の機能に対して優越すべきだとし、その下に執行などを従属させる階層型機構を唱える。そして、「一般意志」という概念を持ちだして、ルソー流「自然状態」と絡めながら意志の階層化を暗示している。個人の意志から集団の意志へ、さらに究極目的たる国家の意志へ昇華させるといったところであろうか。
個人的意志は目先の欲望に吸い寄せられる傾向があり、しばしば社会的意志と大きく乖離する。では、人間の自然状態とは、どの意志の段階であろうか?理性は自然状態に含まれるだろうか?政治学の伝統には、人間は社会的市民であるといったアリストテレス的な考えがある。社交的な性質が生まれつき具わっているとすれば、理性は自然状態に含まれることになろう。
しかし、ルソーは、社会関係は個人の利害関係から生じるものであり、これに対抗すべく道徳観念が生じるのは、既に自然状態から社会状態へ移行した結果だとしている。生まれたばかりの子供は、野心や邪心の欠片もない純粋な状態にある。対して、大人とは、どういう状態であろうか?歳を重ね、経験を積んだからといって、理性的になるとは言えまい。むしろ、頑固になり、せっかちになり、僻みっぽくなり、おまけに嫌味の一つでも言わないと気が済まないとくれば、説教することでストレスを発散する。熟練した政治家ですら、しばしば憤慨するではないか。集団に属すことで安住し、慣習に従っていれば思考せずに済むとは、まさに奴隷状態!社会状態とは、堕落の象徴とでも言うのか?そして、一旦自然状態へ回帰し、新たな契約を結び直せとでも言うのか?... そうかもしれん。
「人間は自由なものとして生まれた、しかもいたるところで鎖につながれている。自分が他人の主人であると思っているようなものも、実はその人々以上にドレイなのだ。どうしてこの変化が生じたか?わたしは知らない。何がそれを正当なものとしうるか?わたしはこの問題は解きうると信じる。」

1. 自然状態と社会状態
最も自然な社会は、家族で構成される。ただ、子供が親に結び付けられるのは、自分自身を保存する上で親を必要とする間のみ、この状態は家族という暗黙の約束によって維持され、ここに法的な服従と義務の関係が結びつくという。服従も義務も自然的自由の下で成り立ち、運命的自由、あるいは人間本性的自由と言うべきかもしれない。そもそも人は生まれる国や両親を自由に選べない。生まれる地すら与えられない人もいる。自然淘汰的な競争原理において、人間の存在意識が防衛本能と結びつくのは自然であろうし、最も原始的な掟は自己保存に対する配慮となろう。ただ、親子の絆は血縁や愛などで結びつくが、支配者は民衆に対して愛を持たないばかりか、支配行為を快感とする。
では、国家と個人の結びつきは、何に頼ることになろうか?ルソーの政治論では、それが契約というわけだが。契約は人格と人格の結びつき、すなわち信頼によって成り立つ。国家はその信頼に値する存在であろうか?そこで、人間社会に課せられる最も素朴な権利が問われる。個人が国家を信頼するには、自己存在の保障が原則となる。そう、基本的人権の類いだ。
しかしながら、約束とは破られるもので、聖書との契約ですら心もとない。どんなに優れた政治理論をもってしても、最終的に縋るものが人間性だとすれば、政治家不要説が燻る。ルソーの描く国家像も、ブルジョワ的な立憲君主国家や議会主義国家などではなく、全人民を主導者とする革命的民主制、もっと言うなら、人民独裁国家に映らなくもない。革命ばかりでなく、暴力的な政治運動までも正当化されそうな。実際、フランス革命では、支配者が民衆の自由を奪ったのと同じ原理によって、民衆が自由の権利を取り戻したが、その反動に恐怖政治が訪れた。僭主による権利剥奪も、民衆による権利剥奪も大して変わらない。いや、集団性による専制の方がタチが悪いかもしれない。言葉が乱用される社会では、ささやかな事に目くじらを立て、言葉の揚げ足をとることに執心し、正義ですらストレス解消の道具とされる。
自然状態が自己保存における権利の保障に基づくとすれば、社会状態は集団的な保存における権利の実践ということになろう。それは秩序の上に成り立つ権利であって、自由奔放という意味ではなく、当然ながら自由も平等も制限されることになろう。主権者とは、社会契約を結んで一体となった人民全体のことを指すのであって、決して一個人を指すものではないという。
「精神的な事がらにおいては、可能性の限界は、わらわれが考えるほど狭いものではない。限界を狭くしているものは、われわれの弱さ、悪徳、偏見である。」

2. 一般意志と国家
自然状態において、すべての人間は生まれながらにして自由と平等が与えられる、とはよく耳にする。世界人権宣言にも似たような事が綴られる。だが、社会状態において自由と平等が制限されるということは、主権が制限されることになる。
では、個人が主権の制限を受け入れる動機は、どんな理由から発せられるであろうか?本書は、それは国家を作る根本原理、すなわち公共の幸福を求める「一般意志」だとしている。この用語は多数決的なニュアンスを与えるが、むしろ普遍的な意志と解すべきであろう。人間社会が不完全であるとはいえ、秩序なるものが自然に育まれてきたのは、義務の声が肉体の衝動を抑え、欲望を権利に置き換え、だいたいの方向性において集団的な理性が働いているからであろう。
しかしながら、公共利益を普遍性において定義することは、絶望的なほど難しい。集団の意志は、しばしば個人の意志と大きく乖離する。代議士は、本当に民衆の代弁者となっているだろうか?選挙運動は、純粋に政策を議論するよりも、血縁や地元出身を推したり、あるいは宗教的活動となりやすい。自分で思考することを放棄すれば、民主主義の義務を放棄しているようなもの。だからといって、立候補者の人格など分かるはずもない。結局、利益供与という動機が、票田とたかり屋の構図を生み出す。多数決の原理を本当の意味で機能させるためには、公共的な悟性の下で普遍的な意志を持つ側を多数派とするしかないだろう。だが、既に絶望的な状況にある。人間社会はいろいろな意味で格差が拡大する。経済格差、知識格差、認識格差... 民衆の意志は二極化し、おまけに報道屋が対立構図を煽り、世論はそれを面白がる。いまや国家は、国の枠組を超越した一つの概念のような存在であり、政府の意志で決定できるような単純な存在ではない。

3. 立法者の資質
「立法者は、あらゆる点で、国家において異常の人である。彼は、その天才によって異常でなけれならないが、その職務によってもやはりそうなのである。それは、行政機関でもなければ、主権でもない。共和国をつくるこの職務は、その憲法には含まれない。それは人間の国とは何ら共通点のない、特別で優越した仕事なのである。」
ルソーは、立法者に無の権威者となることを求める。人を支配するものが法であるならば、やはり人が法を支配してはなるまい。実際、日本国憲法第41条によると、国会は国権の最高機関で、国の唯一の立法機関とされ、これも一理ある。
しかしながら、立法者とて神ではない。国会議員は人間を超越した存在とでもいうのか?彼らは、司法の支持に従って、彼ら自身が当選してきた選挙制度を、中立の立場から不利な方向に修正できるだろうか?絶対的な安定多数を確保すれば、ドサクサに紛れて他の法案まで通過させてしまうような連中が。法を編む者、あるいは、それに口出しする者が、現実に執行権と結びついている。三権分立なんてものは、民衆の御機嫌とりのためのものか?ローマの十二表法を起草した十人委員会ですら、自らの権威を掲げるほどあつかましくはなかったという。そして、民衆への提案をこう語ったとか。
「君たちの同意がなくては、何一つ法とはなりえない。ローマ人よ、君たちみずから、君たちの幸福を生み出すべき法の作成者となれ。」
完全な立法においては、個人的意志は皆無でなければならないという。そりゃそうだろうが、主観が作用する意志において自己を排除することなどできようか。正義の根源ですら主観的に発するではないか。実際、有識者たちの憤慨する姿を見て、これが全体の意志に映るだろうか?普遍的な意志においては全体と個人は一致するのだろうが、そこに自信を深めた時、人格は暴走を始める。論理的な検証を怠り、意思決定を急ぐところに、ろくでもない条文が大量生産される。やはり、ルソー式階層型機構より、モンテスキュー式並列型機構の方が凡人に適っていそうな気がする。好みの問題かもしれんが...

4. 法の慣習性と硬直性
法には大まかに三つの種類がある。一つは、主権国家として規定される憲法。政治法や根本法とも呼ばれるそうな。二つは、構成員の相互関係や、社会との関係を規定する民法。三つは、これらの違法行為に対する罰則を規定する刑法。さらに本書は、四つ目の種類として最も重要な概念を加える。それは、市民の心に刻まれる規定で、いわゆる慣習法である。
特に民主政において、執行権が立法権と結合していることが弱点であると指摘している。権力との癒着構造が政治の腐敗を招くのはどんな政体でも同じだろうが、政府が法律を乱用する方がまだしも弊害が少ないとしている。どっちもどっちのような気もするが。裁判官の判決が世論の御機嫌伺いとなれば、もはや法治国家ではない。感情論に振り回されては、魔女狩りの類いとなんら変わらない。
「国家が解体するときには、政府の悪弊は、それがどのようなものであろうと、アナーキーという共通の名前で呼ばれる。これを区分すれば、民主政は衆愚政治に、貴族政は寡頭政治に堕落する。つけ加えれば、王政は僭主政治に堕落する。」
政治制度を強固にしようと欲するあまりに、その働きを停止する力まで失ってはならないという。古代スパルタでさえ自ら法律を休ませたことがあるそうな。ただし、公共の秩序を変えるような危険を冒してよいのは、最大の危機の場合だけと釘を刺しながら。最大の危機とは祖国の存亡にかかわる事態で、それ以外は法の神聖な力を止めてはならないという。
「法の非柔軟性は、事が起ったさい、法がこれに適応するのを妨げ、ある場合には、法律を有害なものとし、危機にある国家をそれによって破滅させることにもなりうる。形式の秩序と緩慢さとは、一定の時間を必要とするが、事情は時としてこれを許さない。立法者が少しも考えておかなかった場合が無数に起りうるから、人はすべてを先見することはできない、ということに気づくことが、きわめて必要な先見なのである。」

5. 政教分離
本書には、政教分離の原理を匂わせる部分がある。いや、絶望しているのか?支配者たちは世論を支配するために、しばしば神を利用してきた。改宗の義務までも、法によって被支配者に課してきた。人間の欲望は、土地を侵略するだけでは飽きたらず、精神までも征服せずにはいられない。その原理は、分かりやすい説得力や宣伝力を駆使して洗脳にかかる多数決の原理に受け継がれる。政教分離は古くから唱えられてきたが、本当の意味で政教分離を果たした国家は、まだ出現していないようである。
「市民的不寛容と神学的不寛容とを区別する人々は、わたしの意見によれば、まちがっている。この二つの不寛容は、分けることができない。のろわれている、とわたしたちが信じる人々とともに平和にくらすことは、できない。彼らを愛することは、彼らを罰する神をにくむこととなろう。彼らを正しい宗教につれもどすか、迫害するかが絶対に必要である。宗教的不寛容が認められているところでは、どこでも、それは市民生活に何らかの効果を生まずには済まない。そういう効果が生まれるやいなや、主権者はもはや、世俗的な事がらについてすら、主権者ではない。」

"人間不平等起原論" Jean-Jacques Rousseau 著

$
0
0
プラトンは、イデアという精神の原型のような存在を唱えた。ルソーは、かつて人間は自己保存という欲求の元で、ほとんど不平等のない自然状態にあったと説く。だが、社会進歩の過程で堕落し、人間の根源的な状態を忘れ、ついに「徳なき名誉、知恵なき理性、幸福なき快楽」だけを求めるようになったと嘆く。
そして、二つの不平等を定義する。一つは、自然的、身体的不平等。二つは、約束に依存する社会的、政治的不平等。本書の主題は、後者の不平等について、その起源は何か?またそれは、自然法において容認できるか?である。人間社会は、暴力に対して権利で対抗し、悪徳に対して理性で対抗し、これを法の下で実践する上で正義の概念を編み出した。法ってやつは、正義との癒着が強いだけに、乱用されやすいことに留意したい。
また、この書が「社会契約論」の下地となったように、教育論「エミール」でもそうであったようである。教育論ってやつは、理性をまるで欠いた酔いどれには、まったくもって煙たい存在であるが、いつの日か、その禁書にも挑戦してみたいという気にさせてくれる。
尚、「人間不平等起源論」の翻訳版がいろいろある中で、本田喜代治、平岡昇訳版(岩波文庫)を手にとる。

ロックは知性論の中で、すべての観念の生得性を否定した。さすがの賢人の主張も、ここだけは、ちとひっかかる。対してルソーは、人間の根源的意識に自己保存の欲求を位置づけ、自己愛を結びつける。さらに、自尊心を自己愛と区別し、自尊心はむしろ利己心に近いものとして自然状態から遠ざける。
アリストテレス曰く、「自然というものを、堕落した人々の中にではなく自然に従って行動する人々の中に、研究しなければならない。」

ところで、物心がつくとは、いかなる状態であろうか?既に純真な心を取り戻すことのできない状態であろうか?ルソーが問題とするのは、既に社会状態にある人間が、いかに自然人に立ち返ることができるかである。社会が形成され、集団規模が大きくなるにつれ、その中で生き抜くために自己を改善せずにはいられない。世間では、社会の適応能力と呼ばれる。だが、知識を知らなかった頃の自分が、何を考えていたかを思い出すことは難しい。外的要因ばかりを研究すれば、その外的要因によって変質し、もはや自己の姿すら見えなくなる。人間ってやつは、自分自身にどんなに関心を持とうとも、内的な自己には無知であり続け、外側の方がよりよく見えるようである。人間社会を賛美し、ばかげた傲慢と権威に憑かれ、なんとも知れない空虚な自己礼賛に陥り、自己を偏見へと誘なう。そして、理性を発達させることが、自然人を窒息させるのかは知らん...
「もっとも痛ましいことは、人類のあらゆる進歩が原始状態から人間をたえず遠ざけるために、新しい知識を蓄積すればするほど、ますますあらゆる知識のなかでもっとも重要なものを獲得する手段をみずから棄てるということであり、またわれわれが人間を識ることができなくなっているのは、ある意味においては人間をおおいに研究した結果だということである。」

1. 自然法について
国家の強制は、どこまで容認できるだろうか?政府が法律を国民にゴリ押しするような国家では持続性が危ぶまれる。法が神聖であるための条件は、いかに自然に適っているかが問われる。そして、自然法のもとで、常に政治システムは検証されなければなるまい。ルソーはもう少し踏み込んで、法律が自然法から逸脱するから、国家が不合理な不平等を生み出すとしている。
うん~... そもそも社会状態が、自然状態とは相容れないように映るのは気のせいであろうか?いくら自然法に近づけても、集団の規模が政治の許容範囲をとっくに超えているような気がしてならない。おそらく人口に適した政治の規模というものがあるのだろう。地方分権は機能しているだろうか?もしかして人間社会を生きること自体が、自然状態を放棄していることになりはしないか?
つい最近、スコットランドの独立を問う住民投票が行われた。現在の近代国家の枠組みが大方出来上がったのが18世紀前後で、まだ歴史は浅く、普遍的な枠組みと呼ぶには程遠い。今後も、国家という概念に対して疑問を投げかけられるであろう。
確かに、法を尊重できるかどうかは、誰もがある程度納得できるものでなければならない。法律が、私利私欲やご都合主義、あるいは支持者への利益供与のために編み出されては尊重されるわけがないし、すぐに改変されるような法律では人々に蔑まれる。改善するという口実で慣習を排除すれば、新たな悪行へ導く。現実に、時限立法と称しては支持を集め、しかも有効期限が過ぎても都合よく延長させ、却って社会を混乱させている。悲しいかな、悪徳は法の網を巧妙にかいくぐり、法律は悪徳の進化にともなって進化し、複雑化してきた。人間社会のエントロピーを元に戻そうとすれば、一旦リセットして再契約しなおすしかなさそうだ。氷河期や地軸変動といった地球規模の環境変化は、契約をチャラにしようという神の魂胆であろうか...

2. 自然社会と文明社会
「結論を述べよう、... 森の中をさまよい、器用さもなく、言語もなく、住居もなく、戦争も同盟もなく、少しも同胞を必要としないばかりでなく彼らを害しようとも少しも望まず、おそらくは彼らのだれをも個人的に見覚えることさえけっしてなく、未開人はごくわずかな情念にしか支配されず、自分ひとりで用がたせたので、この状態に固有の感情と知識しかもっていなかった。自分の真の欲望だけを感じ、見て利益があると思うものしか眺めなかった。そして知性はその虚栄心と同じように進歩しなかった。
偶然なにかの発見をしたとしても、自分の子供さえ覚えていなかったぐらいだから、その発見をひとに伝えることは、なおさらできなかった。技術は発明者とともに滅びるのがつねであった。教育も進歩もなかった。世代はいたずらに重ねていった。
そして各々の世代は常に同じ点から出発するので、幾世紀もが初期のまったく粗野な状態のうちに経過した。種はすでに老いているのに、人間はいつまでも子供のままであった。」
ルソーの描く自然人は、現代的な個人主義とは相容れない。自然人ほど臆病な存在はないのかもしれない。それだけに、知覚は極めて敏感で、危険の察知能力に優れる。文明化によって知覚能力は衰え、仮想空間に認識を求めれば、いずれ空想だけで生きていけるようになるのだろうか?食糧という実体ですら、サプリメントの進化で栄養分は集積化され、それで食べた気になれるとすれば、排泄の必要もなくなるのだろうか?性交の必要もなく遺伝子を伝播させることができれば、愛という幻想は精巧(性交)ロボットへ向けられるのだろうか?だが、生命体である以上、寿命という時間的な実体からは逃れられない。いや、肉体から完全に分離した精神だけで、生命を自覚できるような状態がありうるのだろうか?などといえば、霊媒師が喜ぶ。
文明社会では、寿命の対処においてですら不平等が生じる。権威者や金持ちは最先端の医療が受けられ、貧困層は放置される。いくら政治が平等を唱えても、食糧も、医薬品も、社会サービスも、文明が高度化するほど格差は広がる。はたして政治は自然の産物であろうか?
しかし一方で、文明社会が理性を育み、共同生活を安住の地とさせてきたことも事実である。弱者に対してそこそこの憐れみや施しがあるからこそ共存できるのであって、単純な弱肉強食の社会では持続できない。その意味では、個人の徳と悪徳は、集団性においてなんとか相殺されている。理性を高めるには、悪徳というリスクを避けられないのかもしれん。尚、ユスティヌスの歴史書には、こんな句があるそうな。
「ある人々にとって悪事を知らないことは、他の人々にとっては善事を知っていることよりも有益である。」

3. 自己愛と自尊心
本書は、自然人の固有の感情は自己保存の欲求とし、これが自己愛の根源だとしている。そこから派生する同胞への憐れみの情念が人間愛となり、やがて隣人愛や祖国愛へと広がると。対して、自尊心は、人間社会の腐蝕作用によって、自己愛が利己心へ変質した情念だと考えているようである。自己愛が自然的感情であるのに対し、自尊心は人為的感情ということか?自己愛も自尊心も利己心と相性が良さそうだし、言葉の堂々巡りのようにも映る。このあたりは用語のニュアンスの違いもあろうし、翻訳の難しさが伺える。
いずれにせよ、善人と悪人を区別しないような社会は、いまだかつて存在しない。ヘシオドスは、人間の進化を、黄金の種族、銀の種族、青銅の種族、英雄の種族、鉄の種族の五世代で物語った。黄金の種族は、クロノスが支配する時代で、人間は神々とほぼ同じ生活をし悩みや労苦を知らずに暮らす。銀の種族は、ゼウスが覇権を握った時代で、スケベえな雷オヤジが、あらゆる女神の寝所に忍び入っては子を孕まし、その子供たちが神々への敬意を忘れて争いを起こすようになる。青銅の種族は、さらに暴力的となって青銅製の武器を用いる。英雄の種族は、トロイア戦争で活躍した英雄たちの時代で、戦争をやるから英雄という概念も生まれる。鉄の種族は、正義や希望のない悪事が横行して退廃を極めた段階、すなわち、現世。
やがて、政治的な強者と弱者、経済的な富裕層と貧困層、社会的な知識人と無知人など、あらゆる面で二極化していく。物流と情報が発達すれば、都市と地方で差がなくなるかと思いきや、密集化と過疎化はむしろ顕著になる。情報社会が高度化すれば、誰でも平等に情報が得られそうなものだが、情報意識や情報収集意欲の格差が拡大し、情報主権が民衆へ移ってきた。あらゆる面で主権が民衆へ移行すると、能動的に生きる者と受動的に生きる者の意識格差は拡大するものらしい。
ならば、不平等を嘆くよりも個人の能力を自然に伸ばすように仕向け、最低限の自己存在の保障を規定する方が、よほど実践的であろうに。不完全な人間をエゴイズム的な完全像で描こうとするから、メフィストフェレスに付け入る隙を与える。そして、誰もが尊敬を受ける権利を主張するやかましい世の中になろうとは...
「各人は他人に注目し、自分も注目されたいと思いはじめ、こうして公の尊敬を受けることが、一つの価値をもつようになった。もっとも上手に歌い、または踊る者、もっとも美しい者、もっとも強い者、もっとも巧みな者、あるいはもっとも雄弁な者が、もっとも重んじられる者となった。そしてこれが不平等への、また同時に悪徳への第一歩であった。この最初の選り好みから一方では虚栄と軽蔑とが、他方では恥辱と羨望とが生れた。そしてこうした新しい酵母によってひき起された醗酵が、ついには幸福と無垢とにとって忌まわしい合成物を生み出したのである。」

4. 私有と共有
「ある土地に囲いをして、これはおれのものだ!と宣言することを思いつき、それをそのまま信ずるほどおめでたい人々を見つけた最初の者が、政治社会(国家)の真の創立者であった。」
本書は、社会的不平等の起源を私有制度に求める。ロックの格言に、「私有のないところに不正はありえない」というのがあるそうな。確かに、人間社会のすべての構成員に、私有の意識がなければそうかもしれない。しかしながら、自己保存の欲求の根源には、自分の身体は自分のものという意識がある。私有意識だけ明確に持ちながら、無理やり共有しようとすれば、むしろ不正の餌食となろう。共産主義的搾取の類いだ。現実に、すべての財産を共有すると宣言すれば、すべての管理は政府が担うことになり、そこに権力が集中し、癒着が生じ、搾取が始まる。あるいは、無条件な平等によって恩恵が受けられるとなれば、怠け者ほど得をする。純粋な自然状態に相応しい善は、社会状態では適合しなくなり、悪の道具となるばかりか、善自身が悪徳へと変質するだろう。
また、才能は誰のものか?と問えば、圧倒的多数が個人の努力の賜物と答えるだろう。真理に近づいた天才の中には、人類の叡智と答える者もいるが、人間社会の構成員の圧倒的多数は凡人である。才能が社会において有利となりうる条件だとすれば、ここにも不平等の起源がある。才能が優れていれば、それをもっと伸ばす環境を整えるべきだし、そのことが人類の叡智を保存することになろう。だが実際は、人類の叡智に貢献するよりも、はるかに経済的な成功者の方が評価される。勝ち組と負け組とは、まさにそんな概念だ。人類の叡智に貢献する者ですら負け組に種別される。もっとも本人に、そんな意識はないだろうけど...
所詮、そんなグループ分けは、他人よりも優位な立場に位置づけて、優越したいという欲求でしかない。経済に隷属すれば、貨幣量でしか価値判断ができない。知識に隷属すれば、知識量でしか価値判断ができない。土地の大きさに満足を求め、支持者や人気の数を競うのも、同じ原理であろう。身分と財産の格差、情念と才能の相違、有害な技術、つまらない学問といったものから、無数の偏見が生まれる。経済的な貧困と精神的な貧困では、次元が違うようである。どちらが高次にあるかは知らんが...
本書は、人間社会の構成員が国家という枠組みに組み込まれると、集団的な殺戮や復讐がより顕著になり、血を流すことが名誉や美徳となり、恐ろしい偏見が生まれるとしている。その偏見は、同胞ですら犠牲にする。今日、グローバル化の進む中で国家の枠組みが曖昧になり、経済交流や文化交流が戦争のリスクを軽減している。だがその一方で、帰属意識の不安からか?ナショナリズムが高揚し、その意識も二極化する傾向にある。自国民を優越させたいという欲求は、自尊心の類いから発す。その優越意識はオリンピックなどの祭典にまで及び、個人の名誉を国家の名誉と言わんばかりに罵り合う。政治家同士のネガティブキャンペーンのごとく。公私混同の甚だしさは、人間の悲しい性(さが)というものか...
名誉、友情、美徳を誇りとする情念は、いまや悪徳を誇りとする秘訣を見出す。愚者が賢者を指導し、大多数が飢えているにもかかわらず、ほんの一握りの者たちが奢侈に溺れるとは、これいかに?自ら犬と称したディオゲネスは、最も人間性に優れた都市アテナイを歩き回るものの、一人も人間を見出すことができなかった、と豪語した。社会状態とは、もはや不自然な集合体に成り下がる。人間の潜在意識に、狂いたいという欲求があるはずがないと、どうして言い切れよう...

"完訳 統治二論" John Locke 著

$
0
0
ジョン・ロックといえば、個人的には哲学者の印象が強い。「悟性論」の影響であろう。だが、政治や経済の書では、政治学者と紹介されることが多く、本書にもそんな香りがする。似たような印象に、アダム・スミスのものがある。世間では経済学者と呼ばれるが、「国富論」に触れてみると、そんな狭量な人物でないことが伺える。彼らには、政治学や経済学といった枠組みで人間社会を観察しようなどという意識はなさそうである。
ロックは、人間本性的な集団性から「自然状態」を探り、本来人間が保持すべきもの、所有すべきものを考察する。そして、自然に適った自由と平等の権利が、すべての人間に等しく与えられると主張する。言い換えると、自然に適っていなければ、自由も平等も制限されるということだ。したがって、政治における最重要課題は、法律が誰もが納得できる自然法となりうるか、これが問われることになる。
ひとりの人間が生まれると、血筋でつながった家族という集団単位を形成し、家族同士の結びつきから集団性の意識を育む。集団社会が形成されると、そこにまつりごとが生まれ、代表会が生まれ、首長が生まれ、さらに法が生まれる。誰一人として、生まれる地も、生まれる国も、両親も、自由に選ぶことができない。つまり、人間社会とは、生まれながらにして、どこぞの政治組織に隷属させられる奇跡的なシステムとすることができよう。はたして政治は自然の産物なのか?あるいは政治を自然な存在にし得るか?これが統治論の問い掛けであろう...

「完訳...」と命名されるのは、岩波文庫の「市民政府論」(鵜飼信成訳)が後編だけを掲載したのに対し、本書が全訳版(加藤節訳)ということである。
「前篇では、サー・ロバート・フィルマーおよびその追随者たちの誤った諸原理と論拠が摘発され、打倒される。後篇は、政治的統治の真の起源と範囲と目的とに関する一論稿である。」
統治二論の背景には、王権神授説との宗教的世界観をめぐっての対立が見て取れる。フィルマーは、君主を人間を超越した絶対的存在とし、民衆に服従する宗教的義務を唱えたらしい。対してロックは、君主とて人間であり、人間の自然性を考察しながら宇宙論的義務を見出す、といったところであろうか。そして、政治権力の起源を人民の合意、すなわち社会契約に求めている。
「人間の自由および自分自身の意志に従って行動する自由は、人間が理性をもっているということにもとづくのであって、この理性が、人間に自分自身を支配すべき法を教え、また、人間にどの程度まで自らの意志の自由が許されているかを知らせてくれるのである。」
この書が、ルソーの「社会契約論」の引き金となり、アメリカ独立宣言やフランス革命に影響を与え、その余波が遠く日本国憲法にまで及ぶことは、言うまでもあるまい。また、所有権の起源を労働に求めるあたりは、ある種の労働価値説を唱えており、アダム・スミスやデヴィッド・リカードを経てマルクスに受け継がれているのも確かであろう...

ところで、本書は、翻訳において、ちょっとした特徴を見せてくれる。「文庫版への序」の中で、所有権が身体や人格に及ぶ場合、「固有権(プロパティ)」という訳語を当てると宣言される。所有にもいろいろあるが、政治学や経済学が対象としがちなのは、財産、資産、土地、貨幣、住宅といったものである。ロックの所有は、生命や健康、あるいは自由や平等までも含め、普遍的人権のようなものを唱えている。その権利を得るための責任と義務とは何かを問い、政治の役割を相互保存の保障において問うている。なるほど...
ただ、偉大な哲学書には、一つの用語を多義的に用いたり、一つの概念にいくつもの同義語を当てたりするところがある。真理を探求しようとすれば言語の限界にぶちあたり、必然的に読者の理解力に委ねることになろう。それゆえに難解な書となりがちだが、おかげで思考に柔軟性を与えてくれる。実は多くの哲学者が、この柔軟性を意図しているのではなかろうか。そうせざるを得ないのかもしれんが...
完璧に精神を言い当てるような言語など存在しえないだろうし、もし存在するとすれば、人間は完全に精神の正体を知ったことになる。なんでも特別な用語に当てはめて定義しようとするのが学術界の常套手段であるが、却って奇妙なニュアンスを与えることがある。経済学における「信用」という用語など、その典型であろう。
実際、「固有権」という用語には、民族的な帰属意識やアイデンティティのようなものを感じる。自然状態というより社会状態に近いような。そうしたニュアンスを含めてもあまり違和感はないし、文脈を辿ると、基本的人権や自己保存の保障といった意味合いを強く感じる。固有といっても、私有と共有でも捉え方が違う。まぁ、好みの問題かもしれん。酔いどれ読者は翻訳者の苦労を解せず、さらりと読み流すのであった...

1. 統治二論の背景
ロック自身は、ピューリタンの家庭に生まれ、敬虔なキリスト教徒だったようである。神の目的から自然権を見出すという思惑は変わらないにしても、宗教的な神というより、宇宙論的な神を唱えているように映る。
ただ、第一論には、フィルマーの主著「パトリアーカ」への痛烈な批判が込められ、ちと感情的で、らしくない面も目立つ。自然な統治がなされない場合、すなわち暴力や征服の類いに対して、断固として抵抗する権利や革命の正当性を唱えるあたりは、ピューリタンらしいといえばそうなんだけど...
統治二論の成立には、イングランドの王位継承問題が複雑に絡んでいる。17世紀、オランダからの思想流入で、イングランド国教会はカトリック派とカルヴァン派の板挟みにあった。カトリック化を進めるチャールズ2世からジェームズ2世の継承の流れに対抗したのは、ロックのパトロンであったシャフツベリ伯爵(アントニー・アシュリー = クーパー)だが、反逆罪に問われオランダへ亡命。統治二論には、シャフツベリ伯爵を擁護することが意図されているそうな。その後、名誉革命によってプロテスタントの盟主であったオランダ総督ウィリアム3世が即位。本書の冒頭には、ウィリアム国王の正当性が綴られる。いかに人民の支持を受けた統治であるかを。
国王継承問題において、血筋などではなく民意の優位性を唱えることは、この時代には難しかったことだろう。革命後も、カトリック最強国フランスの軍事介入が続き、ロックもまたオランダへ亡命。イギリス人ロックの政治哲学が、フランスで活躍するルソーやモンテスキューに受け継がれるのも、歴史の皮肉を感じずにはいられない...

2. アダムの権原とイヴの幻影
正統な後継者を統治者の血筋に求めてきたのは、ほとんどの国や民族の慣例に見られる。直系、嫡子、正妻の子など。近代民主主義ですら世襲制が色濃く残る。そんな性向に理由付けするのも、詮無きことかもしれん...
キリスト教的な理由付けでは、アリストテレスの思想解釈がある。フィルマーは、アリストテレスの政治学に関する「考察」の序文に、こう書いているという。
「世界で最初の統治は、全人類の父における王的なそれであった。アダムは、子孫を殖やして地を満たし、それを服従させよと神に命じられ、また、全被造物への統治権を与えられることによって、全世界の王となった。彼の子孫の誰一人として、彼の認可あるいは許可を受けるか、彼から継承するしかない限り、何物をも所有する権利をもたなかった。」
父親の権力と、それに無条件に服従することの正当性は、人類創造に由来するというわけか。まぁ、百歩譲ってそうだとしよう。では、アダムの子孫は王家だけなのか?祝福されるべき人間は国王だけなのか?すべてが神の意志で誕生するとすれば、人民にこそ権利が認められるはずだが。そして、すべての動物、植物にも、同じく主権を与えることになるはずだが。親が子を保護するのは生物的本能であって、神が父親に子供を支配する権力を与えるなどとするから、おかしなことになる。父の祖先が絶対的な権威となれば、慣習は絶対となり、子孫は盲従するしかない。そして、反省の基準は服従の度合いで計られ、責任や義務もまた服従で理由付けられることになるではないか?
ロックは答えてくれる。「アダムが創造されたということ... それは全能の神の手から直接生を享けたということ以外のことを意味しない」と。あの世でアリストテレスも、迷惑がっているに違いない...
ところで、イヴの影が薄いのはなぜか?子を産むのは女性であり、主役はこちらのはず。ヘシオドスの神統記にも、カオスから生まれた原初神の一つに大地の神ガイアを置き、彼女が多くの神を産む母神としている。今日の男女の社会的優劣は、どこから生じるのだろうか?腕力か?それとも精子の持ち主か?自然界はそうでもなさそうである。無数の働き蜂に囲まれる女王蜂は複数の雄と交わり、カマキリの雄は雌に喰われる。なんと不条理な!
神の世界では、主神ゼウスがあらゆる女神の寝所に化けては進入し、子を孕ませる性癖がある。雷オヤジにも困ったものよ!人間の世界では、このだらしない遺伝子が女性に寛容力を養わせ、その隙に男性優位社会をこしらえたのかは知らん。女が子を産むという物理的優位性に対して、男は権威やら名声やらの幻覚的優位性に縋っているだけのことか。いや、野郎どもは、黒幕に操られる女性優位社会で踊らされているだけのことかもしれん。実際、三行半という言葉は愛想をつかすという意味で使われるし。ちなみに、ソロモン王の箴言に、こんなものがあるそうな。
「我が子よ汝の父の誡命を守り、汝の母の法を棄てるなかれ」
父が威張りくさっている間に、母が法となって裁くとすれば、アダムは永遠にイヴの幻影に怯えることになろう...

3. 自然状態と陪審制
ロックもルソーも、政治権力の正当性を導くために人間の「自然状態」を考察すべきだという立場は同じである。ただ、自然状態そのものの捉え方は、違いを見せる。ルソーの自然人は、理性や知性もなければ、徳も不徳もない、純真な情念にしか支配されない未開人とした。一方、ロックの自然人は、やや理性的観念を持ち自分を律することはできるものの、その情念は非常に不安定で、第三者の目を必要とするといったところであろうか。ただし、第三者とは、自然に適った法であって、宗教的戒律ではない。
「人それぞれが、他人の許可を求めたり、他人の意志に依存したりすることなく、自然法の範囲内で、自分の行動を律し、自らが適当と思うままに自分の所有物や自分の身体を処理することができる完全な自由の状態である。」
集団社会において、自由と平等の権利がすべての人間に等しく与えられるとするならば、必然的に自由と平等の範囲が制限されることになろう。統治の正当性を合理的に説明しようとすれば、統治の手段として用いられる法律が自然法に適っているかを問うことになるのも道理である。
また、抵抗や革命の正当性のようなものが語られる。
「すべての人間は自然法の侵犯者を処罰する権利をもち、自然法の執行者となるのである。」
ただ、この文章だけ切り出してみると、陪審制の理念のようなものを感じるから奇妙である。民衆の自然的な意思が裁くという意味では同じで、民意を尊重することが真の政治だとすれば、陪審制こそ象徴的なシステムと言えよう。だが、民意もまた宗教論や感情論と結びつきやすいだけに、魔女狩りの類いに変貌しやすい。
ところで、日本の裁判員制度は、哲学的な議論がなされているだろうか?裁判制度を国民の意識に適合させようというなら、それもよかろう。だが、国民は本当に自然法の在り方を学んだ上で、あるいは議論した上で参加をうながされているだろうか?そうした議論が慣習化されていれば、ある程度機能するだろうが、手段にとらわれやすい国民性は否めない...

4. 立法権と父親の権力
「立法権力とは、共同体とその成員とを保全するために政治的共同体の力がどのように用いられるべきかを方向づける権利をもつものである。」
政治の目的は固有権の平和かつ安全を享受すること、そのために、まずもって立法権を樹立することが必要だとしている。個人の安全保障に関する契約というわけだ。最高権力といえども、個人の同意なしで所有物を奪うことに正当性を感じない。となれば、最高権力を支える立法者は、よほどの人間性を具えた人物でなければ務まるまい。立法権力に他の権力が従属するというロックの立場は、ルソーに受け継がれる。日本国憲法第41条においても、国会を国権の最高機関とし、唯一の立法機関に位置づけられるが、このことが、国会議員を他の誰よりも格上に位置づけられるならば本末転倒。この点において、モンテスキューの分権論は修正版と言えようか。
また、国家の権力に父親の権力を重ねながら、その正当性を議論している。親子は無条件に血縁で結ばれ、そこに保護のための責任や義務が生じる。では、国家と個人の関係はどうだろうか?基本的人権の保障がなければ、税金を徴収する正当性もあるまい...
「父親の権力は、未成年のために子供が自分の固有権を処理できない場合にのみ存在し、政治権力は、人々が自分自身で処分できる固有権を持つ場合に、そして、専制権力は、まったく固有権をもたない人々に対して存在するのである。」

"ビジネスは人なり 投資は価値なり" Roger Lowenstein 著

$
0
0
これは、ウォーレン・バフェットの半生を綴った物語である。彼は、金融危機が生じれば政府ですら泣きつくという構図があるほど有名な投資家で、支配下の投資持株会社バークシャー・ハサウェイは世界最大を誇る。その投資人生は、コロンビア大学で教鞭をとるベンジャミン・グレアムとの出会いに始まる。バフェットは、グレアムの唱えたバリュー投資論を信望し、彼の著書「賢明なる投資家」を最高の書と語る。
「グレアムを知らずに投資するのは、マルクスを知らない共産主義者のようなもので、マーケットの原理を知らないのと同じことだ。」
世界恐慌を経験してもなお、ウォールストリートにはテクニカルアナリストが台頭し、近代金融工学はボラティリティばかりを追いかけ、変動率をリスクと同一視する。このようなファンダメンタルズを軽視する戦略は、グレアムやバフェットには気違い沙汰に映ることだろう。バフェットが「オマハの賢人」と称されるのも、あえてウォールストリートに身を置くことを避け、独自性を保ってきたことにある。群衆心理や自己欲望に惑わされやすいカネの世界では、その震源地から距離を置くことこそ肝要。偉大な人物とは、孤高の精神を持ち続けることができる人を言うのであろう...
「歴史に名を残す投資家の中でも、バフェットのビジネスを見る目は抜きんでていた。石油王のジョン・ロックフェラー、慈善家で鉄鋼王のアンドリュー・カーネギー、小売業で有名なサム・ウォルトン、ソフトウェアおたくのビル・ゲイツの共通点は、たった一つの発明や技術革新で財をなしたことである。バフェットはビジネスを研究し、株を選ぶ純粋な投資で財をなした。」

注目したいのは、バフェットの投資論がグレアムのものから発展させていることにある。グレアムの投資論は、1929年に生じた世界恐慌の反省に基いており、極めて保守的な行動原理が唱えられる。元本割れなどもってのほか!と。その基本戦略は、ファンダメンタルズ分析とそこから導かれる割安株の概念、そしてリスク回避のための分散投資にある。
一方、バフェットは、長期戦略とファンダメンタルズ主義の基本理念は同じであるにせよ、割安株の概念を成長株の概念に昇華させ、分散投資の限界から集中投資の効果を唱えている。グレアムが唱える割安株の概念は、財務報告を基準とするのであって、ある種の数値主義とすることができよう。対してバフェットは、経営者の人格、企業哲学、ブランド力など、財務報告に表れない将来性こそ評価すべきだとしている。目に見えぬ価値をいかに評価するか、これこそが投資家の責務と言わんばかりに...
「これはたぶん私の偏見だろうが、集団の中から飛び抜けた投資実績はうまれてこない... ウォールストリートの横並び意識は、いまも昔も変わらないであろう。平均は安全で、平均から外れたものは危険という安易な考えは、いまでもはびこっている。」
分散投資にも大きな障壁がある。そもそも満遍なく業界や企業を十分に分析するなど不可能だ。50ぐらいの優良銘柄を揃えることが理想ではあろうが、選別に時間がかかり過ぎる。ポートフォリオに多様性を持たせると、理論上は、一つの銘柄が下落しても影響を最小限に抑えることができるが、逆に上がった時も利益を分散させてしまう。金融危機ともなれば、市場は連鎖反応を引き起こし、むしろリスクを高めるだろう。不十分な分析で数十銘柄に分散させるぐらいなら、十分に熟知した二つ三つの銘柄に集中させる方が、精神的ストレスからも解放される。グレアム贔屓のおいらでも、この点はバフェットの方が現実的に映る。そして、一般投資家は情報の非対称性を背負うことにも留意したい。
バフェットの投資哲学には、単なる相場師にならない意志を強く感じる。将来性を買うからには、元本割れも覚悟の上か。実際、バフェットに理想とする株式の所有期間を尋ねると、永遠!と答えたそうな。金融屋には信じられないであろう。欲望に憑かれた業界、褒美で釣らなければ動かぬ集団は、脆い!人生には常に運と命(めい)の二つが付きまとい、春夏秋冬の訪れはなにびとにも避けられない。流れを拒めば、自ら不運を掴むことになろう。冬が来てもなお平静でいられるか、ここに人の価値が問われる。試練とは、ある種の運試し、というわけか...

1. マクロ的視野と大局観
バフェットは、マクロ経済的な観点から社会問題をとらえ、心配事のすべては人口問題に始まるとしている。彼は、常に核戦争のリスクと過剰人口を懸念していたとか。広島の原爆投下から、キューバ危機、国粋主義に至る思想に興味を持ち、戦争を避ける方法について研究し、世界が終焉を迎える確率まで計算していたそうな。数学者バートランド・ラッセルの著書にも執心だったという。ちなみに、ラッセルは平和運動家としても知られる。
バフェットの懸念は、マルサス的人口論から発するもので、おそらく地球資源や環境問題といったものも含むのであろう。実際、人口過剰が食糧危機や環境破壊をもたらす。バフェットの財団は、家族計画、性教育、産児制度、中絶問題などに巨額の寄付を提供している。
しかし、地元にあまり寄付をしないことが、ケチ!で有名。それは、ミクロ的な発想があまりないからだそうな。国会議員ともなれば、やたらと地元にハコモノを作っては自分の名前を掲げたがるもので、銅像まで作らせようと目論む者までいる。だが、オマハには、バフェット公園やバフェット美術館などの類いは見当たらないらしい。
また、黒人が多い地域で、居住区も仕事も厳密に分けられる風習があるという。オマハのロータリークラブを退会したのも、会員の人種差別やエリート意識に反発してのこと。金持ちになれば、それが自己満足で終わるような考えを批判している。バフェットの巨額な資産や収入は、究極的には社会のためにならなければならないと考えたそうな。キリスト教圏の国々でしばしば感心させられるのは、貧困への施しや養子縁組を受け入れたりする文化が盛んなことである。日本には少ない傾向である。その分、際立った億万長者も少なく、高度成長時代に一億総中流の意識が植え付けられ、極端な貧困が少ないこともあろうが。
バフェットは、大金持ちになったからといってジェット機を購入するなどという考えを批判したという。とはいえ、やっぱり買っている。社内用とはどういう意味かは知らんが、確かにオマハからウォールストリートは遠い...

2. バフェットの投資哲学
「バフェットがビジネスを評価する際に常に自分に問いかけてきたのは、資本、人材、経験などが十分にあるとして、その企業と競争したらどうなるだろうということだった。」
投資家として大成功を収めれば、株価の価値を見抜くにはどうすればいいか?と多くの人々から聞かれるだろう。そこで、よく債権に例えて説明したという。債権価格は利子から生まれる将来のキャッシュフローに等しく、それを現在価値に割り引いたもので、株価も同じように考えることができる。要するに、株の利率をいかに見積もるか、である。その方法を簡単にまとめると...
  • マクロ経済や経済予測も、他人の株価予測も気にする必要はない。長期的な企業の価値の分析に集中し、将来の収益を予測するべき。
  • 事情に詳しい業界に集中するべきで、どの業界にも必ず原理や法則がある。ちなみに、バフェットの場合は小売りチェーンが多く、時流のテクノロジー株を毛嫌いしている。
  • 株主から預かった資本を自分の財産と同様に考え大切に使用する経営者を見つけるべき。
  • 証券会社の分析ではなく、自ら生のデータを細部にわたって分析するべき。しかし細部にとらわれるのもよくない。自分を信じるようバフェットは強調する。
ただし、投資家としての目利きは抜群でも、経営手腕では劣ることを自覚している。バフェットの口癖がこれ!
「万能選手になる必要はないが、どこに限界があるかは知る必要がある。」
限界を知るということは、限界を試してきたということでもあろう。チャレンジ精神が旺盛でも、これを持続することは難しいし、偉大な投資家が偉大な経営者になれるとは限らない。言葉は単純だが、なかなか辿り着ける境地ではなさそうだ...

3. 敵対的買収と際限なき中毒
1980年代... それまでお堅いイメージの投資銀行が、突然、非難の的となる。投資は、投機と買収へと変貌していった。赤いサスペンダーをした若くて金を操る優秀な連中が、M&A市場を戦場に見立て、大企業の経営者たちを恐れさせる光景は、映画「ウォール街」を彷彿させる。日本でもバブルに突入し、M&Aが流行した。
こうした流れでいつも問われるのが、「企業は誰のものか?」である。株主のものと考えるのが、経済人の主流であろう。敵対的買収に成功した者ほど、そう考えるようである。実際、商法でもそう規定されているし。そこで、ちょいと質問の角度を変えてみると...
「企業は誰によって成り立っているか?」と問い直せば、それは従業員であり管理者であろう。では、「企業は誰のために存在するのか?」と問い直せば、それは顧客であり社会的意義であろう。「経営責任を負うのは誰か?」と問えば、それは経営陣となる。これだけ立場の違う人間が複雑に絡めば、企業が私物化できるような代物ではないことは明らかだ。いくら商法で規定しようとも、法律なんてものは都合が悪くなった者が言い訳に使うためにあるだけのこと...
巨大な投資銀行ソロモン・ブラザーズもまた、敵対的買収の対象となり、バフェットに救済を求めた。減収を記録しながら、株主には一銭も配当しないばかりか、経営陣のボーナスだけは毎年支給される体質にうんざり!人間ってやつは、高待遇漬け、高収入漬けに麻痺するもの。そんな時に、不正入札事件が発覚し、信用は地に落ちる。バフェットといえども、あれだけ再建に苦労しながら株を売却するのは投資家としては当然だが、やはり行動はドライか...
1987年のブラックマンデーに至るまで、強気相場の根拠にキャッシュフローが株価を支えている、などという馬鹿げた理屈がまかり通る。PER20倍という歴史的な高値水準を、バフェットは危険水域と考え行動を控える。しかしながら、当時の日本市場では、PERが60倍ってのは当たり前のようにあって、アメリカの経済学者からも不思議とされた。これを根拠に高値水準が正当化されるのも奇妙な話だが、おそらく高度成長時代の名残であろう。そして、バブルが弾けると、日本の市場原理が特別ではなかったことに気づかされる。
ちなみに、現在ではこれと似た感覚に国債の対GDP比がある。200%超えはかつて経験したことのない水準だが、日本は本当に特有なのか?日本市場は、本当に機能しているのか?アル中ハイマーにはとんと分からん。
ブラックマンデーが過ぎ去ってもなお、新たなLBO(レバレッジド・バイアウト)のブームが次々とやってくる。LTCMの崩壊劇しかり、リーマショックしかり... 市場が好調の局面では、欲望が恐怖を押しのける。投資銀行は、マーチャントバンキングを標榜し、LBOの仲介だけでなく自己責任と称して企業を買収するようになる...

4. プロとアマの意識の逆転
バフェットは、投機的意識がプロとアマチュアで逆転したと指摘している。かつてプロは常に冷静に行動し、アマチュアは熱くなって失敗すると言われた。近年、市場はケインズが揶揄した美人コンテストと化し、バフェットの市場観察もケインズの恐慌論を基盤にしているように映る。
金融屋たちは、会社の業績や経営方針といったものに興味がなく、レバレッジ率を高めて儲けを最大化しようと目論む。つまり、他人の資金を当てにするってことだ。プロの資金運用会社は、他人の資金を運用しながら、定期的に実績を示さなけばならない。市場が強気局面でも弱気局面でも。弱気局面では、空売りの技術が必要となり、必然的に信用取引を駆使することになる。信用取引は担保や借金によって成り立つ仕組みであり、返済期限に追われる。担保にした債権や株式の市場評価が下落すれば、保証金を見せなければならない。そのプレッシャーは半端ではあるまい。
一方、アマチュアは無理に信用取引に手を出さずとも、十年や二十年のスパンで構えることができる。行動の柔軟性においては、はるかに有利な立場にあり、精神的にも風上に立てる。もちろんアマチュアだってレバレッジ率を高めれば、リスクは拡大する。それも自己責任の問題であって、自分の財布と相談しながら行動すればいいだけのこと。プロの場合は、組織ぐるみとなって自己責任の範疇をはるかに超え、実際、巨額な公的資金が注入されてきた。バフェットは寓話を持ちだす。
「石油の試掘業者が天国の入り口で、鉱区の空きはないことを告げられた。聖ペテロから一言だけ発言する許可を与えられた彼は、地獄で石油が出たぞ!と叫んだ。天国の石油堀り達は、先を競って地獄に向かった。そして、その試掘業者は天国への入場を許された。ところが、当人は、いえ結構です!本当に石油が出るかもしれないから彼らと一緒に行きます!といった。」

"FREE" Chris Anderson 著

$
0
0
なぜ、最も人気のあるコンテンツを無料にしても商売が成り立つのか?あらゆる価値が貨幣換算される時代では、フリーとは無を意味するはず。フリーを巡っての論争は、間違った状態とするか、自明な結果とするかで二分されてきた。無から有を生み出す概念だけに、誤解されやすく、恐れられもする。だが、いまやフリーは当たり前と考える方が優勢であろうか。著作「ロングテール」で名を馳せたクリス・アンダーソンは、この得体の知れない概念の正体を暴こうとする。そして、二元論に陥ることなく、 読了後にはどちらにも与しないことを願っていると語る。
フリー経済では無料のものが有料よりも価値の高い場合が生じる。それは、貨幣に頼らない価値判断を促しているのだろうか?真の価値で経済循環を促そうとしているとしたら、それは良い風潮かもしれない。生活様式や価値観が多様化する中で、仕事の価値を収入でしか測れないのでは、あまりにも寂しい。オープンソースの世界には、技術を磨くために無料奉仕で仕事をする人たちがいる。ネット社会には、見返りを求めずプロ顔負けの情報を提供する人たちがいる。彼らの創作意欲を動機づけるものが、お金でないとすればなんであろうか。彼らなりに自由を謳歌することであろうか。フリーとは、貨幣経済では無駄を意味しても、精神哲学では自由を意味する。彼らは無駄の意義をよく知っているのだろう。贈与の心理学は、無駄をめぐる倫理観において顕著となる。自己啓発された利己主義ほど力強い動機はあるまい...

今まさに、無の概念を後ろ盾にしたビジネスモデルが社会を席巻しつつある。ソフトウェア業界では、OS, ブラウザ, SNS, 辞書サービス, クラウドサービスなどが無料化され、各種開発ツールまでもオープンソースで提供される。ハードウェア業界もまたその恩恵を受けながら、デスクトップ上の設計やシミュレーション手法によって開発コストを抑え、ますます無へ近づこうとしている。
プロとアマチュアの境界も曖昧になり、むしろ取り組む姿勢、すなわち能動性と受動性でバンドギャップを広げるかに映る。製造工程までもロボット化が進めば、人間から見出だせる価値はアイデアを創造する力だけということか。いや、ネット社会にはアイデアまでも溢れ、ちょいとググれば済む話。ほんの一部の頭脳があれば、人間社会は成り立つというのか?その他大勢は、商品同様、人間性においてもコモディティ化が進むというのか?最後の砦は人件費ぐらいなもの、そして人間の価値までも無へ帰するのかは知らん...

とはいえ、フリーは古くからあるマーケティング手法である。95% の製品を売るために、5% を無料で提供するオマケという発想によって。
ところが、コンピューティング上の仮想社会、いわゆるビット世界ではフリーの概念を逆転させる。5% の製品を売るために、95% を無料で提供する「フリーミアム(Freemium)」という発想によって。尚、Freemiumとは、Free(無料)とPremium(割増)を組み合わせた造語で、ベンチャーキャピタリストのフレッド・ウィルソンが広めた。多くのユーザが無料でサービスを謳歌し、グレードの高いサービスを有料にして賄うという意味では、不幸に遭遇した人を金持ちが施す仕組みにも映る。
こうした仕組みを可能にするのは、二つの経済的要素がある。それは、経済学で言うところの限界費用をゼロにすることができること、そして、想像もつかないほどの大規模な市場が潜在的に存在することだ。テクノロジーはムーアの法則に従い、情報処理能力、記憶容量、通信帯域幅の限界費用を限りなくゼロに近づけてきた。市場においては、コンピューティングは1人1台に留まらず、無人機器や無人施設にまで拡大し、もはや人間の数では測れない。製造、販売、流通などあらゆる中間コストがゼロになれば、消費者にとってこれほど嬉しいことはあるまい。仮想店舗の構築にコストがかからないから、ロングテールの概念が成り立つ。電子決済では、1円払うのも百万円払うのも手間は同じで、コンテンツのダウンロードが1円でも商売が成り立つ。取引の基点サーバが海外にあれば、税金の概念までも変える。そして、フリーはユーザを惹きつける最良の価格となった。
一方で、消費者もまた、なんらかの仕事をやっているわけで、生産者でもあることを忘れてはなるまい。結局、キャッシュフローを生み出さなければビジネスは成り立たない、という経済常識は変わらないようだ。
それでもなお、お金のかかるべきでないところがフリーになるとすれば、どうであろう。従来型の経済循環は、必要以上にお金を回そうとしてきた。実際、政治家が打ち出す景気刺激策は、消費を煽るぐらいしか能がない。賃金が下がることに労働者が激しく抵抗すれば、相対的に貨幣価値を下げることになる。労働資本のように硬直性の高い価値と、為替のように柔軟性の高い価値を共存させるには、経済全体としてインフレ方向に振れざるをえない。
その一方で、ネット社会はデフレ側にバイアスをかけるという見方がある。余計なキャッシュフローを抑制するという意味では、そうかもしれない。経済界はデフレを悪魔のように言うが、それは本当だろうか?景気を煽るために無理やり消費者物価指数を高めようとする政策が、はたして理に適っているのだろうか?フリー経済は、インフレやデフレの概念までも変えようとしているのかもしれん...

1. フリーの形態
フリーといってもその形態は無数にある。ただ基本的な思考では、内部相互補助というものが働くようである。要するに、他の収益でカバーすることである。
例えば、DVDを買うと2枚目はタダとか、クラブの入場料は女性を無料にするとか... いつも男性諸君は倍返しを喰らうのよ。生命保険は、健康な者が不健康な者をカバーする仕組みで、したがって健康者をいかに募るかがビジネスの鍵となる。フリーとは、こうしたマーケティング戦略を大げさにしたものらしい。
本書は、四つのフリー形態を提示してくれる...
  • 一つは、直接的内部相互補助。消費者の気を引いて、いかに他のモノを買ってみようと思わせるか。
  • 二つは、三者間市場。まず二者が無料で交換することで市場を形成し、三者が追従することで参加のための費用を負担させる。メディア戦略は、この構図が基本であろうか。広告主を基盤にするテレビやラジオの発展型が、google の戦略と言えよう。インプレッションモデルでは、視聴者やリスナの閲覧回数に対して支払われる。他にも、クリック単価(CPC)や成果報酬(CPA)という概念が生まれ、サイト訪問者が有料顧客となった場合にのみ広告料を払うといったモデルが登場した。リードジェネレーション広告では、無料コンテンツに興味を示した見込み客(リード)の氏名やメールアドレスなどの情報に広告主がお金を払う。
  • 三つは、フリーミアム。本書で最も重要視される戦略で、基本版を無料で広め、プレミアム版を有料にする。アプリケーションとOSの関係もこれに属す。OSを無料で配布して有料のアプリケーションで儲けるか、あるいはその逆も。典型的なオンラインサービスには、5%ルールというものがあるという。5%程度の有料ユーザが、無料ユーザを支えていると。
  • 四つは、非貨幣市場。対価を期待せず、提供するものはすべて。それは、喜びや満足感、あるいは知性や感性など、自己存在を確認できるものすべてに価値が生じるといったところか。
さらに、フリーミアムにおける四種類の戦術を提示している...
  • 一つは、期間制限。30日間無料で使用できるアプリなど。
  • 二つは、機能制限。有料でフル機能装備など。
  • 三つは、人数制限。一定数を無料に、それ以上は有料にするなど。
  • 四つは、顧客のタイプによる制限。小規模で創業まもない企業は無料で提供するとか、ビジネスとアカデミックで料金を分けるとか。
いずれの形態も、通信業界やソフトウェア業界でよく見かける価格モデルだ。

2. ペニーギャップ
フリーは気分がええけど、ちと良すぎるところがある。フリーならば多少の品質の悪さに目をつぶることができても、有料なのにフリーよりも品質の悪いものが出回る。最新版を買い続けたところで、機能アップばかり謳いながら、品質ではむしろ劣化しているケースも珍しくない。
ソフトウェア開発で、最もコストのかかる要件の一つにテストがある。ウィルス対策ソフトなどでは、基本エンジンを無料公開すれば、マニアたちが厳しいストレステストをやってくれる。彼らの情報をフィードバックしながら、GUIを整えプラスアルファの機能を盛り込めば、精度の高い製品が安価で提供できる。
フリーは、価格が安いというだけの意味ではなく、そこには別の市場が生まれる。需要供給曲線は、有料市場からフリー市場に移行した瞬間、線形性を失う。ブラックホールかアトラクターに陥ったかのように。ペンシルヴェニア大学のカーティク・ホサナガー教授は、こう語ったという。
「価格がゼロにおける需要は、価格が非常に低いときの需要の数十倍以上になります。ゼロになった途端に、需要は非線形的な伸びを示すのです。」
これが、ペニーギャップってやつか。需要の価格弾力性は、価格を下げれば需要が増すなんて単純なものではない。現実に、たった1円を払わせることが、いかに難しいことか。フリーモデルでは、心理的効果が大きな意味を持つ。
「値段ゼロは単なる価格ではない。ゼロは感情のホットボタン、つまり引き金であり、不合理な興奮の源なのだ。」
行動経済学は、フリーに対する複雑な反応を、社会的意思決定と金銭的意思決定に分けて説明する。無料なものは、使い捨てという心理が働くのも確かだ。あまり注意を払わないことも、フリーの弊害となろう。
しかし、たとえ無料でも資源として存在するならば、大事に使おうという社会的意識が働くかもしれない。そこになんらかの価値を見出すことができれば、粗末にはしないだろう。経済的合理性とは反するかもしれんが。
ちなみに、「economics」の語源は、古代ギリシア語の「oikos(家族)」と「nomos(習慣、法律)」に由来するという。家庭のルールという意味だそうな。家族の絆まで貨幣で測られるのでは敵わん!

3. 潤沢な社会
「潤沢な情報は無料になりたがる。稀少な情報は高価になりたがある。」
フリーになりたがる、という意志と、フリーであるべきだ、という結果では言葉の響きが違う。経済理論では、価格は市場が決定することになっている。
では、無料であるべきか有料であるべきかなんて、市場が決めることができるのか?潤沢となった商品の価値は他へと移り、新たな稀少を求めてそこにお金を落とす。潤沢さに価値を求めるか、それとも、相対的に見いだされる新たな稀少に価値を求めるか、はたまた、その両方か、価値に対する考え方はますます多様化するであろう。人間ってやつは、贅沢に馴らされると、次の刺激を求めてやまない。社会学者ハーバート・サイモンは、こう書いたという。
「情報が豊富な世界においては、潤沢な情報によってあるものが消費され、欠乏するようになる。そのあるものとは、情報を受け取った者の関心である。つまり、潤沢な情報は関心の欠如をつくり出すのだ。」
さて、フリー経済では、無料と有料が極端に乖離しながら、共存できるという奇妙な現象がある。その典型的な事例は、TEDカンファレンスに見ることができよう。参加者にはベラボウに高いチケットを販売しておながら、Web閲覧者には無料公開される。VIPたちにとって、ライブで味わえる幸福感はなによりも代えがたいのであろう。その一方で、一介の貧乏泥酔者でも鑑賞できるのはありがたい。これは、ある種の民主主義の形体を提示している。
「デジタル市場ではフリーはほとんどの場合で選択肢として存在することだ。企業がそうしなくても、誰かが無料にする方法を見つける。複製をつくる限界コストがゼロに近いときに、フリーをじゃまする障壁はほとんどが心理的ものになる。つまり、法律を犯すことの恐れ、公平感、自分の時間に対する価値観、お金を払う習慣の有無、無料版を軽視する傾向の有無などだ。デジタル世界の製作者のほとんどは、遅かれ早かれフリーと競いあうことになるだろう。」

4. フリー経済の参入障壁
従来型の経済モデルで潤ってきた企業にとって、フリーへの参入障壁は大きい。「死ぬ瞬間」の著者で、精神科医のエリザベス・キューブラー・ロスは、「悲嘆の五段階」という説を唱えたそうな。
本書は、この説にマイクロソフトの事例を重なる。海賊版が多く出回るようになり、不正コピーを撲滅しようとすれば、却ってコストがかかり、ついにはユーザが逃げ出す。一方で、GNUが登場すると、フリーウェアに秩序を与え、特別なライセンス形式がオープンソースの概念を定着させる。なぜマイクロソフトは、Linux を無視してきたのか?
  • 第1段階、否認。いずれ消える、とるに足らないと考える。フリーウェアがマニア仕様であった時代、一般に普及するとは思わない。
  • 第2段階、怒り。Linux がライバルになることが明確になると、今度は敵意を見せ、経済性を攻撃する。真のコストはソフトウェア価格ではなく、サポートなどの維持費にあると主張。Linux を導入すれば専門家にお金を払うことになり、無料は表面上に過ぎないと警告した。
  • 第3段階、取引。マイクロソフトのやり方に怒りを覚えた民主家ユーザたちがいた。彼らは、Linux をはじめ、Apache HTTP Server, MySQL, Perl, Python などのオープンソースを使い続け、その勢力は拡大していった。マイクロソフトの非難戦略は、墓穴を掘る羽目に。
  • 第4段階、抑鬱。オープンソースが使っているライセンスは、GPL。マイクロソフトの戦略と真逆な発想だ。フリーライセンスから、自社製品にウィルスをまき散らす可能性を恐れ、現実からに目を背ける。
  • 第5段階、受容。市場は、三つのモデルに居場所を与えた。すべて無料、フリーウェアに有料サポート、昔ながらのすべて有料...
小口ユーザほど予算がないのでオープンソースを選択する傾向があり、大企業ほどリスクを恐れて金を払う。だからといっって、マイクロソフトのサーバに信頼が置けるのか?そこで、サポート付きの有料 Linux(redhat あたり)を選択する手もある。フリーと相性がいいのは、既存企業よりも新参企業の方であろう。そして、ユーザに愛着を持たせることが、最良の戦略となろうか...

5. クルーノー理論とベルトラン競争
1838年、数学者アントワーヌ・クルーノーは、経済学で傑作とされる「富の理論の数学的原理に関する研究」を出版したという。それは、企業競争を数学的にモデル化したものだそうな。製品競争の中で生産量が増えれば値崩れを起こすので、価格をなるべく高く維持するために、作り過ぎないように生産量を自主的に規制するというもの。生産者側から語った古そうな論理だが、現在でも影響力があるらしい。
1883年、数学者ジョセフ・ベルトランが、クルーノー理論の再評価を試みたという。当初ベルトランも、クルーノーに批判的だったとか。ところが、クルーノーモデルの主要変数を生産高ではなく、価格にして計算してみたところ、整然とした理論になったという。結論はこうだ。企業は生産量を制限し、価格を上げて利益を増すよりも、価格を下げて市場シェアを増やす道をとりやすい。実際、企業は製造コストのギリギリまで安くしようとし、価格を下げるほど需要は増える傾向がある。ベルトランの時代、競争市場はそれほど多いわけでもなく、製品の多様性もなく、価格操作もなかったという。
当時、二人の理論は、経済学モデルを無理やり数学の方程式に持ち込んだとして一蹴されたようである。そして20世紀、競争市場が激化すると二人の数学モデルが再評価されることに...
潤沢な市場では、生産量を増やすのは簡単なので、価格は限界費用まで下がりやすい。実際、ソフトウェアの限界費用はほぼゼロ。それでも、Windows や office を高額で売り続けられるのはどういうわけか?ユーザが多ければ、他の人も使わされることになる。実際、依頼元から excel + VBA の形式でデータが提供されれば、下請けは泣く泣く office を買う。
しかしながら、マイクロソフトが独占してきた市場が、ネット社会によって無料経済を解放してきたのも確かだ。グーグルの万能振りが巨大化すると、独占に至るまでに他の競争相手を創出する。SNSの世界でも、Twitter や Facebook が、そのまま独占しそうな勢いだったが、後続を許している。収穫逓減の法則は、伝統的に生産者側の原理を語っているが、デジタル市場では消費者側の重みが大きい。価格競争で勝てば市場が支配できるかといえば、そうでもない。これは民主主義にとって良い傾向であろう。オンライン市場では、独占の原理よりも多様化の原理の方を求めているように映る...

6. 贈与経済と注目経済
贈与経済ってやつは、非常に分かりにくい。ブログは無料で、通常は広告もなく、誰かが訪問する度に何らかの価値が交換されている。PageRank などの発想は、恐ろしく単純で、恐ろしく機能しやがる。まるで一種の通貨のごとく。リンクを張るだけでページの評判や信用を広め、おかげで仕事を受けることもできれば、評判がお金に変わることもある。
オンラインは、コストが安いという利点以上に流動性の効果が大きい。YouTubeは、千人に一人が動画をアップロードすれば成り立つ。一方で、スパムメールは百万通に一人が反応すれば成り立つ。ちなみに、雑誌業界では、定期購読を勧めるダイレクトメールの返事が、2%以下なら失敗とされるらしい。
簡単に価値が創出できるということは、同時に犯罪リスクをともなう。不正コピーを巡って著作権訴訟をやりあうのは日常茶飯事。真の著作元そっちのけで、というより真の著作者が誰かも分からないにもかかわらず、大声で主張した者の勝ち。風評流布や流言蜚語の類いは冗長されやすく、犯罪の限界効用もゼロとなる。タダより高いものはない!という原理は、やはり働くようだ...
「お金を払わないために時間をかけることは、最低賃金以下で働いていることを意味する。」
また、単に注目されたいという動機でフリー経済に参入する人も多い。基本的な動機が自己存在の確認のための注目度にあるとすれば、フリー経済が民主主義を高度に発達させるかは別の問題か。注目経済について経済学者ゲオルク・フランクは、こう語ったという。
「私が他人に払う注目の価値が、私が他人から受ける注目の量によって決まるとすれば、そこには個々人の注目が社会的株価のように評価される会計システムが生まれる。社会的欲求が活発にやりとりされるのはこの流通市場だ。注目資本の株式取引こそ、虚栄の市(バニティ・フェア)を正しく体現したものにほかならない。」

"MAKERS" Chris Anderson 著

$
0
0
Do it yourself !... とは、起業家には不可欠な精神であろう。
財務処理から流通手配や営業交渉まで、それがたとえ苦手な仕事であっても、すべて自分でこなさなければならない。いくら頼りになる相談役や事務屋が側にいても、すべての責任は自分に降りかかる。そんな面倒なことを背負い込んでまで、独立を望むのはなぜか?それは、本当の自由を欲するからであろう。少なくとも、おいらの場合はそうだ。
しかしながら、自由ってやつも、なかなか手強い!自由の範囲を広げようとすればするほど、依存度を高め、ますます責任や義務が増していく。勢いに乗って事業を拡大すれば、維持するための資金が増大する。銀行やベンチャーキャピタルからの融資を受け入れれば、今度は間接的に支配される。もはや事業は誰のものやら。自由を求めて集まってきた従業員たちは、窮屈さを感じて逃げ出す。ベンチャーと称する企業で、創業時のメンバーが大勢残っているケースをあまり見かけない。こんなはずじゃなかった!と呟いている経営者も少なくあるまい。金儲けが目的ならば、あえてそれを望んでいるのかもしれんが...

DIY の根源的な動機は、日曜大工のような気軽さから発する。基本は、仕事が好きであること、仕事を楽しむこと。そうでなければ探究心は失われ、作る喜びがなければプロフェッショナル感を味わうこともできない。趣味をビジネスにできればなおいい...
しかしながら、20世紀型ビジネスモデルでは、製造手段そのものは企業によって支配され、作り手のものではなかった。いつの時代も経済の根幹を支えているものは、やはり生産力。人間が生きるということは消費を意味し、いくら流通業やサービス業が成長したところで、生産物がなければ成り立たない。にもかかわらず、今日の社会は、価値を変動させてサヤ取りに執心する金融屋や、情報を煽って目立ちたがる報道屋によって支配されている。
本書は、国力を維持するものは本質的な生産力であるとし、デスクトップと工作機械が仮想空間上で結びついた時、企業が独占してきた製造手段が庶民化し、メイカーたちによる真の生産社会が形成されるとしている。これが、21世紀の新産業革命というわけか。産業革命とは、単なる技術革新ではなく、社会的な意識改革までも引き起こすことを言うのであろう。DIY から発するカスタム製造やデザイン思想が、はたまた製造技術のオープン化が、はたして真の民主主義をもたらすであろうか...
ちなみに、コリイ・ドクトロウのSF小説に「メイカーズ(Makers)」という作品があるそうな。そこにはこう描かれるという。
「ゼネラル・エレクトリック、ゼネラル・ミルズ、ゼネラルモーターズといった社名の企業はもう終わっている。富を全員で分け合う時代がやってきた。頭のいいクリエイティブな人たちが、それこそごまんと存在するちっぽけなビジネスチャンスを発見し、そこでうまく儲けることになる。」

すべてのデジタルデザインはソフトウェアが牽引してきた。それは、ひとえに柔軟性にあると言っていい。今日、オープンソースを利用した開発手法が当たり前のように用いられるが、オープン思想は、なにもソフトウェアにだけ特権を与えるものではあるまい。
著者クリス・アンダーソンは、ロングテールの概念や、ビット世界における無料経済モデル(Freemium)を世に知らしめ、名を馳せた。彼自身、オープンハードウェア企業と称す3Dロボティックスを立ち上げ、本書に紹介される3Dプリンタやラピッドプロトタイピング技術などの話題も見逃せない。そして、オープンプラットフォーム上に作られたメイカー企業は、最初からキャッシュフローを生み出すとしている。これは、モノ作りの側から語った経済論!おまけに、技術屋魂をくすぐりやがる。サラリーマン技術者ではなく、アマチュア発明家になれ!と言わんばかりに...
「起業家を目指すメイカーたちにはみな、ヒーローがいる。情熱と工具だけを元手に、やりはじめたら決して諦めなかった人たちだ。彼らは本物のビジネスを築くまで、作りづづけ、建てつづけ、リスクを取りつづけた。自宅の作業台から始まって市場を見つけるまでの道のりや、人の手によるもの作りの物語は、いまとなんら変わることがない。」

1. ビット世界 vs. アトム世界
ビット対アトムの概念は、MITメディアラボの創設者ニコラス・ネグロポンテの提唱から始まる。言い換えれば、ソフトウェア対ハードウェア、情報技術対それ以外、仮想空間対実体空間といった構図だが、そう単純ではない。モノ作りが、企業の隷属から解放されれば、あらゆる概念を変えるであろう。有用な技術に検索や口コミを通して噂を嗅ぎつけた人々が集まってくれば、セールスマンを必要とせず、営業の概念を変える。個人融資で成り立つサイトも多く、スポンサーの概念を変える。新たな三次元製造技術が、ラピッドプロトタイピングを促進し、工場の概念を変える。モノの生産がアイデアの生産へとシフトしていき、生産力の概念は大量生産から創造力や想像力へとより重みを増す。人件費の効率から製造拠点を置くという考えも、製品を提供するための流通効率という考えに移行するだろう。わざわざ通勤する必要もなくなり、職場の概念も変わる。雇用の概念も変わるだろう。企業の従業員名簿に名を連ねることもなく、仕事を受けることができる。失業の概念も変わるだろう。収入がなくても、意欲的な仕事を見つけることは可能である。仕事の動機を生き甲斐に求めるならば、収入目的は優先順位を徐々に下げ、もっと多様化するだろう。そして、発明家の概念は、起業家と結びついていく。自由とは、すべてをなるべく自分でやるってことかもしれん...
「面白いのは、そうした高度の細分化が、かならずしも利益を最大化するための戦略ではないことだ。むしろ、意義の最適化、といった方がいいかもしれない。アダム・デビッドソンはニューヨークタイムズマガジンで、これを中流階級以上の基本的欲求が必要以上に満たされた、豊かな国家がたどる自然の進化だと書いている。」

2. 21世紀型の産業革命
18世紀頃、産業革命に登場した発明家や起業家たちの多くは、裕福な特権階級出身者であった。蒸気機関で名を残したジェームズ・ワットしかり、これをビジネスにしたマシュー・ボールトンしかり。産業革命と言えば希望に満ちた言葉に聞こえるが、発明や起業で必要な遊び心はエリートや富裕層の特権であった。だが、悲観的なマルサスの人口論を凌駕するほどの莫大な富を庶民にもたらすと、人口増加を爆発させ、経済活動を民主化させる。特権階級が牽引役となって富を分散させたのだ。産業革命とは、単なる工業化の恩恵ではない。
「本質的には、産業革命とは、寿命や生活水準、居住地域と人口分布などの、あらゆることに変化を及ぼし、人々の生産性を激的に拡大する一連のテクノロジーを指すのものだ。」
そして今、知識を自由に共有できる時代がやってきた。有名大学の講義はWebで公開され、オープンソース事業には自由に参加でき、意欲さえあればどんどん知識が吸収できる。従来の博士号といった肩書に縋る連中ほど、実践的な知識をあまり持ち合わせないようだ。
インターネット技術は、ビット世界のイノベーションを牽引してきた。だが、無重力経済(weightless economy)、すなわち、情報、サービス、知的財産といった無形ビジネスが話題となりやすい。この流れを21世紀型の産業革命に育てるには、アトム世界にまで広げる必要があろう。
本書は、この新たなパラダイムシフトを「メイカームーヴメント」と呼んでいる。草の根から始まるモノ作りの民主化とでもしておこうか。実際、コンピュータ工学の知識がなくても、ちょいとかじれば誰でもプログラミングできる時代となった。とはいえ、プログラミング技術が庶民化すれば品質の劣る作品が大量生産され、必ずしも良いとは言えないけど。
また、モノ作りの目的からコミュニティは自然に生まれる。格調高い意識の集まりが自然な秩序を生み出し、フラットな人間関係を形成する。誰でも共有できるということは、もちろん悪用のリスクもある。だが、意識のコミュニティを破壊する人がいれば、すぐに退場させられるだろうし、破壊屋が多数派となれば、真のメイカーは去っていくだろう。罵り合いのコミュニティに生産性はなく、志ある者が留まることはあるまい。実際、コミュニティも二極化する傾向にあるようだ。共通意識と哲学的意識がしっかり根付けば、人間ってやつは、意外とうまく民主主義を機能させるのかもしれん。
ただし、オープンモデルは万能ではないことに留意したい。自動車のように人の命にかかわる製品では、製造責任の所在を明確にしておく必要がある。大企業の存在意義とは、まさにここにあろう。従来型の製造モデルを、単に古いから悪いと決めつけない方がいい。

3. モノのロングテールと人材のロングテール
大企業の存続には大量生産が欠かせないが、ニッチ市場に目を向ければ、気楽に構えることができる。ニッチ商品は、たいてい大企業のニーズからではなく、庶民ののニーズから生まれる。大量生産から生まれた商品に飽きると、自分だけのものが欲しくなったりするものだ。まさに日曜大工の感覚でビジネスをやるわけで、そこには遊び心やアイデアが溢れている。ちっぽけな要求を集約して、チリも積もれば... ってやるのが商品におけるロングテールの原理だが、メイカー精神の観点からすると、むしろ人材のロングテールの方が本質かもしれない。
それにしても、あらゆるテクノロジーでコモディティ化が進むのはなぜか?情報が溢れ、生活様式が多様化しているというのに。他社サービスからの移行を促すために、乗り換えリスクを回避するためか?いや、選択肢を奪うことで諦めさせ、最大収益を狙うってか?まさに経済人の価値観だ。依存症を高めることで商売が成り立つとすれば、まるでコモディティ宗教!使いやすい、分かりやすいだけの製品では、深い味わいを求める少数派を満足させることはできまい。ユーザを飼い馴らすには、絶好の戦略ではあるけど。
一方、情熱家の作る作品には、手作り感があって、要求の高い専門性を具えている事が多い。効率的な大量生産品の方が莫大な利益をもたらすが、民主主義の成熟した姿は多様性の方にあるような気がする。ダーウィンの自然淘汰説は、なにも弱肉強食を正当化したわけではあるまい。地上に豊富な生命を溢れさせ、それらが共存するためには、生命体が多様性に富んでいる必要がある、というのが真の意図だと思う。
電子機器の発達は、半導体技術の成長とともに、ムーアの法則に従って指数関数的に加速してきた。半導体は原子制御の世界であり、まだまだ発達の余地がある。量子力学と結びつけば、無限の発展も夢ではなさそうだ。しかし、すべての産業がムーアの法則に従っているわけではない。農業や食糧生産など人間が直接生きることにつながる領域ほど、この法則は成り立たない。寿命が延びたといっても、せいぜい100年ちょい。なによりも人間精神が、進化しているのか?退化しているのか?テクノロジーの進化には、置いてけぼりの精神で相殺し、進化のエネルギー保存則は健在のようだ...

4. デスクトップ工房の「四種の神器」
本書は、テクノロジーの変革ツールを四つ紹介してくれる。3Dプリンタ、CNC装置、レーザーカッター、3Dスキャナがそれだ。
3Dプリンタには、溶融プラスチックを積み上げてオブジェクトを作る方式もあれば、液体または粉末の樹脂にレーザーを照射して固めて、原料容器の中からオブジェクトを浮かび上がらせる方式もあるという。ガラス、鉄、ブロンズ、金、チタン、ケーキ飾りの糖衣など、様々な素材が使えるとか。足場の上に幹細胞を吹き出すことで、生きた細胞から人の組織を作ることにも成功していると聞く。
CNC装置は、3Dプリンタが足し算方式で層を積み上げていくのに対し、引き算方式でドリルを使って削り出すという。この方式で、最小限の材料で最大限の強度がその場で計算されるとか。思い描いたものが、そのまま実物として目の前に現れるとは、なんとも恐ろしい世界だ!こうした技術にバイオテクノロジーが結びつくと、原子を自己組織化して食べ物や飲み物に変えることもできそうか。DNAの複製も?原子構造を維持しながら、複製することも理屈では可能であろう。三次元の仮想空間に臭いや味などの五感までも取り込まれ、もともと仮想空間の得意とする第六感や霊感が結びつくと、人類は五感以上の知覚を獲得するのだろうか?いや、相殺されて五感を麻痺させるだけのことかもしれん。人体をスキャンすれば、人間だって製造できそうか。クローンとは違う視点だが、はたしてそれは人間なのだろうか?
ビット世界をアトム世界に変換きるということは、その逆変換も可能になるかもしれない。リアリティキャプチャってやつだ。社会現象までもキャプチャできれば、政治的に利用される可能性だってある。市場はもともとコンピューティングで動いており、過去の経済現象をキャプチャして再現することも難しくない。ということは、金融工学はリアリティキャプチャの最先端を行っているのか?なるほど、価値を仮想的に煽りながら金融危機を再現してやがる。

5. オープンオーガニゼーション
1937年、経済学者ロナルド・コースは、こう言ったという。
「企業は、時間や手間や面倒や間違いなどの取引コストを最小にするために存在する。」
一見もっともらく聞こえる。同じ目的を持ち、役割分担や意思疎通の手段さえ確立できれば仕事がやりやすい、という発想だ。そして、隣の机にいるヤツに仕事を頼むことを、効率性とみなす。対して、サン・マイクロシステムズの共同創業者ビル・ジョイは、こう言ったという。
「いちばん優秀な奴らはたいていよそにいる。」
取引コストの最小化を優先すると、最も優秀な人材とは一緒に仕事ができないというのか?だから、会社が雇った人間としか仕事ができないってか。これを「ビル・ジョイの法則」と呼ぶそうな。なるほど、優秀なエンジニアは外部の人材とのつながりが広い。オープンコミュニティは、企業と違って法的責任とリスクがなく、自由と平等が保たれやすい。彼らには、役職や肩書なんてどうでもいいのだろう。そういえば、巷で仕事は何をしていますか?と尋ねると、会社名を答える人がいると聞く。会社の看板に縋って仕事をする人には、あまり近づきたくない。
もちろんコミュニティだって万能ではないし、ボランティア精神だけで経済が成り立つはずもない。ただ、人材を探すのに組織内にこだわる必要はないし、組織に忠誠を誓い一箇所に集まって仕事をやる必要もないってことだ。
オープンソース化で、無料の研究開発システムを手に入れることだって可能である。製造工程でコストのかかる一つにテストがある。実際、セキュリティソフトや検索ソフトなどのエンジン部分を無料公開することで、ユーザが無意識にテストに参加させられる。高度でテストの難しいソフトほど、マニアが使いこなす傾向があり、苛酷なストレステストにかけられる。大儲けしている企業ですら、製品の品質はボランティアたちの情熱によって支えられているのが現状だ。各自の経験から互いにサポートし合い、ユーザコミュニティを形成し、開発者もユーザとして参加する。効率的な使い方や、不具合を回避する助言は、提供されるマニュアルよりも役立ち、企業の思惑が入り込まない純粋な情報が得られる。有効なサイトには自然に翻訳者が募り、多国語でサポートされる。これこそ民主主義の姿であろう...

6. メイカービジネスの資金調達
高い志を持った愛好家が集まるだけではビジネスは成り立たない。どんな事業にもスタートアップの壁が立ちはだかり、その最初の問題は資金調達であろう。
本書は、裏ベンチャーキャピタルってやつを紹介してくれる。設立時に資金を必要とするのは、商品開発、設備、部品購入、製造などの費用のためで、通常は商品を販売しないと回収できない。そこで、キックスターという企業は、起業家が抱える三つの問題を解決してくれるという。
  • 一つは、売上を予約時に受け取れれば、必要な時に資金を調達できること。
  • 二つは、顧客をファンのコミュニティに変えてくれること。プロジェクトに資金を出すことは、ただの商品予約以上の意味があるという。デザインの生まれる過程で、ファンからアドバイスやコメントがもらえるのは大きい。口コミで評判が広まれば宣伝効果も得られる。ある種のマーケティング戦略というわけだ。
  • 三つは、市場調査を提供すること。初期段階から資金注入の効果が分析できるのは大きい。新会社にとって、これが最も重要かもしれない。
このような資金調達モデルは、寄付金や投資の概念までも変え、「クラウドファンディング」と呼ばれる。実際、気に入ったプロジェクトを見つけて投資したいと考えている人は少なくない。いずれコミュニティ銀行なんてものが登場するかもしれない。杓子定規な株式市場に投資するよりも魅力がありそうだ。ただ、どんな投資システムでも、儲けが保障されると勘違いする人も珍しくなく、巷では見返りがないとすぐに訴えるケースも見かける。
また、エッツィーという最大のメイカー市場を紹介してくれる。手作り品が取引され、高給な芸術品からかぎ針編みなどの小物まで出品されるとか。キックスターと違って、資金調達やモノ作りを助けたりはしないが、ここをきっかけに起業する人も多いという。
従来の企業組織的なものの見方に固執すれば、自然のコミュニティを見失う。モノ作りの背後にある人々の存在を忘れがちとなれば、売上至上主義となり、倫理に反し、持続可能な事業とはならないだろう。創業時の哲学を忘れ、なんのために会社を起こしたのかも分からなくなるケースは、けして珍しいことではない...

"人月の神話" Frederick P. Brooks, Jr. 著

$
0
0
コンピューティングの世界は日進月歩。チューリングマシンが考案されて一世紀に満たず、いまだ過渡期にあるのだろう。ここに、出版後20年経っても色褪せない書がある。プロジェクトの事情はあまり変わっていないようだ...
「人月」という用語は、開発、設計、製造などあらゆる生産工程において用いられる。それは、人と月の積で表される工数の単位で、二つの項が互いに交換できるという意味がある。人と月が交換可能となるのは、作業者たちの間でコミュニケーションを図らなくても仕事が分担できる場合や、機械的な作業に徹することができる場合。エンジニアのスキルには個人差があり、時には十倍もの能力差を見せる。
にもかかわらず、人月の幻想に憑かれたお偉いさんは、労力と進捗を混同した見積もり計算を続ける。マイルストーンを美しく見せることが管理者の仕事と言わんばかりに... 表面的な技術を寄せ集め、結合すればいいという安直な考えに走れば、却って現場を混乱させ、お粗末な結果を招くことは何度も経験してきたはずなのに... ゴールとスケジュールが予算に適ったものなど見たことがない。そして、ブルックスの法則がこれだ。
「遅れているソフトウェアプロジェクトへの要員追加は、さらにプロジェクトを遅らせるだけだ!」
尚、著者フレデリック・ブルックスは、1999年チューリング賞を受賞し、IBM System/360 の父としても知られる。再読に際して、20周年記念増訂版を手にする...

「銀の弾などない!」という主張は、なかなか挑発的である。ムーアの法則に従って、メモリ容量やCPU性能など、ハードウェアリソースが飛躍的に進化する中、ソフトウェアの生産性において格段の向上をもたらすプログラミング技法は、ここ10年登場しない!と断言しているのだ。
確かに、構造化技法やオブジェクト指向といったパラダイム変化を見せつつも、これが最高というものがなかなか見当たらない。複合的に技法を導入し、しかもプログラマのセンスに委ねられているのが現実である。その状況は、多様化するプログラミング言語に見てとれる。関数型プログラミング、オブジェクト指向プログラミング、ジェネリックプログラミング...  あるいは、マルチパラダイムプログラミングなどなど。言語に愛着を持った連中が、それぞれにこれが一番だと主張する様は宗教論争にも映る。
本書は、そうした技法を度外視して、プロジェクトチームの在り方や管理手法の側から問うている。その前提に本質性と偶有性とを混同しないこととし、概念構造体やソフトウェア実体の側面から議論を展開する。
「すべてのソフトウェア構築には、本質的作業として抽象的なソフトウェア実体を構成する複雑な概念構造体を作り上げること、および、偶有的作業としてそうした抽象的実存をプログラミング言語で表現し、それをメモリスペースとスピードの制約内で機械言語に写像することが含まれている。」
本質性と偶有性とは、アリストテレスを彷彿させる概念だ。ここでの偶有性には、偶然発生するという意味ではなく、副次的や付随という意味が込められているようだが、本質に対するその場しのぎ!という意味も感じられる。そして、最も重要な事柄は、「コンセプトの完全性」「アーキテクトの資質」であるとしている。ハードウェアリソースの奴隷となる前に、ソフトウェアとして見失ってはならないものがあろう。これはソフトウェア論ではない。ある種の組織哲学論である。

手段に目を奪われがちなのは、なにもソフトウェアに限ったことではない。おいらはプログラマではないが、ここに語られるチームの鉄則は他の業界にも十分適用できるだろう。ソフトウェアの構築には、強い変化を意識させられる。自分自身を変えよ!と要請してくるほどの。プロジェクトマネジメントは極めて社会学的で心理学的な分野であるからして、ソフトウェア手法の柔軟性の高さは、不変な精神活動において大いに参考になるはずだ。
「ソフトウェアエンジニアリングというタールの沼は、これから当分の間厄介なままだろう。人間が、手の届く範囲の、あるいはぎりぎりで届かないところにあるシステムを、ずっと試していくことは容易に想像がつく。おそらくソフトウェアシステムは、人間の作り出したもののうちで最も複雑なものだろう。この複雑な作品は私たちに多くのことを要求している。この分野を引き続き展開させていくこと、より大きな単位に組み立てることを学ぶこと、新しいツールを最大限使用すること、正当性が立証されたエンジニアリング管理方法に最大限順応すること、常識から自由になること、それに誤りを犯しがちな点と限界を気づかせてくれる神の与えた謙遜の心を。」

1. コンセプトの完全性
「コンセプトの完全性こそ、システムデザインにおいて最も重要な考慮点だと言いたい。一つの設計思想を反映していれば、統一性のない機能や改善点など省いたシステムの方が、優れていてもそれぞれ独立していて調和のとれていないアイデアがいっぱいのシステムよりましである。」
ソフトウェアの目的の一つは、システムを使いやすくすること。使いやすいとは、機能を使うためにマニュアルを読んだり、知識を覚えたり、調べたりする労力を省いてくれることである。そのために様々な言語に対応したり豊富な機能を備えるわけだが、複雑な処理をシステムに肩代わりさせるのに、一切のマニュアルなし!というわけにもいくまい。あるいは、使いやすいく簡単というだけでも、豊富な機能というだけでも、良いデザインとは言えまい。
「システムのアーキテクチャとは、ユーザーインターフェースについての完全かつ詳細な仕様書であると考える。それは、コンピュータにとってはプログラミングマニュアルであり、コンパイラにとっては言語マニュアルである。制御プログラムにとっては、機能を呼び出すのに使用される言語のマニュアルである。そして、システム全体にとっては、利用者が自分の仕事全部をこなすために調べなければならないマニュアルを集めたものになる。」
古くから、機能の豊富さこそが最高のものとされる傾向がある。ソフトウェアの軽快さを犠牲にしてまで、使いもしない、見向きもされない機能が装備されるとは、これいかに?セカンドシステム症候群とは、まさに多機能主義に陥って、最初の哲学を見失った姿だ。哲学のない技術は危険であろう。とはいえ、システム設計者にとって、システムの一貫性を保つことほど難しいことはない...

2. アーキテクトの資質
コンセプトの完全性とは、一つの原理を反映することであり、ある種の芸術性を具えている。鑑賞者や批判者の意見をすべて取り入れては、芸術の高邁さは失われる。芸術とは、啓発された利己主義者のものだ。そこで、一つのシステムは、一つの芸術作品として捉えたい。
「制約が芸術のためになると納得させるような美術や工芸品の例はたくさんある。芸術家の格言に曰く、"形式は自由な創造の源だ"。最悪の建築物は、用途に対してコストを掛け過ぎたものだ。バッハの創造的な作品には、定められた様式のカンタータを毎週作り出さなければならないという要請に押しつぶされたところなど微塵も見られない。」
芸術作品となると、少数のアーキテクトによってアイデアが創出されることになり、プロジェクトマネージャの権限は絶大となろう。プロジェクトチームは君主制になりがちだ。とはいえ、アーキテクトが創造的楽しみを独占し、実装者の創意工夫を締め出すのでは、単なる作業者の集団に成り下がる。インプリ屋に成り下がって、ただ仕様書に従うだけではチームの活力が失われ、ましてや予算とスケジュールに押し潰されれば、命令に対して感情的にもなる。やはりチームには民主制の余地を残したい。メンバーが自由に発言し、それを芸術の域にまとめ上げるのが、プロマネの仕事としておこうか。
実際、好転したプロジェクトには、あらゆる意思決定の権限を持つマネージャが、穏やかな独裁者として振る舞っているものである。メンバーに高位な意思を伝授し、相互に切磋琢磨し、技術に対して積極的な関心を持つ風潮を大切にしたい。とはいえ、メンバーに作る喜びを与え続けることほど、難しいものはないのだけど...

3. 生産性 vs. 品質... 本当に銀の弾はないのか?
銀の弾などない!とは、憂鬱なテーマでもある。間接的にゲーデルの不完全性定理を語っているような。ただ、これを悲観主義とするのはあんまりだ。楽観主義では何も解決できないし、最終的に勝利するのは現実主義であろう。まったく市場原理と似ている。ブルックスは、プログラマの楽観主義は職業病だと言っている。
「懐疑主義は楽観主義とは違う。輝かしい進展は見えないが、そう決めてかかることはソフトウェアの本質から離れている。実際のところ多くの頼もしい新機軸が着々と進められている。それらを開発、普及、利用するという厳しいが一環した努力こそ、飛躍的な改善をもたらすはずだ。王道はない。しかし、道はある。」
あれだけもてはやされたオブジェクト指向は、銀の弾になりえたであろうか?このパラダイム変革には、様々な見解がある。モジュール性と美しいインターフェースを励行することや、カプセル化を強調すること、あるいは、継承を強調すること。別の見方では、強い抽象データ型を強調し、特定のデータ型には特別な操作によってのみ扱うことが保証されるべき... などなど。様々な特徴を有するが故に、コードを書く人の必要と好みに応じて取り込まれる。ちなみに、ある組織では、継承禁止令!があると聞く。権限者が理解できないから、嫌いだから、禁止ってのもどうかと思うが...
コーディングルールをあまり厳密にすると、思考の柔軟性が失わる。それよりも、変わったコードを書く人には、コードレビューを開催してもらうことだ。手段ではなく、哲学の方を共有すべきであろう。
カプセル化は大好きな概念だが、見知らぬ人が設計したものをブラックボックスで流用するとなると、ちと抵抗がある。ソフトウェアの再利用は、生産性と品質の双方において重要な役割を果たすだけに、お偉いさんは工程が短縮できると信じこむ。そして、中身の検討を無視し、もはや何を設計しているのかも分からなくなる。
「右手がやっていることを左手が知らないせいで、スケジュールの惨憺たる状態だとか、機能がうまく合っていないとか、システムのバグといったことが一度に生じる。... チームは憶測でばらばらになっていく。」
ところで、ソフトウェア業界は、生産性と品質のどちらに目を向けるべきであろうか?現代の風潮は、品質よりも利便性が圧倒的に優勢にあろうか。実際、Webサービスには、些細な不具合が何年も放置されたまま。無料だから仕方がないと諦めているユーザも少なくあるまい。実用面で問題にならないと言えばそうなのだが...
しかしながら、品質を着実に確保していかなければ、そこから派生する設計までも爆弾を抱えることになる。品質はコストに影響を与えるために、お偉方は目を瞑りたいようだが、品質を重んじなけば、自己の進歩も見えてこない。多くのプロマネは、系統だった品質管理の欠如とスケジュールの破綻に相関関係があることを経験的に知っているだろう。
確かに、完全な品質を実現することは不可能だ!ただ、人類の進化論には、突然変異という離散的な現象がある。それは、継続されたな意志によって生じるエネルギーの蓄積からもたらされる。つまり、こだわりってやつよ。楽観主義から意志エネルギーの蓄積は望めまい。
ソフトウェアの歴史は、いまだ過渡期にあり、一概に銀の弾はない!とも言い切れまい。いや、人類の歴史そのものが、いまだ過渡期にあるのかもしれん。そういえば、ケイパーズ・ジョーンズ氏は日本講演で、ソフトウェア業界には大事なものが欠けていると語った。本書にも、彼の言葉が紹介される。
「品質にこそ焦点を絞るべきなのであり、生産性は後からついてくる。」

4. ドキュメントの試行錯誤
自然言語は、定義のための厳密性を欠く。そこで、現実的な手段として形式的定義といった表記を用いる。プログラミングとは、まさに形式的な記述の積み重ねだ。厳密な記述は、分かりやすい記述とは性質が異なる。それ故に、マニュアルが曖昧になることもしばしば。法律の条文が極めて形式的なのは、厳密性を求めるからである。求めたからといって、得られるとは限らんが...

「簡潔に言うっていうのはすごくいい。自分が今どこにいるか知っていようが知っていまいが。」...サミュエル・バトラー

かつて、コードを説明する手段としてフローチャートが過大評価された。今では、フローチャートという言葉すらあまり聞かない。UMLのアクティビティ図のような派生的な技法は見かけるものの。コードを読む手がかりとしては、むしろテーブルやデータ構造、あるいはモジュール定義や構造記述の方が重宝される。
プログラミング言語が進化すれば、ドキュメントの書き方や用い方も変化するだろう。形式化と柔軟性の按配は、いつの時代でも、どんな分野にも、つきまとう問題である。いつも言っていることだが、我がチームではドキュメントの書き方を規定しない。分かりやすく、好きなように、思ったように書くようにと... 参考にするのはいいが、少しは独自性を見せようと... 芸術性とは主観性に支配されるもの、存分に精神を解放しようではないかと...
「表現はプログラミングの本質である。」
Viewing all 650 articles
Browse latest View live