Tuesday, October 18, 2005

If you took an operating system and did a hardware implementation of it, would it mean that the machine runs without an operating system?

Now it is becoming clear. There is no such thing as a software product. Software belongs in the quaternary industry, and you don't talk about produce in this sector. The primary industray talks about primary products, the secondary talks about consumer products. And from the tertiary industry on, we start talking about services - so why are we going back to products?

According to Wikipedia, if that is a source of any authoritativity, the quartanery industry is one that involves intellectual services. Put it in another way - in the secondary industry, you sell people the hammer to hit the nails in. In the tertiary, you charge them money for hitting the nail in. Now in the quartenary industry, you charge them money for telling them, in what manner they ought be hitting the nail in.

That is what it is. Let me now attempt to give a description of what I think software thus is - for the lack of a better word than "software", that is. Given that a user is a person or group of persons that interacts directly with the "software", then, software, perhaps, is a collection of logical steps of basic operations and the configuration that govern how and when these steps are to be invoked, essentially abstracting the know-how that experienced practioners employ while addressing issues, especially in, but not limited to, the problem domain of the user, expressed in a notation that can, directly or otherwise, be intimately employed in conjunction with a hardware device in order to derive a result which may be construed as an expert advice in the user's problem domain, a professional service that in part or in full solves the user's problem, or, a product which production is the user's problem domain.

For those who have problems with long sentences:


software, perhaps, is
(a COLLECTION of
(logical steps of basic OPERATIONS)
[and]
(the CONFIGURATION that govern how and when
these steps are to be invoked,)
[essentially abstracting]
(the KNOW-HOW
(that EXPERIENCED practioners employ
while addressing issues,
(especially in, but not limited to,
the PROBLEM DOMAIN of the user,)
)
)
)
[expressed in]
(a NOTATION that can, directly or otherwise, )
[be intimately employed in conjunction with a]
(hardware DEVICE in order to
(DERIVE a result which may be construed as
(an EXPERT ADVICE in the user's problem domain,)
[or]
(a PROFESSIONAL SERVICE that in part or in full
solves the user's problem,)
[or]
(a PRODUCT which production is the
user's problem domain.)
)
)


This leads to two differentiating factors between software, and other services in the quartenary industry: firstly, that software needs to be executed on a tangible device, as opposed to programs implemented in organisations that involves strictly the retraining of staff to optimise processes, and secondly, that software may command a depth that can give tangible solutions to problems, even if the problem domain exists in the secondary or primary industry. It also follows that software makes it possible to offer intellectual services in a frame that may be separated from the source of that intelligence by space and time.

Coming back to our opening question. When does software cross the line? I believe that the crux of the matter is in the word "notation". So long as a solution may be expressed in some form of notation that may be used to make hardware derive some kind of useful result, the solution, expressed in the form of a notatian, is software. Which is to say, that digital circuit diagrams are software, but PCB derived from these diagrams, are not. In some sense, I am suggesting that in such cases, we are compiling our software into hardware, not binaries.

Which leads us to conclude that, yes, it runs without an operating system, only because we do not yet have a name for something that behaves like software but is not expressed in some form of notation. I would like very much though, to have a term that can take the clause "expressed in a notation" out of what I think what we currently think software to be. Afterall, in essence, software, really should be the intelligence that can help people solve problems in the absence of an expert. Why should it matter what form it takes?

No, there's no such thing as intelligent hardware, either. Not at least, for me.

No comments: