1. The filesystem as an object hierarchy
Directories are treated as objects that contain class‑ and instance‑files, with path files coordinating inheritance and method lookup. This makes the shell itself a dynamic object graph.
“Directories are objects. Files are interfaces. The filesystem IS the object graph.” – Selfish COM
The approach was formalised in a patent that maps class hierarchies onto nested directories, allowing shell scripts to inherit behaviour just like normal OOP classes. > “A method and apparatus for implementing a class hierarchy of objects in a hierarchical file system… The class hierarchy comprises a root class… Each class is implemented with a hierarchy of class directories and class files… Inheritance is achieved by controlling the invocation of class methods, using these path files.” – US 5187786A (cited by DonHopkins)
2. PostScript‑based object orientation (the “linguistic motherboard”)
The stack‑oriented nature of PostScript makes it a natural substrate for Smalltalk‑style objects, a insight that powered NeWS and later projects like MOOLLM.
“PostScript is a linguistic ‘mother board’, which has ‘slots’ for several ‘cards’… The first card we built was a graphics card. We're considering other cards…” – John Warnock (as recounted by Owen Densmore)
Owen Densmore explicitly described how dictionaries act as class definitions and how the stack implements inheritance:
“Push a class dictionary onto the stack; method lookup walks the stack (multiple inheritance).” – Owen Densmore
3. Cross‑generational influence of OOP in NeWS and early GUIs
The NeWS toolkit demonstrated that UI components can be programmed directly in PostScript, enabling runtime inheritance and novel features such as pie‑menus that users could customise.
“Only the diehards want to develop applications using basic window system facilities. The preferred approach is a higher‑level ‘toolkit’… Experience with current toolkits shows the need for an object‑oriented interface to these components.” – David Rosenthal
The same OOP concepts that drove NeWS also inspired early work on the Unix shell, linking window‑system objects to shell scripting and later to LLM‑oriented architectures.
“Objects & Methods… We organized objects in the window system in a class hierarchy with inheritance… This allowed Don Hopkins to implement pie menus… This was such fun that Owen Densmore and I used the same technique to implement object‑oriented programming for the Unix shell.” – David Rosenthal