場所指向プログラミング
Place Oriented Programming
オブジェクト、メモリ、DBのレコードなどを「場所」とみなして、これに対して更新をするようなスタイルのこと
黎明期のときは、節約のためにこうせざるを得なかったが、現代ではバッドパターンと見なせる
場所の中のデータは、ミュータブルだから
前に述べたように、オブジェクトはメソッドを持っている。オブジェクトがシステムを構築する際の中核的な要素となっている。
永続性の面でも同様である。テーブル、ドキュメント、レコード、どれも「場所」についての概念であり、更新することができる。指定された場所に行き、新しい値に置き換える操作をしている。
これらの概念がシステムを支えている要素となっており、場所の上に抽象化はしているが、隠そうとはしていない。
PLOP
このプログラミングモデルに対して、Place Oriented Programmingと命名した。
もしあなたが古い情報を新しい情報で置き換えていれば、それはPLOPである。
我々がPLOPをするのには、理由がある。
コンピュータの黎明期には、PLOPをせざるを得なかった。Guy Steeleが4KBメモリしか持たないコンピュータ上でシステムを構築したエピソードを語ってくれた。メモリの隅から隅まで番地が分かっており、2000番台はジャンプテーブル、この領域はデータ、この領域はコード、というようにメモリの内容全てを頭にいれる事ができた。ときには一つの番地を複数の目的に使いわけることもあった。充分な容量がなかったから、そうせざるを得なかったのだ。
コンピュータメモリも、ディスクも非常に小さく、全てが非常に高価だった。だから、場所を意識して操作する方法を採用せざるを得なかったのだ。ここで鍵となるのは、この考え方は「かつては」合理的だった、ということである。この制約は、私がプログラマーとして働いていた間に、過去のものとなっていった。