HiveBrain v1.2.0
Get Started
← Back to all entries
patternCritical

Why do we need full-fledged workstations running massive OSes with massive software?

Submitted by: @import:stackexchange-cs··
0
Viewed 0 times
whyfullmassiveworkstationsneedwithfledgedrunningsoftwareoses

Problem

I've grown up with computers. While watching old computer TV programmes and documentaries and reading the news about constant issues with these modern systems -- everything from the sheer amount of change/bloat/costs to all the security and privacy issues -- one thing that really stikes me hard is:

Why do normal people need computers that are so powerful and complicated?

In decades past, we used simpler, less powerful computers to perform all kinds of tasks, without the issues we face today.

I'm not suggested we swap out current computers for thin clients. I'm simply saying that current computers seem more powerful than necessary for vast majority of tasks that any person employed by an average company would logically need.

Even in the early 1990s, computers had advanced to the point where "all basic input/output tasks" were "solved". If I were running a company, I would create a minimal computer terminal which runs a minimal OS, and which just boots up and displays a "browser-like" interface that talks over HTTPS to my "mainframe". I'd use a simple username/password system, with no password resets or two-factor auth, and once logged in, the employee would see only the sections that are relevant for them, coded by me. For example, a secretary would see a basic form where she can input appointments, list current ones, etc. A different kind of employee, whose job is just to deal with customer support, would only see a minimal list of current support tickets and only have the ability to respond to these in a manner which cannot be misunderstood or abused. I'd log every action so that I can later look up exactly who messed up or went rogue.

I notice that modern systems don't seem to work that way. Instead, we have full-fledged PCs with expensive, bloated, and insecure Microsoft or Linux software. We spend enormous amounts of time, effort, and money to educate employees on how to use it, maintain it, and deal with all the problems that inevitably arise from ex

Solution

You are conflating a number of issues here.

Why does my software have all these features to begin with?

Because other computers' software has those features, and network effects punish any software developer who doesn't follow the herd.

Let's take an example from your question: Why does my web browser need to do anything other than basic HTML and CSS? Well, have you ever tried browsing the modern internet with all JavaScript disabled? It's functionally unusable. The problem is that, once JavaScript existed in a widely used browser (Netscape), people started using it in their webpages. That meant that other browsers had to add support for it to prevent their users from complaining that webpages are broken. And once more users had support for it in their browsers, more webpage authors started assuming that users had it. Round and round the positive feedback loop goes.

Software developers have strong incentives for adding features to software, and strong disincentives for removing them or even changing them.

It's taking 25 years to kill Flash Player, despite it being an incredibly complicated, bug-ridden, security nightmare black box that Adobe themselves no longer wants anything to do with. You know that all hell is going to break loose on December 31, 2020 when the plug finally gets pulled and people can no longer play their beloved Flash games from 2001.

Why do employees of a company need to have full PCs rather than dumb terminals that can only view intranet pages?

Because intranet pages work great until an employee needs to do anything other than the specific tasks that the programmer has predetermined are that person's job.

What happens when someone else (either inside or outside the company—let's call her "Alice") wants to send you a presentation to review and edit? Every person at every job role at my company has had to do that at some point—managers, engineers, administration, facilities, you name it.

You can receive Alice's presentation file on your internal webmail, but you need some way to edit it. And that means your computer needs to be able to edit PowerPoint files, because that's what everyone uses. And PowerPoint files are ludicrously flexible in what sort of content can be contained in them. So we're back to the network effects problem. If Alice sends me a PowerPoint file and I can't edit on my computer because it uses features that my software doesn't support, that's my problem as far as Alice is concerned.

It's functionally impossible to forsee all the things that someone might need to do for most modern jobs, for the simple reason that if it were possible, that job would probably already be fully automated. And that's not even accounting for the fact that many companies allow their employees to use company computers for all sorts of things that are not strictly part of their job description, such as streaming music.

There's also a more general principle here. As you correctly point out, most PCs are "fundamentally overpowered and overcomplicated for the vast majority of tasks that any person employed by a normal, non-highly specialized IT company, or government entity, would logically need." The problem is that a computer that does all the tasks you need 95% of the time but is useless the remaining 5% of the time when you need to do something weird and specialized—is useless as a computer.

I've heard it said that in software design, 10% of the features cover 90% of what any user needs, but that the remaining 10% of what any user needs is different for each user. If you take the set of features used by each user and intersect all of these sets, the result is not sufficient for any user.

"This interface would have a simple username/password system, with no demands to reset passwords or 'two-factor auth' or any of that nonsense"

This gets its own subheading, because this is a totally separate class of issues from everything else you mention. Go over to Security.SE and read about why these things exist. There are very specific reasons for these security practices, that are totally orthogonal to any discussion about complexity of software.

Context

StackExchange Computer Science Q#118481, answer score: 60

Revisions (0)

No revisions yet.