Hacker News new | ask | show | jobs
by mwcampbell 3475 days ago
Some days I'm inclined to rant about software bloat. I've often quoted or paraphrased a bit of dialogue from the Scott Meyer novel _Off to Be the Wizard_ that's kind of funny but also pretty sad:

Phillip (time traveler from 1984): What on earth can a person do with 4 gigabytes of RAM?

Martin (from 2012): Upgrade it immediately.

But on the other hand, some of what might be perceived as bloat is really useful, even necessary, to someone. For example, show me a "light" desktop operating system, Unix desktop environment, or web browser, and I'll probably tell you that many of my friends couldn't use it, because they're blind. (As for me, I'm legally blind, but I have enough sight to read a screen up close, so I don't need a screen reader, but I often use one.) Accessibility requires extra code. In Windows 10, UIAutomationCore.dll is about 1.3 MB, and will no doubt get bigger as Microsoft continues to improve the accessibility of Windows. But you can't write that off as bloat.

Elsewhere on this thread, there was some discussion of microcontroller software versus Android. A user interface written for a microcontroller with a screen is inaccessible to a blind person, except by memorizing a sequence of button presses, if the UI is simple enough and the device has physical buttons in the first place. But if the device is running Android, the infrastructure for accessibility is there; just add a text-to-speech engine and TalkBack (edit: and make sure the application follows accessibility guidelines). That ain't gonna fit in 1 MB or less of flash and 512K or less of SRAM. So sometimes we may be inclined to rant about bloat, but there's actual progress, too.

2 comments

> Accessibility requires extra code. In Windows 10, UIAutomationCore.dll is about 1.3 MB, and will no doubt get bigger as Microsoft continues to improve the accessibility of Windows. But you can't write that off as bloat.

I'm convinced that's not true. Consider the case of CSS and ARIA roles. You could very easily write CSS/JS components defined on roles using CSS 2.1 attribute selectors, and accessibility just follows naturally. For instance, define your tab panels using role="tab", and screen readers should immediately understand it, while for visual designs, your CSS and JS just select on the appropriate roles. You then use classes for non-semantic content, like font and colour instead of using classes for everything as is currently standard.

So you're not duplicating code, you're writing better semantic markup once which can be properly interpreted multiple ways in different media.

Not how it's currently done, but there's no reason it can't be done that way, even for desktop UIs.

I don't disagree with your point, but I think you are over estimating how much code some of that takes.

The reality is that we use so much code because it is easier that way. And the added ease is very hard to remove.

Then there is data. A single picture is more storage than my first few computers had. Compression isn't magic.

True. It's particularly sad that so many desktop apps these days bundle a full browser engine (through Electron or the like) because it's so convenient. And I hadn't really thought about how much space photos take up because gasp I don't have a photo library. Music, though? That eats up space too.
Yeah, a ton of data goes to music and video. On the plus side, I no longer spend a ton of physical space on these. Not sure what is more wasteful, tons of movies and music I don't get to on my computer, or bookshelves of the same.

And I still have a fair number of books.