5 ms·
A lot of the bloat is derived from overarching platform features. A 1980's application had to live on its own and communicate mostly in printed English document
by mntmoss 7y ago
A lot of the bloat is derived from overarching platform features. A 1980's application had to live on its own and communicate mostly in printed English documents. Many of those early microcomputer apps were therefore glorified printer drivers with a bit of disk or tape I/O. Everything ASCII or with a regional code page - very simple. Then we added multitasking, networking, UTF localization, variable and multi-display support, multimedia, accessibility and so on. These features add value but as you say, raise expectations - and so create subtle additional costs. We built frameworks and standard APIs to deal with each thing as it came along. The platforms got bigger, much much bigger. And the hardware profiles have shifted as well. 64-bit support adds a lot of bloat for an application that doesn't need a huge address space.
Games are often immune to these things since the final runtime is mostly "viewing" and not "editing", so their requirements are more focused, but they also get hindered by platform abstractions. Only console games can even consider taking direct control over I/O; everyone else has to go through some kind of API, even if it's the operating system's lowest level API. There's all kinds of buffering and sandboxing in consumer operating systems that is OK for media playback, but not for interactivity. Games historically act as bellwether "killer apps" - soaking up resources to deliver basically the same kinds of experiences at ever-higher fidelity, which justifies purchasing higher end gear. Then the apps follow, making use of the new install base. Things that were products gradually turn into standardized features.
There is some kind of endpoint, or perhaps reset point, to all this - when the experience is already at peak fidelity, other forms of differentiation start to set in. New apps regularly appear as the "small minimalist alternative" to a old long-in-the-tooth standard. The new kid gets bigger to cover more users. Then it becomes the old standard, and the cycle repeats. With some products this is a very long cycle - Word and Photoshop are still viable. Others come and go. But it's basically true outside of software too. Nails and screws used to be extremely valuable and difficult to manufacture, and now they are simple components - their role changed from being the product to being the feature.