quartz-research-note/content/ソフトウェアは書き換えられる時にだけ存在する.md

62 lines
5.5 KiB
Markdown
Raw Normal View History

---
2024-02-08 11:06:45 +00:00
date: "2024-02-06T01:46:14+0900"
---
#research #writings #software
「ソフトウェア」とはなんだろうか。
デジタル・人文学の中でもソフトウェアを扱う時には、そもそも「ソフトウェア」とは何を指すのかがしばしば問題となる。
ソフトウェア研究に登場する話題についてアルファベット順で各著者が論考を寄せたフラー編「software studies /a lexicon」(2008)ではそのタイトルにもかかわらず「Software」の項はない。近しいのはドイツのメディア研究者フリードリヒ・キットラーによる「Codeor, How You Can Write Somthing Differently」という項、ジョアシア・クリサとグルジェジーク・セデックの「Source Code」という項である。
他に対して網羅的な調査をしている訳でもないのだが、ソフトウェアについて人文学的に研究することの重要性が繰り返し謳われる(例えばレフ・マノヴィッチ)わりに、「そもそもソフトウェアとは何か」という問いに正面切って切り込んでいる論考は意外なほど少ない。
---
そのわりに、前述したキットラーによる「[[ソフトウェアなど存在しない]]」では
> つまり、常に操作可能な抽象レベルという普通の意味におけるソフトウェアは存在しないのである。このようなマシンは、なるほどまだアルゴリズム的文字化も可能であるが、本質的には、物質的基盤にのっとって稼働せざるをえないわけで、接続すればセルは交互に再構成されることになる再構成されることになる
キットラーの「書き込みシステム」とは、要するにその時代時代に応じた社会を駆動するためのメディア装置であり、それが1800年代には文学であり、1900年代にはフィルム・グラモフォン・ライプライターであり、2000年代にはソフトウェアだったということである。
「ソフトウェアは存在しない」という文章は、コンピューター研究におけるハードウェアへの着目の薄さを覆すものとして読まれているが、これはその実「ソフトウェアの定義とは昔から考えてきた『書き込みシステム』そのものではないか」という、ソフトウェアの定義論への正面切った論考として読む方が良いのではないだろうか。
---
キットラーの「ソフトウェアなど存在しない」がハードウェアに焦点を当てるものとして読まれる一つの理由は、ソフトウェアとは何かについて正面切って書いたもう一つの有名な論考、ウェンディ・フイ・キョン・チュンの"[[On Software, or the Persistence of Visual Knowledge]]" (2005) にもあるように思う。この論考でのキットラーの引用はざっくり以下のように切り取られている。
> Friedrich Kittler has more forcefully argued, “there is no software” since everything reduces to voltage differences as signifiers.
ENIACのようなケーブルを繋ぎかえることもプログラミングだったから、コードを書くことがソフトウェアではない
---
今日エンジニアが日常的に使っている「ソフトウェア」とは何を差しているのだろう?今日においても、「ハードウェア以外のコンピューターに関わるあらゆる要素全て」でいいのか?
「プログラム」
「コード」「ソースコード」
「アセンブル」「コンパイル」
関数を一切書いてない、マクロ定義とかだけのファイルは「ソフトウェア」か?
ソフトウェア
キットラーやチュンが論考を書いた頃から、ソフトウェアのテキストとしての再利用可能性は全然別のレベルになっているのではないか
ソフトウェアのバベルの塔が高くなるにつれ、その実態を知覚することが不可能になっていくというのがキットラーの主張。なぜならコンピューターの処理速度は人間の知覚の限界をゆうに超えるから。
若干横道に逸れるけど、じゃあクロック1Hzごとにゆっくり動くリレーコンピューターがあったとして、それでテキストデータをコンパイルしたとして、その中身は知覚できるんだろうか
現代に置いてどんどん高度に抽象化した言語ができた結果、コードの再利用性は高まりプラットフォームを飛び越えることも大きくなってきた。
長い時間をかけた機能変化
クラスとかインターフェースとか、モジュールとか、その辺の機能って高効率化じゃなくて明らかに人間が整理しやすくするための機能
一回きりのコードとして書くならC言語でもなんとかなるけど、メンテナンスで書き換えなきゃいけない場所の局所性が変わる、機能の分離
=書き換えるタイミングになって初めて便利さが実感できる
**ソフトウェアとは時間をかけてゆっくり変化していくものである**という認識は割と最近だけど、エンジニアにとってはもはや当たり前の風潮で、でもいまいちソフトウェア人文研究者には伝わってない気がする
SubversionとかGitとかが普及して以降の世界観