Remote String

RemoteString was a class in an ancient Smalltalk that obeyed String protocol but kept its contents in an external filesystem. It kept a reference to an external file stream, an offset within that stream, and a size.

When an instance was created, its contents were appended to the end of the stream. When instance was loaded, the stream was positioned to the offset, read, and answered.

It is closely related to the Lisp idea of a "Locative", and also has some resonances with page-oriented memory systems. Similar ideas were also present in some early Basic and RSTS implementations.

RemoteString allowed the external filesystem to be used as a primitive write-once store, so that multiple versions of the same source could be kept accessable to the environment. This allowed the developer to revert class and method definitions to earlier versions (the precursor of EnvyDeveloper's "load another edition" concept). In a world of kbytes of memory called "core" and 1-2MByte disk drives, this was an astonishing and miraculous capability.

-- TomStambaugh


EditText of this page (last edited February 29, 2000) or FindPage with title or text search