[HN Gopher] The Unix executable as a Smalltalk method (2025) [vi...
___________________________________________________________________
The Unix executable as a Smalltalk method (2025) [video]
Author : surprisetalk
Score : 65 points
Date : 2026-04-16 15:09 UTC (2 days ago)
(HTM) web link (www.youtube.com)
(TXT) w3m dump (www.youtube.com)
| DonHopkins wrote:
| Owen Densmore (who implemented the PostScript "object.ps"
| Smalltalk-like object oriented programming system for NeWS, and
| worked at Apple on the LaserWriter and PostScript printing
| system), and David Rosenthal (who developed NeWS with James
| Gosling, and one of the original employees of NVIDIA), patented a
| way to implement Smalltalk's (and NeWS's) object oriented
| programming system in the shell:
|
| https://patents.google.com/patent/US5187786A/en
|
| Method for apparatus for implementing a class hierarchy of
| objects in a hierarchical file system
|
| Abstract
|
| A method and apparatus for implementing a class hierarchy of
| objects in a hierarchical file system is disclosed, which does
| not require the support of additional file attributes by the
| hierarchical file system, and has particular application to
| object oriented programming in window-based computer systems. The
| class hierarchy comprises a root class, a plurality of classes
| and a plurality of class instances. The root class is implemented
| with a hierarchy of root class directory and root class files.
| Each class is implemented with a hierarchy of class directories
| and class files comprising the class methods, and the initial
| values of the class instance variables. Each class instance is
| implemented with a hierarchy of class instance directory and
| class instance files comprising the class instance variables.
| Each hierarchy of directories and files also comprises a path
| file. The content of these path files are logically related to
| each other, based on their class' relationships. By controlling
| the invocation of class methods, using these path files,
| inheritance is achieved. By accessing the class instance
| variables through the class methods, data abstraction is also
| achieved. Additionally, the method and apparatus also supports
| the pseudo class instance/class "Self" and " Super" when invoking
| another class method by a class method.
|
| ----
|
| https://github.com/SimHacker/moollm/blob/main/designs/postsc...
|
| The Linguistic Motherboard
|
| "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 (Adobe), as recounted by Owen Densmore to Don
| Hopkins
|
| This document traces how the "linguistic motherboard" concept
| evolved from PostScript through NeWS to MOOLLM's CARD.yml -- a
| 40-year thread connecting printers to LLMs.
|
| [...]
|
| Owen Densmore's Object-Oriented PostScript (1986)
|
| At Sun, Owen invented the OOP system that made NeWS truly
| powerful. He realized that PostScript's dictionary stack could
| implement Smalltalk-style classes:
|
| Push a class dictionary onto the stack
|
| Method lookup walks the stack (multiple inheritance)
|
| Instance dictionaries hold per-object state
|
| See: "Object Oriented Programming in NeWS" (Owen Densmore, 1986)
|
| http://bitsavers.informatik.uni-stuttgart.de/pdf/sun/NeWS/De...
|
| Tom Stambaugh helped Owen see how to adapt Smalltalk patterns:
|
| "Owen and I discussed his 'crazy' idea at a poolside table at the
| now-demolished Hyatt Palo Alto, on El Camino. I told him that it
| made sense to me, we scribbled furiously on napkins, and I helped
| him see how he might adopt some learnings from Smalltalk."
|
| Filesystem as Object Hierarchy (1993)
|
| Owen Densmore and David S. H. Rosenthal (both NeWS authors)
| patented a method to implement object-oriented class hierarchies
| directly in a hierarchical file system:
|
| US Patent 5187786A: "Method and apparatus for implementing a
| class hierarchy of objects in a hierarchical file system"
|
| Directories as class and instance containers
|
| Path files coordinate inheritance and method lookup
|
| Shell path as dictionary stack (!)
|
| No new file attributes required
|
| This formalized the NeWS/Smalltalk OOP patterns into filesystem
| semantics -- shell scripts with OOP inheritance.
|
| [...]
|
| ----
|
| https://github.com/SimHacker/moollm/blob/main/kernel/DIRECTO...
|
| Selfish COM: Directory-as-Object
|
| The insight: Directories are objects. Files are interfaces. The
| filesystem IS the object graph.
|
| The deeper insight: Every directory is an agent. Every file is an
| agent. Every YAML section can be an agent. Agents all the way
| down. See `ARCHITECTURE.md` - "The Universal Foundation".
|
| [...]
|
| ----
|
| David Rosenthal:
|
| https://news.ycombinator.com/item?id=44045304
|
| >He worked with James Gosling on Andrew at CMU and NeWS at Sun,
| and on X10 as well as X11 and ICCCM, and he implemented the
| original X10 compatibility layer that was in NeWS 1.0, before X11
| was a "thing".
|
| https://en.wikipedia.org/wiki/David_S._H._Rosenthal
|
| A User-Interface Toolkit in Object-Oriented PostScript, Owen M.
| Densmore, David Rosenthal:
|
| https://www.researchgate.net/publication/229706779_A_User-In...
|
| >Only the diehards want to develop applications using basic
| window system facilities. The preferred approach is a higher-
| level "toolkit" of user interface components, such as menus and
| scroll bars. Experience with current toolkits shows the need for
| an object-oriented interface to these components. NeWS, the
| Network/extensible Window System, allows user interface
| components to be programmed in PostScript. Fortunately, object-
| oriented interfaces are natural in PostScript, and they have been
| used to create a toolkit with some novel properties. Among these
| are the use of concurrent processing and run-time inheritance of
| component methods. "Postscript is the future of words on paper."
| Arthur C. Clarke
|
| The Dawn Of Nvidia's Technology:
|
| https://blog.dshr.org/2025/05/the-dawn-of-nvidias-technology...
|
| >Objects & Methods
|
| >One of the great things about NeWS was that it was programmed in
| PostScript. We had figured out how to make PostScript object-
| oriented, homomorphic to SmallTalk. We organized objects in the
| window system in a class hierarchy with inheritance. This, for
| example, allowed Don Hopkins to implement pie menus for NeWS in
| such a way that any user could replace the traditional
| rectangular menus with pie menus. This was such fun that Owen
| Densmore and I used the same technique to implement object-
| oriented programming for the Unix shell.
|
| ----
|
| https://news.ycombinator.com/item?id=18696116
|
| Tom Stambaugh described how Smalltalk inspired Owen Densmore's
| PostScript object oriented system in NeWS.
|
| A point he didn't mention is that PostScript is directly
| descendent from Interpress, which was developed at Xerox PARC and
| reincarnated as PostScript at Adobe by Chuck Geschke and John
| Warnock:
|
| https://en.wikipedia.org/wiki/Interpress
|
| Brian Reid's deep detailed historic dive "PostScript and
| Interpress: a comparison":
|
| https://web.archive.org/web/20180222163747/https://tech-insi...
|
| I also think PostScript owes a lot to Lisp (it's dynamic,
| homoiconic, polymorphic, symbolic), even more so than Forth.
|
| http://wiki.c2.com/?ForthPostscriptRelationship
|
| Tom Stambaugh wrote:
|
| It seems to me that Forth is to stacks what LispLanguage is to
| lists. Forth demonstrated the advantages of a stack-centric
| paradigm in which each pushed or popped item could be evaluated
| as an expression or a primitive. Postscript reflects the
| application of that paradigm to the world of typography, 2-d
| graphics, and page layout. My own recollection is that
| Postscript's primary contribution was the use of splines to
| describe character glyphs, allowing them to be effectively
| rendered at virtually any resolution desired. If anything,
| Postscript owes more to TexLanguage and DonaldKnuth than to
| Forth. I view the stack-based language paradigm as a convenient
| afterthought rather than a central organizing principle.
|
| I also think we should note the contribution that OwenDensmore,
| at Sun, made in demonstrating how to use Postscript dictionaries
| to create a dynamically-bound object-oriented runtime
| environment. This was the fundamental premise of the Sun window
| server that ultimately became the NetworkExtensibleWindowSystem.
| Owen and I discussed his "crazy" idea at a poolside table at the
| now-demolished Hyatt Palo Alto, on El Camino. I told him that it
| made sense to me, we scribbled furiously on napkins, and I helped
| him see how he might adopt some learnings from Smalltalk. It was
| one of those afternoons that could only have happened at that
| time in that place in that culture. -- TomStambaugh
|
| ----
|
| https://github.com/SimHacker/moollm/blob/main/designs/postsc...
|
| The Definitive History of PostScript
|
| Primary Source: Brian Reid's 1985 "laser-lovers" Post
|
| This document preserves the definitive first-person account of
| PostScript's origins, written by Brian Reid on March 2, 1985 --
| just 11 months after Adobe shipped its first PostScript manual.
|
| [...]
| dang wrote:
| Related. Others?
|
| _The Unix Executable as a Smalltalk Method [pdf]_ -
| https://news.ycombinator.com/item?id=45623917 - Oct 2025 (21
| comments)
|
| _The Lurking Smalltalk in Unix and Plan 9 [pdf]_ -
| https://news.ycombinator.com/item?id=7719685 - May 2014 (38
| comments)
| sph wrote:
| On the same vein, from a few years ago:
| https://news.ycombinator.com/item?id=7719685
| sph wrote:
| PDF link is dead, a mirror: https://www.humprog.org/~stephen/
| research/papers/kell19unix-...
|
| And a Strange Loop talk by the author:
| https://www.youtube.com/watch?v=LwicN2u6Dro
| dang wrote:
| Nice find! I've added it to the GP list and put those extra
| links at the top of the original post.
|
| (Normally we don't modify old posts like that, but
| occasionally there's value in keeping the history alive.)
___________________________________________________________________
(page generated 2026-04-18 23:02 UTC)