Forgetting the history of Unix is coding us into a corner

Debate over the legacy of Unix highlights a tension between its elegant “everything is a file” model and the complexity and diversity of modern computing needs. Commenters argue over whether clinging to classic Unix philosophy and text-stream composability enables powerful reuse or instead blocks richer, typed interfaces, new OS designs (like Plan 9–style systems), and better network and GUI abstractions. More broadly, the exchange reflects concern that younger engineers are repeating old mistakes by ignoring past operating-system and mainframe ideas, while today’s fragmented, highly specialized ecosystem makes it harder to absorb those historical lessons.

Article structure and thesis

  • Several commenters find the piece rambling and incomplete on its own.
  • Many say the title (“coding us into a corner”) isn’t supported: who is forgetting what, and how this leads to a “corner” is unclear.
  • Others note it’s explicitly part 2 of a multi-part series based on a linear talk, so context is missing by design, but this doesn’t fully satisfy critics who want each article to stand alone.

Unix philosophy and “everything is a file”

  • Some argue “everything is a file” is over-idealized and ill-suited to complex modern needs (GUIs, networking, async I/O, rich structured interfaces).
  • Others say the deeper lesson is minimizing and reusing interfaces; Unix streams are one instantiation, Lisp/expressions another.
  • There’s debate whether the model remains powerful or is now mostly anachronistic and constraining.

Wayland, graphics, and OS interfaces

  • A contentious subthread questions criticism of Wayland for not fitting neatly into the Unix file/stream model.
  • Some say this is unfair and tangential: Wayland is a simpler, user-space protocol over a socket (still a “file” in Unix terms) and far less bloated than X11.
  • Others agree modern graphics don’t map well to the classic file abstraction and see this as evidence that the model is dated.

Alternatives and successors to Unix

  • Plan 9 is repeatedly mentioned as a likely “if we invented it today” model and as the focus of a follow-up article.
  • Some suggest looking beyond Unix altogether: Smalltalk/Lisp-machine–style “everything is objects,” .NET-like typed runtimes, or systems with strong reflection and OS-wide type systems.
  • Mainframes and older systems are cited as having solved security/isolation/distribution problems that Unix partially regressed on.

Composability, shells, and data formats

  • Many see Unix’s key value as composability; they lament today’s proprietary cloud silos and lock-in.
  • Others argue composability is inhibited by everything-as-text: lack of structured, typed pipelines leads to constant parsing churn.
  • Proposed directions: JSON/YAML schemas, Apache Arrow, PowerShell-style object pipelines, OS-level content negotiation, richer “stdout” with multiple representations.
  • Some push back: adding universal structure risks complexity, lock-in to type systems, and “telling hackers what to do.”

History, forgetting, and reinvention

  • Multiple comments bemoan repeated reinvention (RPC stacks, routing, frameworks) with little awareness of older solutions (CORBA, SOAP, mainframes, Lisp machines, etc.).
  • Others note this cycle is perennial and tied to human limits and specialization, not just “young coders ignoring history.”

Specialization, careers, and generalists

  • There’s an extended side discussion on how breadth of the field prevents one person from “knowing everything” as in earlier eras.
  • Some defend deep specialization; others argue capable generalists (“T-shaped” engineers) can master multiple domains because the truly essential depth in many subfields is limited.
  • Another subthread contrasts past and present experiences learning to program, and whether kids today can still find the same sense of “magic” and agency.

Unix definition and certification

  • Debate arises over whether Linux “is Unix.”
  • One side: since some Linux distributions passed the official certification, in principle any could; therefore Linux is a Unix.
  • Other side: certification covers full OS stacks, not just kernels, and passing by a few distros does not automatically make all Linux distributions “Unix.”
  • The disagreement remains unresolved in the thread.