Complaints that modern software is becoming less reliable often come with a flattering comparison to an earlier era. A new essay by longtime computer user and developer Dan Luu challenges that premise, arguing that personal-computer software in the 1990s and 2000s was frequently unstable, insecure and difficult to maintain.
The essay does not deny today's quality problems. It starts from a current concern: if developers produce much more code without a proportional reduction in defects, users can encounter more bugs. Its central point is narrower. Rising frustration with present systems does not prove that older systems worked better.
Luu describes Windows computers that could crash because of faulty device drivers, operating-system resource problems or unstable applications. The Blue Screen of Death became a recognizable part of everyday computing, and applications commonly lacked dependable automatic saving. A system or program failure could therefore destroy hours of work. The habit of repeatedly pressing Control-S survived even after cloud editors made saving automatic.
Distribution on floppy disks, CDs and other physical media did impose a deadline that encouraged vendors to ship a usable version. Yet that constraint did not eliminate defects, and updates were much harder to deliver. A driver bundled with a peripheral could destabilize an entire machine, while compatibility problems were often left for users to diagnose.
Security was another weak point. The account recalls password-protected screen savers that could be bypassed through the Windows task manager, advertising software that accumulated during ordinary web use and malware that spread through document macros and email. These examples illustrate how the security model of a household PC often depended on users recognizing threats and repeatedly running cleanup tools.
Performance also degraded in visible ways. Mechanical hard drives became fragmented, cache files accumulated and unwanted software slowed startup. Technically inclined relatives were routinely asked to clean machines, empty temporary storage and run disk defragmentation. Those maintenance rituals were not signs of an invisible, perfectly engineered past; they were responses to recurring limitations.
Modern software has introduced different frustrations, including constant updates, sprawling dependencies and services that can change after purchase. Faster release cycles can allow flaws to reach users quickly. They also let developers distribute security patches, recover documents continuously and improve systems without shipping new physical media.
The useful comparison, the essay argues, is not between a broken present and an idealized past. It is between different failure modes. Earlier computers offered simpler, more bounded products in some cases, but they also crashed more visibly, lost more local data and exposed users to routine maintenance and basic security weaknesses. Remembering both sides makes criticism of current software more precise.



