On the nature of computing science (1984)

Simplicity, Complexity, and Effort

  • Many tie the essay’s argument to the classic idea that making something shorter/simpler takes more time and skill.
  • Simple software is seen as harder to create and maintain than complex software; “simplistic” is contrasted with truly “simple.”
  • Some argue that as systems evolve and are frequently changed, keeping them simple becomes increasingly expensive, tempting teams to trade elegance for complexity.

Software Architecture: Microservices, REST, and Cloud

  • Strong criticism of microservices as a default, especially for small/medium orgs: they add network, latency, and coordination overhead without corresponding benefits.
  • Examples of messy microservice and cloud-native setups (many AWS services, serverless sprawl) that are expensive, fragile, and don’t actually scale well.
  • Several advocate modular or “serverless” monoliths and note published work showing you can decouple deployment without splitting into physical services.
  • REST and related patterns are attacked as poor units of composition that fail to deliver real separation of concerns and instead spread relational problems across systems.

Incentives, Fads, and “Complexity Sells”

  • Complexity is said to “sell” to managers, performance-review systems, and developers’ egos (dopamine from mastering intricate systems).
  • Resume-driven or curriculum-driven development encourages adopting fashionable stacks (microservices, SPA rewrites, Kubernetes) regardless of fit.
  • Market, academic, and risk-management dynamics reinforce popular complex technologies once they’re entrenched.

Design Skill, Time Pressure, and Professionalism

  • Debate over whether complexity stems mainly from lack of time or lack of design ability.
  • Some say people could design well but are rushed; others respond that competence must include working under realistic constraints.
  • “10x” contributors are framed as those who avoid bad designs and tech debt, not those who simply code faster.
  • Several emphasize explicit design work (diagrams, reflection, studying good code) and long-term exposure to one’s own mistakes as key to improving.

Reactions to Computing Science and Practice

  • Many find the essay inspiring and eerily applicable to today’s ML/AI “alchemy” and hype-driven tooling.
  • Others criticize its philosophical stance: too much focus on abstract, discrete mathematics and insufficient attention to material constraints, user experience, and messy real-world systems.
  • Some express disillusionment with modern software: despite huge hardware gains, everyday tasks (e.g., banking apps, security hoops) feel more painful, not simpler.