宇宙スープ

Once upon a time, the Universe expanded from an extremely dense and hot soup

プログラミング言語はもう一度革命を起こす

20世紀という時代は奇跡的な世紀だった。人間の生活の根幹を変えうるいくつもの発見と発明にあふれた。

1953年ワトソン&クリックがDNA螺旋構造を発見した。これは現在にゲノム解析、ゲノム編集などの技術に引き継がれ、人類は恐るべき力を手にしようとしている。
1969年アポロ11号計画で人類が月面に着陸した。現在は火星移住が本格的に計画され始め、人類は惑星を越えてフロンティアを求めようとしている。

これらの偉業は当時最高潮に期待を集めた。しかし、21世紀現在の私たちが答え合わせ的視点で振り返ると、真に革命的だったのは1940年代ノイマン型コンピュータの始まりであり、1960年インターネットの始まりだろう。2016年現時点では、宇宙と生命科学の実績とは比べ物にならないほどIT革命は私たちの生活に浸透した。コンピュータおよびインターネットは勃興当初それほど注目されてはいなかったにもかかわらずだ。

コンピュータの起源

コンピュータの起源は計算機である。
世界大戦時は、計算屋という職業が存在した。物理シミュレーションのための膨大な計算をひたすらこなす部隊である。当時は兵器の弾道や威力などを物理計算して正確に見積もりできるかどうかが戦争の明暗を分ける死活問題であった。
第二次世界大戦を経て、ジョン・フォン・ノイマン”計算”への大きな需要があることを悟った。皮肉にもそれは”計算”が戦争をも制することを象徴する「マンハッタン計画」の成功を見てのことだったという。20世紀屈指と言われるノイマンの頭脳リソースが彼のキャリアを通してコンピュータ誕生に捧げられることになる瞬間だった。
その後もしばらくは現在のスーパーコンピュータのような使われ方が主だった。物理系シミュレーションのための数値計算機として。初期コンピュータの進化は、流体力学など”計算”がボトルネックとなっていた数々の科学分野の発展と共にある。

ところが今となってはコンピュータを計算機と認識できている人の方が少ないだろう。50年以上経った今、当時とは変わり果てた多様な使われ方をしている。

物理計算の枠を超え、IT技術の驚異的な進化を可能にしたものはなんだったのだろう?私たちが普段使っている”文字”の起源を知って、その理由が分かった気がする。
変貌を主導したのはプログラミング言語である。

文字の起源

現在も少数民族には文字を持たない文化は多い。
日本人からすると信じがたいが、これはシンプルに考えたほうがいい。
言葉でコミュニケーションをとる動物は人間以外にも数多く存在するが、文字を持つ動物はいない。原始人類も高度な文明で帝国をも築いたインカでさえもそうだった。
現代でも識字率が低い国があるが、そういった人々が一定数いるということは多少不便ではあるかもしれないが暮らしてはいけるということだ。
本来、話言葉は必要でも文字は生活に不要なのだ。

文字の出現は農耕が引き金だったと考えられる。
農耕の開始によって、多くの人が協力して1つの成果物を目指す。分業が始まり、人々は定住が可能になり、都市が生まれ、余剰食糧がもたらされる。その結果収穫された作物を分配するという仕組みが必要になる。徴税と再分配は統治機構の役割である。その先には必然的に国家が生まれる。農耕の出現はそれ以前とは根本的に人間の生活を変えたのだった。
そういった複雑化、階層化する社会に文字は大いに役にたった。

象形文字の問題点

はじめの文字は絵文字のような象形文字だった。この時代の文字の読み書きは専門家の職人芸だった。その専門家とはおそらくはじめは会計係だ。世界最古と言われるシュメール人楔形文字の痕跡は収支記録として残されている。

ひとたび国家が収支記録に文字を使う便利さを味わうと、外部記憶に情報を保存するニーズは急激に高まることが予想できる。おそらくこんなこともこんなことも記録したいと、官僚たちは文字の専門家に要請しただろう。
しかし文字ニーズが拡大すると大きな問題が浮上する。
象形文字とは、絵をシンプルに記号化したものである。「ネコ:cat:」、「太陽:sunny:」、「目:eye:」などは絵で描きやすいとしても、「色」、「明日」、「病」など絵で表現が困難な概念は無数に存在する。ましてRetinaディスプレイはおろか万年筆もない時代。粘土板をひっかく程度の粗さでも表現できるシンプルな記号でなければならない。ここで象形文字は行き詰まりを迎えた。

この打開策として文字専門家はいくつかの突破口を見出した。

象形文字組み合わせ法

1つは象形文字を組み合わせて新たな概念を作るパラダイムである。たとえば、「頭」と「パン」を表す象形文字を組み合わせて「食べる」という意味を表す。
この象形文字の組み合わせによって表現力を高める手法は一定の成功を修めたことが、部首というテクニックをふんだんに使った”漢字”の成功を見ると推測できる。とは言え、「頭+パン=食べる」のような脆弱なルールでは、「噛む」「なめる」「吐く」などと意味が混同してしまう。「アンパンマン」のような高度な概念は望むべくもない。

改めて考えると漢字という壮大な文字セットを構築した中国人はすごい。
「噛」「吐」「舐」「面包超人(アンパンマン)」
一貫性のあるデザインでこれら無数の概念を表現してしまっている。
けれども漢字編纂者のような天才的デザインセンスの持ち主がどの古代文明にもいたとは限らない。
しかも、意味の伝達という根本的目的に立ち戻ると、美しくデザインされた漢字と言えども最適な解だったと言えるだろうか?多くの日本人が怒り狂う厚切りジェイソンを見てはっとさせられたに違いない。

絵で表現が困難な概念を記号化する手法として別の解を考えだしたグループもあった。

同音異義語

もう1つの重要な潮流は同音異義語パラダイムである。

同音異義語法は記号化困難な概念を、それと同じ(または似た)発音を持つ記号化しやすい文字で表現するという方法である。「銃・病原菌・鉄(下)第12章」にいくつか例が示されるが、たとえば、「believe」=「bee」+「leaf」=「:bee:」+「:leaves:」と表す。
少し前に流行った「本田△」のような言葉遊びは同音異義語法の典型的な例である。

しかしこの方法は象形文字組み合わせにも増して暗号的である。
こういったいきあたりばったりの文字仕様の拡張によって、特定の時代の古代文字は非常に難解なものとなってしまった。おそらく現場の書記係、当人たちがその問題に気付き苦しんだだろう。

だが、同音異義語法の発見は大きな意味がある。”音”に着目したという点で、次に来る革命的な発明へとつながったからだ。

表音文字

幾度の試行錯誤を経て、ついに人類は表音文字という画期的な発明を成し遂げる。話し言葉に使われる”発音”を基本単位に分割し、それを記号化する方法を発明したのだ。
その代表例はもちろんアルファベットだ。

アルファベットのなにがすごかったか?

誰でも簡単に理解できたことだ。
読み書きができない人は多くても、母国語の話し言葉が分からない人は滅多にいない。
英語の場合は、アルファベット26字の記号と発音のセット、そして、sh,gh,th,chなどの二重音字、cake,bake,riceなどeで終わるサイレントe、hour,honest,ghostなどサイレントh...などの例外を覚えればほとんどの英単語を読めるようになる。

多くの人が簡単に理解できるようになったことで、それまで専門家の職人芸だった”読み書き”という特殊能力が一般人に授けられた。しかも話言葉と遜色ない精密なニュアンスを書記で伝達可能になった。
粘土板や紙などの媒体は依然高価だったと思われるが、それでも望む人はその能力を駆使できる、という点は重要である。
おそらくどんな技術も同じことが言えると思うが、技術が専門家の手を離れるとき、想像もしない使われ方がなされ、爆発的に多様化する。当初は会計記録の専門技術だった文字を使って、人は論考したり人を笑わせたり感動させたりしている。

今の私たちからすると表音文字とは簡単すぎるソリューションにも思えるが、一切の固定観念を持たない先史の人々は自分が喋っている言葉が発音の基本単位に分割できるとか、分割したものを記号化して記録できるとか夢にも思わなかったのだろう。しかしちゃんと答えは用意されていた。

ヒエログリフや漢字にも表音用途に使われる文字はある。表音というテクニックを知ったにもかかわらずそれを取り入れなかった(文字を持つ)文明はおそらく無い。

プログラミングの現在

文字の歴史は多くのメッセージを含んでいるように思う。

なぜIT革命が予想外の進展を見せたのかと言えば、ソフトウェアとハードウェアが切り離され、プログラミング言語によって記述されたプログラムをハードウェア上で実行するというアーキテクチャがあったからだ。これによってコンピュータの製造者だけでなく利用者がプログラミングによってソフトウェアを製造することができた。
表音文字の成功がそうであったように、IT革命の成功も一般人も開発に参加可能な仕組みにできたことが何よりも重要だ。インターネットによってその潮流は増幅された。

とは言え、現在はまだプログラミングは専門家の職人芸という側面が強い。プログラマになるのに資格は不要だが、暗号めいたコードを読解する能力は職人芸に近い。古代文字の難解さに(おそらく)苦しんだ書記係と同じように、現代のIT業界もプログラマはコードを読解するのに多くの時間を費やす。

安全で安定して高速に高機能なアプリケーションを利用したいというニーズが拡がっていることとも関係している。プログラミング手法も進化しているが、それに勝るスピードで要求が拡大している。ちょうど官僚からの記録の要請によって古代の文字仕様が一時の混乱を来たしたように、現代でもクライアント要求を満たすために難解極まりないITシステムが生まれてしまう。

プログラミング言語はまだまだ黎明期であり、発展途上だと思う。
実際、「Aという命令を記述するのにBという言語は向いていない、Cというアイデアを持った新しい言語が必要だ」という提案が世界中でいくつもなされている。
人類が表音文字を獲得したときのように、最適解に少しずつ近づいているのだろう。
オブジェクト指向というパラダイムが生まれ、プログラムを知覚可能なモノとして表現するようになったし、関数型というパラダイムが生まれ、プログラムは数学と融合しようとしている。

プログラミングが本当の意味で専門家の手を離れるときが来ることを想像すると、わくわくしないだろうか?それはおそらくヒトとコンピュータが共生、協調する未来となる。

jp.techcrunch.com

先日、世界でも最も普及したプログラミング言語の1つC言語の生みの親、デニス・リッチー氏が亡くなった。

ボブ・ディランの名を知っている人は多くても、デニス・リッチーを知る人は少ない。本物の変革は知らない間に私たちの生活を変えていく。文字を伝承し、発展させた人たちもはじめは会計係であった。当時の世間的にも全く注目に値しない職業だったに違いない。

 

 

 

 

 

サピエンス全史(上)文明の構造と人類の幸福

サピエンス全史(上)文明の構造と人類の幸福