哲学のすすめ

大槻, 2014.01.01

 学生の頃から、学問とは何かとか、真理とはとか、形而上学的な思考にはまる癖があり、心理学や哲学書を読みあさった時期がありました。心理学については、フロイトやユングのみならず、その後の近代実験心理学についても読みましたが、胡散臭さがぬぐいきれず、今一つ納得感が得られませんでした。哲学についても、プラトン、アリストテレスに始まりデリダ、ローティといったポストモダンなものまで一通り眺めましたが、こちらもぴんとくるものは見つかりませんでした。

 大学の時にコンパイラの研究をしていて、プログラミング言語そのものに興味を持ち、徐々に言語設計や仕様記述手法などに興味がでてきて、その等を基礎づける意味論や形式手法、言語哲学を深掘りしていきました。その折に、見出したのがヴィトゲンシュタイン(Ludwig Josef Johann Wittgenstein)の哲学です。1980年代初頭の数年間、ヴィトゲンシュタインの著作、解説書などを、30冊以上は読んだ記憶があります。特に、『論理哲学論考』と呼ばれる小冊子を見たときの感動は今でも忘れられません。言語の記述、命題論理の基礎付けを、これ以上ないというほど厳密に、かつ、余計なことをそぎ落とした記述で、英語版で70頁程度のものです。内容は、以下の7つの主要な文から成っています。

1.世界は、成り立っていることの総体である。
2.成り立っていること、すなわち事実、とは、事態の成立である。
3.事実の論理的像が思念である。
4.思念は有意味な命題である。
5.命題は要素命題の真理関数である。
6.真理関数の一般式は、[p,ξ,N(ξ)]である。これが命題の一般形式である。
7.人は、語り得ぬものについては、沈黙しなければならない。

pは要素命題の集合、ξは全命題集合、N(ξ)は全命題の否定連言

 当時としては、不毛な形而上学的議論に意味が無いことを示したとても過激なものです。最後の文の「語り得ないものに対して沈黙すること」は重要なメッセージですが、これと同時に、「語り得るものは明瞭に語らなくてはならない」ということも示しています。世界を言語によって切り取り、言語による記述の構造と、思念(像)の構造とが同型であることも言っています。

 ジャクソン(Michael Jackson)が提唱しているJSD(Jackson System Development)でも、「言語という眼鏡をかけて、実世界を見る」という表現がでてきますが、同じことを示していると思います。ソフトウェアエンジニアリングは、最終的にはコードに変換したり、対応させていくことが中心の、語り得る「記述」に関する技術なのです。

 ヴィトゲンシュタインは、『論理哲学論考』の考え方を、後に捨て去り、『哲学探究』[Wittgenstein2003]という一連の書き物の中で、「言語ゲーム」という概念に到達しています。言語を生活形式の中での多様な活動と見なし、ダイナミックに変化し、コミュニケーションによって共通化・共有化していく概念の合意形成のプロセスを捉えています。言語の意味は、日常的な「用法」によって定義されるのです。「ゲーム」という呼称は、いささか違和感を覚えるかもしれませんが、コミュニケーションをする際の社会的な規則(ルール)が語り得ない形で存在することを暗に示しています。

 私は、ヴィトゲンシュタインの『論理哲学論考』から『哲学探究』への移行が、学問、そして、世界観の大きなパラダイムシフトだと考えています。ヴィトゲンシュタインがこの後期哲学に至ったのは1930年台前半だと思いますが、多くの哲学者、研究者がこの考え方、あるいは、それに近い考え方に至っています。

 特に、掲げておきたいのがデザイン論の分野でのクリッペンドルフの提唱です。『意味論的転回』[Krippendorff2006]では、ヴィトゲンシュタインの言語ゲームを引用しつつ、人工物(アーティファクト)のデザインに、利用者の視点を位置づけ、それを制御することが重要だと説いています。当然、ソフトウェアも人工物の一つですから、クリッペンドルフの考え方を適用することができます。

 もう一つの流れが、パース(Charles Sanders Peirce)、ジェームス(William James)、デューイ(John Dewey)が提唱した米国プラグマティズムの流れです。プラグマティズムとヴィトゲンシュタインの哲学との関係を、言語や数学に関わる哲学の研究で著名なパトナム(Hilary Whitehall Putnam)が『プラグマティズム』[Putnam1995]で解説しています。ヴィトゲンシュタインの「言葉が用法によって定義される」ということは、プラグマティズムの格率(格言)として「対象の概念を明晰にとらえようとするなら、その対象の効果を考察せよ。すると、この効果についての概念は、その対象の概念と一致する。」という形にまとめられます。

 さらに、これを日本の産業界を元気付けるための基軸にしようという提唱が、『プラグマティズムの作法』[Fujii2012]で述べられています。専門化して縦割りになっている領域の壁を打破するために、それぞれの専門領域が外からどのように見えるか、どのように他人の役に立つかどうかを真摯に見直そうということを提唱しています。このことを端的にまとめると以下のようになります。壁に貼っておきたい教えです。

何事に取り組むにしても、その目的を見失わないようにする。
その目的が、お天道様に対して恥ずかしくないものかどうかを問い続ける。

 ソフトウェアの分野は、まだパラダイムシフトが十分とは言えませんが、少しずつ変わっていくでしょう。この流れを加速していくためには、「ソフトウェア哲学」を中心とした研究領域を立ち上げて探求していくのがよいと思っています。ソフトウェア哲学の中心課題は、以下のようなものになるでしょう。

ソフトウェアとは何か、世界観を問う
ソフトウェアに関する潮流をつかむ
ソフトウェアに関する研究・技術開発の接近の方法を確立する

 ソフトウェアに関する世界観は、ソフトウェアの利用面、実世界との関係に中心が移ってきているので、多様な世界の捉え方やその中でのソフトウェアの位置づけについて検討していかなくてはなりません。また、「実行」という概念も、計算理論で言う実行のみならず、人間の行動、遺伝子操作、粒子や量子の時間的推移なども視野に入れていく必要があります。

 ソフトウェアエンジニアリングに関する技術は、さまざまな言語処理系、モデル検証系、フレームワーク、開発・保守プロセス、プロジェクトマネジメント・ファシリテーション手法などが提唱されてきています。技術の成熟度や実践状況、今後の潮流の方向性などについて検討していく必要があります。また、分野を横断した学際あるいは業際的な活動が多くなってきています。おそらく今後、学会やコミュニティ間の交流はもっと多様化していくと予想しています。

 ソフトウェアに関する研究パラダイムは、従来は純粋な基礎理論、応用技術、実践適用といったリニアなスタイルが多く採られていましたが、大手企業の基礎研究所の閉鎖や、生産技術部の縮小などに見られるように、技術開発に関する社会的な役割分担も変化しています。さらに、理論と実践の並行化、ソフトウェアに関わる専門家の種類は、従来のアナリスト、プログラマ、テスタなどの分担から、もっと他の新しい職種が生まれていくのに従って、研究アプローチも変わっていくのではないかと考えています。