Software may be getting worse, but it used to be horrible

Many commenters argue that while 1990s and early-2000s software was crash-prone, insecure, and constrained by weak hardware, it has since become far more stable and capable at a low level. At the same time, they see a marked decline in user experience and “quality of feel”: growing latency, inconsistent UIs, lost user control, enshittified business models, and apps that prioritize metrics, subscriptions, and telemetry over usability. The rise of web stacks, cloud dependence, and AI-assisted “vibe coding” is seen as accelerating bloat and mediocrity, even as tools and infrastructure theoretically make it easier than ever to build robust, high-quality systems.

Overall theme

  • Many agree past consumer software (esp. Windows 9x/ME/XP era) was technically fragile, but argue today’s problems are different: less crashing, more bloat, worse UX, and more extractive business models.
  • Several see a “U-shaped” arc: horrible → golden middle (Win 7 / Snow Leopard, etc.) → declining again.

Reliability vs. stability

  • Then: frequent BSODs, single bad app or driver taking down the OS, fragile media (NES carts, scratched CDs), DOS memory limits, “DLL hell.”
  • Now: OSes rarely hard-crash, better memory protection, tab isolation, package managers, and test culture.
  • Counterpoint: some still see BSODs and severe bugs (e.g., Windows recovery mode unusable with USB input), especially via third‑party drivers and AV.

UX, performance, and latency

  • Strong sentiment that UI/UX has degraded: hidden scrollbars, oversized whitespace, moving buttons, laggy menus, animations, telemetry, and network round‑trips for trivial actions.
  • Latency called out as a major regression: noticeable delays on keypress, right‑click menus, and basic app operations despite far faster hardware.
  • Old software on old hardware often felt “instant” and “commandable”; modern systems feel sluggish and less customizable.

Testing, metrics, and AI code

  • Mixed views: some claim tools and AI make it easier to produce heavily tested, accessible, maintainable code.
  • Others warn against Goodharted metrics (LOC, coverage), vacuous or AI‑generated tests, and overreliance on A/B testing and telemetry that optimize engagement over quality.
  • Concern that “vibe coding” with LLMs lets non‑experts ship insecure, poorly architected systems, especially for novel apps.

Nostalgia, bias, and expectations

  • Several warn about rosy retrospection and changing user bases: early users were more technical; today’s mass audience drives different design constraints.
  • Others insist they distinctly remember snappier, more efficient apps and fewer daily UX papercuts.

Business models, ownership, and cloud

  • Many complaints target enshittification: subscriptions, locked‑in cloud services, revocable features, surveillance, and ad‑driven design.
  • Contrast drawn between proprietary, changing SaaS and relatively stable, user‑respecting ecosystems (Linux distros, some macOS apps, FOSS tools).

Games as microcosm

  • Old games often buggier but more innovative and “important”; modern AAA titles more polished but constrained by huge budgets, monetization, and risk‑aversion.