Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Exactly what is "software"? 5

Status
Not open for further replies.

petey

Programmer
Mar 25, 2001
383
US
This may sound like a no-brainer at first, but there seems to be a bit of confusion out there regarding the notion of what software is, and I've never heard anybody give a definitive answer.

Specifically:
How do we differentiate between what we call 'software' and what we call 'content'? Is there a need to differentiate?

Let me elaborate: Traditionally we think of software as being a chunk of code that processes information (content). MS Word and .doc files are a classic example. MS Word is the software, doc files are the content. Life is simple.

The web seems to have modified our definitions, though, by blending the two concepts. HTML was introduced as a format for content, but the 'L' in HTML helped propagate the notion that it was a programming language. Embedded JavaScript on web pages helped blur the distinction. Finally, technologies like JSP/ASP/PHP put content and software in a blender together and touched 'smoothie'. Life is complicated.

All of that to say this: Nowdays we have a largely fragmented and mixed-up set of expectations and opinions regarding the roles of software engineers and content designers. (managers love to capitalize on this ambiguity) On one end of the spectrum are hardcore application programmers writing apps in languages like C and C++. On the other end are "webmasters" who publish web pages with HTML, graphics and various scripting languages. The former tends to draw a sharp distinction between software and content, sneering on those who would call HTML a 'language', the latter usually adopts the more inclusive view where the entire website is considered a software application, HTML and all.

So can I write an essay and cover it under the GNU license? Can my Java code be considered artistic? Can there be open-source novels, or albums, or record labels?

It'd be cool to hear everybody's thoughts on this stuff.

Petey
 
To 'add more oil to the fire', software (anything that can be put in a computer's memory) can be divided in data and programs, but the distinction may vary from application to application.

Say you execute a program file. In this case, it is a program.

Say you compress the same file (with winzip, for example). In this case, it is data.

In general, a program is just data that can be executed. Why do you want to make a difference anyway?
 
There is NOTHING but hardware and software. There is no way to try to break software into several entities. It's either hardware or software. Those of us that have worked with software (installing and troubleshooting) for over 30 years know it when we see it. The old saying, "if it walks like a duck, looks like a duck, and quacks like a duck---it's a duck". Any information loaded on a computer that contains "0"s and "1"s is software---no exception. I go back to my original argument. "I have picked one". I will never waiver. "A little knowledge is a dangerous thing....." [morning]
 
Yes but what kind of duck is it. A pintail? A canvasback? A mallard? You would be following the first definition as I understand it that I gave.

However I believe it still remains that there can be different types of software.

I think that the word software in the application/data sense is a mistake as it can make things confusing. However, that is the way that many people view software today. That'l do donkey, that'l do
[bravo] Mark
 
But it is ALL SOFTWARE!!!!!!! "A little knowledge is a dangerous thing....." [morning]
 
While it's technically correct to say "I've got some new graphics data on my computer.", it's so much more meaningful to say "I've got some new graphics software on my computer." I couldn't just randomly interchange the two terms without confusing people.

There *is* a difference in the way we think about software vs. data, but nobody seems to want to define it.
 
In an earlier post, I offered the following:

Perhaps we make a distinction between software and data, by classifying software as instructions, and data being that which upon the instructions operate. In other words, software is the operations, and data is the operands.

That being said, it is necessary to understand the context upon which a classification is being made, for at any given point in time, a specific string of bits could be a set of instructions, or it could be the data at another level. Perfect case in point is a compiler. During the compilation process, the program that you and I write, is nothing but data to the compiler. So in that context, the source and resultant object code is data and the compiler is software. But during execution, the program being executed would take on the role of software, and it in turn would have its own data. Good Luck
--------------
As a circle of light increases so does the circumference of darkness around it. - Albert Einstein
 
Petey, data is a subset of software. Just because you can use the term software in a sentence to describe what you're talking about, doesn't mean it's interchangeable with data. In your example, it makes perfect sense that 'software' fits better than 'data'. It has a broader definition and is more inclusive.

The point people is that using the term data in place of software or vice versa, where you "deem" appropriate, is a matter of opinion. Trying to separate the two is near impossible.

CajunCenturion brings up a valid point of association. If I was a programmer speaking to other programmers, it would be a fatal mistake to use the term software to describe the "operands" (or "innards" if you will) of an application. 'Data' would be more descriptive and socially more correct.

However, this is all part of a bigger picture. It depends on the situation, audience, and focus of the conversation. Take Zarcom's example of the square and rectangle. If you didn't know how to describe a rectangle or know what context to use it in, a safe bet would be to stick with 'square' in your description. The same goes with software vs. data. Use 'software' if you're not sure it's 'data' - sure you might look stupid, but at least it can't be disproved!!


WHY MUST WE MAKE THIS MORE COMPLICATED THAN IT REALLY IS?
~cdogg

"The secret to creativity is knowing how to hide your sources."
- A. Einstein
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top