Sunday, December 31, 2017

What is Software?


Ir's a new year, so let's start out with something fundamental, cleaning up something that's bothered me for many years.

The other day I was lunching with a computer-naive friend who asked, "What is software?"

Seems like it would be an easy question for those of us who make and break software for a living, but I had to think carefully to come up with an explanation that she could understand:

Software is that part of a computer system that adapts the machinery to various different uses. For instance, with the same computer, but different software, you could play a game, compute your taxes, write a letter or a book, or obtain answers to your questions about dating.

I then explained to her that it’s unfortunate that early in the history of computers this function was given the name “software,” in contrast to “hardware.” What it should have been called was “flexibleware.”

Unfortunately the term “soft” has been interpreted by many to mean “easy,” which is exactly wrong. Don't be fooled. 
What we call “hardware” should have been called “easyware,” and what we call “software” could then have been appropriately called “difficultware.”

7 comments:

Unknown said...

"What we call “hardware” should have been called “easyware,”..."

An enormous queue of EEs and chip designers is forming. I think they all want to disagree with you.

Gerald M. Weinberg said...

And how many of them have ever developed significant software?

Unknown said...

Hi Gerald, have you been developing both software and hardware? I've only tried first, but I believe manufacturing a decent chip is not easy at all.

Unknown said...

Plenty of them. Stuff that has to work, like device drivers.

But that’s not the point. Modern silicon is every bit as complex as most software; and you can’t just make silicon, see if it works and go round again if not - way too expensive.

Gerald M. Weinberg said...

I guess I should have written "easierware," rather than "easyware." Neither software nor hardware are easy.

Anonymous said...

I may have replied to that question from a different angle. Software has become synonymous with "business knowledge." Business knowledge has been encapsulated into software thru the communication of requirements to software developers who have transcribed that knowledge into (programming languages. And today many business functions can't operate without the use of their software applications.

Yang said...

Hardware should be called easyware. Then software should be called hardware. You end up saving one variable and solve the problem for good. LOL