Did we lose our way in making efficient software?
Perceived Software Bloat & Regression
- Many compare 90s-era apps (Word on a 386, QNX demo floppies, early Macs) to today’s gigabyte‑scale software and feel we’ve lost efficiency without proportional benefit.
- Users report modern machines with 8–32 GB RAM feeling as “slow” as older systems once did, especially with browsers, Electron apps, Slack, Google Docs, etc.
- Others argue that relative to hardware growth, current apps are not more bloated than in the past.
What We Gained
- Cited gains: rich graphics, Unicode and internationalization, high‑DPI UIs, composited desktops, crash handling, collaboration, track changes, spell/grammar checking, global fonts, complex document formats, cross‑platform frameworks.
- Some note many of these could be implemented far more efficiently; the current cost is mostly due to choices and shortcuts, not hard technical limits.
Root Causes & Incentives
- Common theme: business incentives favor developer time, time‑to‑market, frameworks, and SaaS revenue over runtime efficiency.
- “Hardware is cheap” mentality and containers (e.g., 6+ GB Docker images) exemplify trading resource use for simpler builds and distribution.
- Bloat is described as an “externality”: developers don’t directly pay for wasted CPU/RAM/energy; users and the planet do.
Web vs Native
- Browsers, JS, DOM, and frameworks are widely blamed for sluggishness, especially on large documents or long comment threads.
- Some argue high‑performance web apps are possible but require discipline and careful architecture that are rare under current pressures.
- Others point out native isn’t automatically better; poor algorithms and data structures can make native apps just as slow.
Platforms, Lock‑In & Distribution
- Friction around native apps: paid dev accounts, mandatory signing/notarization, app‑store fees, code‑signing certs, and platform‑specific UI stacks push many toward web apps.
- There is debate over whether store cuts (15–30%) and tax/chargeback handling are “worth it” versus payments via Stripe or similar.
- Cross‑platform UI remains fragmented; lack of a common native API and heavy frameworks (Qt, Electron, Java UIs) push some developers to the browser.
Attitudes & Culture
- Many blame current engineering culture: “premature optimization is evil,” resume‑driven framework choices, and feature‑count metrics.
- Others stress that the real missing piece is incentives and process: high‑quality, efficient code takes time that organizations rarely reward.