収められている「短いコードを擁護する」という文章やライブ・コーディングに触れていることなどから手に取ってみたのですが。

http://filmart.co.jp/books/nextcreator/media_art/

 読者が前提知識を共有していること前提の注釈の一切ないすごく不親切な作りの本で、門外漢の私には最初はわからないことばかり。幸い続けて読んだ『マテリアル・セオリーズ』に重なる話題が多く再読していくらか見通しが開けましたが、それでもすっきりと腑に落ちたわけではありません。二百ページ強というボリュームの制約もあったかとは思いますが、注釈を充実させてもっと開かれた本にしてほしかったところです。哲学からフリー・インプロビゼーション、クリエイティブ・コーディングまで思索の対象は広範な領域にわたりそれぞれについて興味深い論点を示唆しているのですから、アプローチの手がかりはいくらあっても多すぎることはないと思うのですが。

「実利主義のコーディング」(p.175)にひたすら従事する職業プログラマとしては、実用面以外の箇所に多様な価値を見出そうとする「短いコードを擁護する」の後半は頭を柔軟にする役にたちました。バルトの「コードなきメッセージである」の読み替えはちょっといただけませんけど。なおこの引用の出典として『映像の修辞学』が挙げられていますが、同書は日本オリジナル編集の書籍のタイトルなので論文のタイトル「写真のメッセージ」を挙げたほうがよかったのでは? まあ一事が万事この調子、ということで。

(文中敬称略)

公開: / 最終更新日:

 ――あってもいいんじゃないかと思ったりするわけですが、さてそのようになっているかどうか。

 そんなわけでM01Dの新曲、"Still sealed"を公開しました。

 思いついたベースのフレーズを元に発展させていったいつものパターンで、前作が拍子で展開を作っていったので今回は原則動かない方向にしようと進めていったらなんだか長くなりました。何気に普段使わない音色を使おうシリーズだったりもします。Universeなんて今後使うことあるかなあ。

 いつもならM01D作品には録音後薄くリバーブをかけるのですが、今回はiZotope Ozone 8 Elementsで調整しただけにとどめました。全体にビンテージリバーブがかかるなかベースだけドライなのが対比としておもしろいのではないかと思ったのですが、さていかがでしょうか。

 動画のほうは、Processingで前回同様の(パーリン)ノイズまみれに今回は回転まみれも加えました。結果的に思いがけない形状が形成されたのはよかったのですが、動きがそんなにおもしろくならなかったのは反省点。次に解決したい課題は明確になった気がします。

 次も考えなしにやるとインストになりそうですが、歌ものもすこしは作っておきますかねえ。

(これまでの作品は「はりぼてミュージアム」からどうぞ)

公開: / 最終更新日:

 ソフトウェア技術書温故知新、第二回は2001年に邦訳が刊行されたアンドレイ アレキサンドレスク『Modern C++ Design』(ピアソンエデュケーション)。

https://www.amazon.co.jp/Modern-C-Design%E2%80%95%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%8A%E3%82%88%E3%81%B3%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%BB%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E7%A9%B6%E6%A5%B5%E3%81%AE%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E6%B4%BB%E7%94%A8%E8%A1%93-%E2%80%90Depth/dp/4894714353

 かつてオブジェクト指向プログラミング言語としてC++が圧倒的な存在感を放っていた時期、多くの人に重宝された書籍が人類には早すぎたC++をなんとか安全に取りあつかうための手引書であることは論を俟ちません。もっとも代表的なのは『Effective C++』(リンク先は最新の第3版)でしょうが、他にも『Exceptional C++』『現実的なC++プログラミング』などいろいろありました。余談ですがCRCカードを用いた設計技法をはじめて知ったのはこの本で、どういうわけかカードを大量に入手する機会があったので実務で実践してみたこともあります。のちにCマガジンがさも日本ではじめて紹介するみたいな顔で特集を組んで、(あらためて)あきれたりしたものでした。

 閑話休題。一方で、数は少ないもののC++の可能性の追求と普及を図る書籍も少数ながら刊行されてきました。その中でも邦訳当時突出していたのがこの本。テンプレート機能を用いて処理を実行時ではなくコンパイル時に解決してしまう技法が基礎から応用まで山盛り詰まってます。着想自体は著者のオリジナルではないようですが、その方法を徹底的に突き詰めできることは可能なかぎり実行前に解決し同時にアサーションや型安全検証まで実現していく手際は初読当時唖然とするばかりでした。あっけにとられるとはまさにこのこと。

 もっともこれを役に立てることはできるのか、と疑問に思ったこともまた事実。STLさえまだ充分に普及していない、仕様が直感的でないテンプレートをあえて利用する必要のない状況で、しかもコンパイラのテンプレート関連処理はまだまだバギー(だったのですよ、2001年当時は)、とくればあえて挑戦するだけのインセンティブはありませんでした。チーム開発であればなおさらです。

  幸い(?)私は実践する機会に恵まれました。Windows用のライブラリをPDAのPalmで動作させる技術検証を一人で行うことになったのです。当時のPamの開発言語はかろうじてC++ベースではあったものの(統合開発環境はCodeWarriorでした)実行時型情報(RTTI)は未サポートで仮想関数は使えません(いまから考えると信じられないかもしれませんが、当時はめずらしくありませんでした。組み込み用にEmbedded C++という規格が別途策定されたくらいです)。Windowsではさすがにそんなことはなかったので仮想関数は普通に使われており、そのままでは実行どころかコンパイルさえ成功しません。
 当初は途方にくれましたが、仮想関数呼びだしを本書で紹介されているポリシークラスの考えを元に組み替えることで多態を実現、Windows版と同等の機能の実現に無事成功したのでした。この技術検証の結果は残念ながら日の目を見ることはありませんでしたが……

 その後C++を用いた開発からは遠ざかったので本書がどれくらい実践の現場に影響を与えたのかはわかりません。しかしその威力はBoost C++やANSI C++の規格改定などで遺憾なく発揮されているものと思われます。実用的に利用できる言語の選択肢が増えた現在、個人的には積極的にC++を選択しようとは思いませんが、過去の資産なども考えあわせるとC++は今後も長く使われ続けることでしょう。もしかしたらいつまでも人類には早すぎた言語としてかもしれませんが。

 なお著者のアンドレイ アレキサンドレスク氏はその後D言語 2.0の開発に参画、解説書も執筆しています(『プログラミング言語D』)。邦訳でその名をたしかめたときは使う見込みもないのについ購入、他のプログラミング言語の批判的検討におおいに役立ちました……D言語は一生使うことはないと思いますけど。いまならRust使いたいなあ、契約による設計も使えるし(D言語と違って標準仕様ではなくライブラリでの実現ですが)。

公開: / 最終更新日:

 今年読んだ本のうち『社会にとって趣味とは何か』と『メディア・アート原論』に名前が出てきたし、昨年は『ele-king vol.22』掲載のインタビューも読んだし、でも単著は読んだことないや、というわけで毛利嘉孝の現在のところ最新の単著に目を通してみました。

https://www.nhk-book.co.jp/detail/000000911392009.html

 著者の経験や関わったシーンをベースに語られる1980年代から2000年代の光景は興味深く、ひとつの貴重な記録となっていますが、東日本大震災・民主党政権発足前の出版(奥付の発行年月日は2009年7月30日)のため決定的に古くなっている面があるのは否めません。この本の描いた「ストリートの思想」がそれらの望む方向に世の中を変えたかと言えば多くは否定せざるを得ないでしょう。ウィキペディアを「ボトムアップ型の知識の構築」(p.213)とし、「事実関係を読み手が確認すればいい」「基本的に、盲目的に情報を信じることをネット社会は許さない」(p.214)と著者が記した十年後、事実確認などせずに情報を盲目的に信じる輩がSNSを跳梁跋扈する一事をもってしてもそのことは明らかです。

 なぜ「ストリートの思想」は世の中にそれほどの影響を与えなかったのか、このようなおおきな問いには容易には答えられませんが、時代状況や社会環境だけでなく思想の性格の問題もあるのではないか、とは言っていいように思います。メインストリームを置き換えうるものもメインストリームがあってこそ存在しうるものもどちらも「オルタナティブ」と評しうることを考えれば、それぞれの活動がどちらにあたるのかはよく考えられてよいでしょうし、その上でなぜ前者がメインストリームに影響を与えきれなかったのかという問いを立てて検討する必要があるのではないかと思います。

(もうひとつ、個人が生存のために必要とする思想・アクティビティと世の中をよくするためのそれはかならずしも一致しないということもあるでしょう。「儀礼を通じた抵抗」の可能性と限界は折に触れて意識されるべきです)

 それはもしかしたらボトムアップ型の活動の限界ゆえかもしれません。著者は「ボトムアップ型の知識の構築」と「トップダウン型の知識の流通」である啓蒙とを対極的なものとしていますが、両者は対立するものではないのですから、互いを補完的に利用してよりよくしていく方向も当然あるはずです。過去の反省を踏まえての論考であることはわかりますが、選挙に代表される間接民主主義とデモに代表される直接民主主義とを横断するハイブリッドな活動のありかたを求める道は閉ざすべきではない、と個人的には考えます。

 この点との関連で言えば、「楽しい」の内実を反省的にとらえなおす姿勢はくどいくらいに表明しておくべきです。楽しい / 楽しくないという軸もまた人々を分かち、そして感情に根ざす軸は一般に分断の解消を困難にします。その分断が排除と重なれば、これは差別の固定化と同じです。上野俊哉との共著『実践カルチュラル・スタディーズ』で表明済みなので省略した、ととらえるのは好意的に過ぎるでしょう。「ストリートの思想」を普遍にたどり着かせるためにも、共にあろうとする努力はいくら尽くしても尽くしすぎることはない、そうあらためて言明しておきます。

その他に思ったことはこんな感じ。

  • この本で描かれる「ストリートの思想」はきわめて属人的であるように感じます。人に依存する活動はその人の不在によって失われます。無名の思想とその継承という課題もまた忘れないようにしたいところです。
  • 本全体のトーンになっている左翼の機能不全という現状認識は2000年出版の『カルチュラル・スタディーズ入門』(これも上野俊哉との共著)と共通し、現在でも同様の物言いは多くの方が行いますが、十年二十年と繰りかえされるということは単なるクリシェに堕して久しいのではないかと思わざるを得ません。左翼の問題として内ゲバが挙げられることがありますが、派手さを除けば右翼にだって内部抗争はあります。そのようなクリシェとはいいかげん縁を切ってよいのではないかと思います。
  • 東京の話ばかりでてきますが、東京以外に「ストリートの思想」は存在しないのでしょうか。そもそも東京以外に「ストリート」は存在しうるでしょうか。『実践カルチュラル・スタディーズ』では著者が九州大学在籍中の活動にも触れられただけに、この点はたいへん残念でした。
  • 湾岸戦争に反対する知識人の声明からNAMに至るまで、柄谷行人の行動を同情的に評しているのが個人的にはへーという感じでした。NAMの顛末を経てなおそう評するというのは、世代の差なのかとなんとなく言ってみたくなる感があります。

 なといろいろ書きましたが、著者自身がいまから振りかえってどう考えるかにはちょっと興味があったりもしますので、続編的な書籍が出版されないかなあとはちょっと思います。さまざまな欠点や短所を考えあわせても決して読むに値しない本ではない、と表明して駄文を締めることにします。

(文中敬称略)

公開: / 最終更新日:

 諸般の事情により業務の学習で購入した書籍を整理することになり、けっこうな量をチャリポン経由で処分しました。しかし中には内容がout of dateになっていても愛着があって手放せないものもあります。またそれらを見ていたら以前処分した本のことなどもいろいろ思いだしたりしました。そこでせっかくなのでいくつかを何回かに分けて紹介したいと思います。題してソフトウェア技術書温故知新、第一回はこちら、2001年に出版された久野靖『入門JavaScript(My UNIX Series)』(株式会社アスキー)。

https://www.amazon.co.jp/入門-JavaScript-My-UNIX-久野/dp/4756138713

 2001年と言えばNetscape 6の時代、Chrome登場のはるか前。JavaScriptはすでにブラウザで動作する標準言語としての地位を確立し、WindowsはActive Scriptingによって互換言語のJScriptがコマンドプロンプトのバッチよりも高度な(しかし記述が面倒な)スクリプティング(Windows Scripting Host)やWebサーバーのサーバーサイド処理(Active Server Pages, ASP)を可能としていました。とはいえマイクロソフトがVBScriptを対抗として打ちだしていたくらいなのでJavaScriptの言語ポテンシャルがいまよりもはるかに低く見積もられていたことはまちがいありません。
 そんな状況の中で出版されたのがこの本。日本語で書かれたJavaScriptの本で言語仕様を正面から取りあげ、解説は簡潔にして的確、200ページ強のコンパクトさでありながらオブジェクト指向プログラミングにまで言及するものは私の知るかぎりではこれがはじめてでした。クラスベースのオブジェクト指向言語のことしか知らなかった身としてはプロトタイプベースのそれは奇妙に思えましたが(*)、いま思えばこれは単に私のほうの知識が足りなかったため。その違和感を除けば、JavaScriptでもオブジェクト指向プログラミングができることに興奮したのを覚えています。

(* その後JavaScriptもクラスベースの構文が標準になっていくわけですが、プロトタイプベースの可能性を突き詰めていく手もあったんじゃないかとは思わないでもありません)

 ちょうどそのころ業務でWindows Server(IIS + SQL Server)でWebアプリケーションを作成する案件があったので、これ幸いとばかりにASP(ASP.NETではありません) + JScript(JavaScriptでもJScript.NETでもありません)でオブジェクト指向プログラミングを前面に押しだして構築したものです。なにしろ当時MSはWindows DNAなどと言ってビジネスロジックはCOMまたはSQL Serverのストアドプロシージャで記述せよなどとのたまっていたわけですが、誰がCOMでオブジェクト指向プログラミングを好き好んでやりたいものですか。渡りに船とはまさにこのこと。
 JScriptの非互換性のせいか継承まわりですこし苦労しましたが(これは私のほうで「継承よりもコンポジション」が身についてなかったせいもあります)、それ以外ではJavaScriptをオブジェクト指向言語として使うことの固有の困難はなかったと記憶しています(通常のシステム開発の苦労はもちろんありました)。いまとなっては知る由もありませんが、サーバーサイドでJavaScriptをオブジェクト指向言語として利用したケースとしては日本ではかなり早期の部類になるのではないかと思います(<-自画自賛)。その後ASP.NETが登場してサーバーサイドでJavaScriptを利用するメリットは当面なくなるわけですが。

 いまではJavaScriptによるオブジェクト指向プログラミングは誰でもあたりまえに行っていることでしょうし、初期JavaScript(ECMAScript)を対象にしているのであらためて読む価値はあるとは言えません。でももし手に取る機会があったとしたら、当時の状況におけるその先進性に思いを馳せてもらえればと思います。

 なお著者の久野靖氏のことはなぜか職場にあった雑誌『bit』のバックナンバーの記事で存じていました。研究室の学生が卒業研究でOSをCLUで作る話の第一回で、プロジェクト管理的な部分まで含んでいたため業務にも参考になりました(CLUって何? というレベルでしたが)。

公開: / 最終更新日: