Re: Definitions of Software and Database

From: Marshall Spight <marshall.spight_at_gmail.com>
Date: 4 Feb 2006 10:09:13 -0800
Message-ID: <1139076553.719625.236870_at_g44g2000cwa.googlegroups.com>


dawn wrote:
> Marshall Spight wrote:
> >
> > I'm unclear why we'd care what a lawyer thinks a database is.
> > Are we thinking of writing legislation?
>
> That ties back to another thread where x gave a definition of software
> that included the abstraction of hardware or some such. I asked how
> one would license such software in an effort to understand this asset.
> He said there was likely a legal def of software, but I have not yet
> found one.

Sure, but this does not explain why a legal definition would be relevant
to this newsgroup.

> > I've always liked "a database is a collection of facts." Short and
> > to the point.
>
> I'm OK with that, I think. Accurate data are facts (at least by the
> definition I gave in my most recent blog) and database software must
> work with the logical assumption of the data being accurate.

As an aside, the word "fact" is strangely a bit fuzzy with regards to truth or not. See usage note at
http://dictionary.reference.com/search?q=fact

> > Let's extend that to "software is a collection of instructions."
> > I would prefer "... a collection of functions" but that's
> > probably too specific.
>
> Yes. That is one of the problem points. Is an arbitrary Java class
> "instructions"? Yes in the sense that the "data" can be used as input
> to other software, but not in the sense that it is, on its own, an
> executable instruction.

My definition didn't include anything about "on its own, executable." I propose every java class is software, and, just to make it hard right away, I'll add even if it doesn't compile. Which immediately raises the question, when is a text file a java source file? How close to compiling does it have to be? Is a random list of letters in a file named "MyClass.java" java source code? And I would propose that these aren't very interesting questions.

> If your data contains variables or if it can only be accessed through
> functions that determine its representation based in its type or other
> information, is it software?

Yes.

> Must software contain functions?

No.

> You can
> write classes that have no functions specified overtly, and I would
> call that software, but this software doesn't run outside of some
> external function.

I see no reason to burden the definition with limitations on where or whether it can run.

> > Some programming languages aren't
> > organized around functions. Assembly, say.
>
> although you could definitely call those instructions.

It is the canonical term, in fact, and the collection of such for a given processor is called its instruction set.

> Would a value
> of 5 for the variable myNumber be data? Would a tiny Java class with
> one class variable named myNumber with a value of 5 be software?

Yes and yes.

Marshall Received on Sat Feb 04 2006 - 19:09:13 CET

Original text of this message