"'database' shall mean a collection of independent works, data or
other materials arranged in a systematic or methodical way and
individually accessible by electronic or other means."
By this definition, would "software" be a database? It might be
interesting to see how legal def of software and database differ from
each other and from country to country.
Anyway, to get this particular thread started, my question is: What is
a precise definition fof the term "software" when used in the phrase
"software developer" and (how) does software relate to databases?
--dawn
Asking that question implies that you wish to subscribe to some definition
and hence to any derivations from that definition. Is that your intention?
That seems rather like asking what's a nice religion that I can believe in?
On the other hand the idea of a thread that starts with some agreed
definitions is extremely novel for this group. Mostly we seem to like to
skip that bit so that we can equivocate and talk at cross-purposes for weeks
on end.
Roy
No. Actually I would just like to clarify my thinking on what software
is and what a database is as I'm writing about software development.
The terms are seem too mushy when I try to capture them in the form of
definitions.
> That seems rather like asking what's a nice religion that I can believe in?
No, I'm interested in clear, crisp communication.
> On the other hand the idea of a thread that starts with some agreed
> definitions is extremely novel for this group. Mostly we seem to like to
> skip that bit so that we can equivocate and talk at cross-purposes for weeks
> on end.
Laughing. Yes, some shared language might be good, although I know we
will not all agree on these definitions. I just haven't found one with
which I can agree as yet.
Thanks. --dawn
I'm unclear why we'd care what a lawyer thinks a database is.
Are we thinking of writing legislation?
I've always liked "a database is a collection of facts." Short and
to the point.
Let's extend that to "software is a collection of instructions."
I would prefer "... a collection of functions" but that's
probably too specific. Some programming languages aren't
organized around functions. Assembly, say.
Marshall
>I thought I would start a new thread since the other was quite OT. x
>said there was likely a legal definition of software and I haven't
>searched for that yet, but I did find a legal def of database at
>http://dataright.haifa.ac.il/db-definition.htm
Legal according to what body of law?
>"'database' shall mean a collection of independent works, data or
>other materials arranged in a systematic or methodical way and
>individually accessible by electronic or other means."
IANAL, but I question this definition because it is too catch-all for
me. What are "other means"? Let's stick to computers, please ...
otherwise, I'd have to accept the definition of the local public
library, anno 1952, with no computer and all its books published on
paper and bound in some heavy paper, cardboard or leather as a
"database"...managed by a stack of filing cards stored in lots of
wooden trays in cabinets located somewhere in a central area of the
main reading room.
For someone interested in intellectual property litigation, that
definition might be useful. But for most of us here, mostly database
programmers or DBA's, I think we need to make a distinction. However,
I will admit that new methods of data storage and retrieval make such
definitions pretty much a moving target, and this IMHO is just to
cover all the bases.
>By this definition, would "software" be a database? It might be
>interesting to see how legal def of software and database differ from
>each other and from country to country.
Perhaps, but let's try to answer this question by asking another
question: aren't ALL databases software? I think most of us here would
say yes. And software is something special to computers, at least for
all intents and purposes.
And another question: Was there software before databases? Again, I
think most people here would agree that databases, as we know them,
are a very specific application of software, albeit rich in variety
... but there is certainly software out there which isn't database
software (e.g., Microsoft Access? <g,d,rlh> ... I'm sure there are
other examples, though ...)
>Anyway, to get this particular thread started, my question is: What is
>a precise definition fof the term "software" when used in the phrase
>"software developer" and (how) does software relate to databases?
>--dawn
If you will give me three reasons why I should believe that you are
not a troll, I will continue.
--
Bob Hairgrove
NoSpam...@Home.com
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.
> 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.
> 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.
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? Must software contain functions? 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. Similarly, data is not accessed outside of a
function, although it can remain in tact on secondary storage devices
with no functions operating at the time (as can software).
> Some programming languages aren't
> organized around functions. Assembly, say.
although you could definitely call those instructions. 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?
Thanks. --dawn
>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?
You seem to be trying to make a distinction between "data" and
"software". I think this will ultimately lead you astray. Software is
always data!
>Must software contain functions? 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. Similarly, data is not accessed outside of a
>function, although it can remain in tact on secondary storage devices
>with no functions operating at the time (as can software).
>
>> Some programming languages aren't
>> organized around functions. Assembly, say.
>
>although you could definitely call those instructions. 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?
"Data" can be anything, even outside of a computer. However, once it
is specified to be "information that can be accessed electronically",
you are forced to make certain assupmtions about the data:
(1) It occupies an area of storage of non-zero bytes in some form of
electronic media (at least WRT computers);
(2) The format in which this data is stored can be "understood" (i.e.,
read and written) by some program in electronic form which runs under
some operating system on at least one kind of hardware and/or
networked system;
(3) Programs are also data (always!) because they satisfy (1) and (2)
above. The only difference is when this data becomes an executable
program -- only because it is meaningful for the operating system on
which it is deployed under a certain specific context. If it is not
meaningful in the context of an executable program for whatever
operating system on which it is deployed, then it is just data in some
format which needs yet another program to interpret it.
--
Bob Hairgrove
NoSpam...@Home.com
> Anyway, to get this particular thread started, my question is: What is
> a precise definition fof the term "software" when used in the phrase
> "software developer" and (how) does software relate to databases?
A software developer is a person capable of arranging a collection of
ones and zeroes in such a way as to bend a thinking stone to obey his
will.
That definition may be indistinguishable from ye lores of olden, but yet
it is the plaine truthe.
--
Leif Biberg Kristensen
http://solumslekt.org/
That is my thinking as well. But then I get to the term "software
developer" which someone then pointed out would make a "data entry"
person a software developer, perhaps? Is there a distinction between a
software developer and a data entry clerk?
>
> >Must software contain functions? 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. Similarly, data is not accessed outside of a
> >function, although it can remain in tact on secondary storage devices
> >with no functions operating at the time (as can software).
> >
> >> Some programming languages aren't
> >> organized around functions. Assembly, say.
> >
> >although you could definitely call those instructions. 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?
>
> "Data" can be anything, even outside of a computer.
Yes, but I'm interested in data as in "data processing" and related to
computers, but point taken.
> However, once it
> is specified to be "information that can be accessed electronically",
> you are forced to make certain assupmtions about the data:
>
> (1) It occupies an area of storage of non-zero bytes in some form of
> electronic media (at least WRT computers);
>
> (2) The format in which this data is stored can be "understood" (i.e.,
> read and written) by some program in electronic form which runs under
> some operating system on at least one kind of hardware and/or
> networked system;
>
> (3) Programs are also data (always!)
agreed
> because they satisfy (1) and (2)
> above. The only difference is when this data becomes an executable
> program -- only because it is meaningful for the operating system on
> which it is deployed under a certain specific context.
Yes, it serves as input
> If it is not
> meaningful in the context of an executable program for whatever
> operating system on which it is deployed, then it is just data in some
> format which needs yet another program to interpret it.
>
> --
> Bob Hairgrove
> NoSpam...@Home.com
Thanks. --dawn
Yes, I agree.
> And another question: Was there software before databases? Again, I
> think most people here would agree that databases, as we know them,
> are a very specific application of software, albeit rich in variety
> ... but there is certainly software out there which isn't database
> software (e.g., Microsoft Access? <g,d,rlh> ... I'm sure there are
> other examples, though ...)
>
> >Anyway, to get this particular thread started, my question is: What is
> >a precise definition fof the term "software" when used in the phrase
> >"software developer" and (how) does software relate to databases?
> >--dawn
>
> If you will give me three reasons why I should believe that you are
> not a troll, I will continue.
I've been on cdt for a couple of years, Bob, and I am not a troll. I
have been studying the relational model and have worked with
hierarchical, relational, and MultiValue (di-graphs of trees, if you
like) databases in my career. You can read my blog at
http://www.tincat-group.com/mewsings Cheers! --dawn
> --
> Bob Hairgrove
> NoSpam...@Home.com
Try 1.
At one time ideally machines did what they were designed to do, in one
predefined way. One specific purpose.
Enter the stored program and the (more) general purpose machine.
By loading a different program, the machine
does something different, e.g. weaving fabric in a different pattern.
That which is loaded to make the machine do something else (or something
at all) is software: instructions and data.
To a loader mechanism, even the instructions are processed as data.
To the program executing the instructions there are two
inputstreams to be distinguished: instructions, leading to operations,
and data, the stuff to operate on.
And too generic. Functions may well be implemented in hardware.
SO the answer to "are these characters instructions or data?" depends
on context - more specifically: it depends on which mechanism we
are discussing.
> 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? Must software contain functions? 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. Similarly, data is not accessed outside of a
> function, although it can remain in tact on secondary storage devices
> with no functions operating at the time (as can software).
>
>
>>Some programming languages aren't
>>organized around functions. Assembly, say.
>
>
> although you could definitely call those instructions. 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?
Reiterating: Which mechanism are you talking about?
Source automation activities of software developers
help extinguish data entry as a separate job without endangering
software development as a separate job.
[snip]
:-)
> Anyway, to get this particular thread started, my question is: What is
> a precise definition fof the term "software" when used in the phrase
> "software developer" and (how) does software relate to databases?
How about this? Software is the part of an information system that is not
hardware.
Now all you have to do is define "information system" and "hardware".
Best definition so far. +1 bonus points for coming up with such
a definition while being named "Leif."
Marshall, whose new job definition is "bends a thinking stone to obey
his will"
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
Leif B. Kristensen wrote:
> A software developer is a person capable of arranging a collection of
> ones and zeroes in such a way as to bend a thinking stone to obey his
> will.
simply brilliant.
Leif B. Kristensen wrote:
> A software developer is a person capable of arranging a collection of
> ones and zeroes in such a way as to bend a thinking stone to obey his
> will.
simply brilliant.
It was entertaining to google "... is a person":
A mathematician is a person who says that, when 3 people are supposed
to be in a room but 5 came out, 2 have to go in so the room gets
empty...
A computer scientist is a person who dies in the shower because he read
the instructions
on the shampoo bottle: "Lather, rinse, repeat."
Close, but since they don't direct order the 1's and 0's, it doesn't
have the same ring, but perhaps:
A software developer is a person capable of causing 0's and 1's to be
ordered in such a way as to bend a thinking stone to obey their will.
[Using the singular form of the pronoun "their" for gender-neutral
English.]
Of course then we might have to define "thinking" ;-)
> That definition may be indistinguishable from ye lores of olden, but yet
> it is the plaine truthe.
This would make a "data entry person" a software developer by
definition, right? Perhaps we can add an intent phrase, although I'm
not sure that changes it sufficiently:
A software developer is a person who intentionally causes 0's and 1's
to be ordered in such a way as to bend a thinking stone to obey their
will.
Cheers! --dawn
>Of course then we might have to define "thinking" ;-)
Yep ... just another troll.
>> That definition may be indistinguishable from ye lores of olden, but yet
>> it is the plaine truthe.
>
>This would make a "data entry person" a software developer by
>definition, right? Perhaps we can add an intent phrase, although I'm
>not sure that changes it sufficiently:
>
>A software developer is a person who intentionally causes 0's and 1's
>to be ordered in such a way as to bend a thinking stone to obey their
>will.
Yep ... just another troll.
--
Bob Hairgrove
NoSpam...@Home.com
Marshall, David, x, JOG, Frank, mAsterdam, other fine folks... Could
anyone let Bob know I'm not a troll. Fabian Pascal calls me stupid and
ignorant, but not (so far) a troll. We all have our limits and I don't
take kindly to being told I'm not welcome in the discussion. Thanks.
--dawn
Dawn is certainly not trolling. Disagreement is common on these boards,
in fact, that is part of their charm. I find her posts both
entertaining and polite even when I do not agree with their contents,
and she has made far more contribution than I to comp.theory.database
as the archives show. Nuff said.
Bob,
I'm not sure what you're trying to do here. But you're not coming
across
very well. I may not agree with Dawn on a number of subjects, but
she's certainly established herself as a legitimate member of the round
table, and in point of fact, you have not. Dawn's post outnumber yours
by well over 10:1, and go back some years.
A statement like "If you will give me three reasons why I should
believe
that you are not a troll, I will continue", directed at a polite member
of
the society in good standing, by a relative newcomer, in an otherwise
polite thread, does nothing to impress that your intentions are good;
quite the opposite in fact. As it stands, your negative contributions
here outweigh your positive ones.
If you care about being perceived as someone who wants in good
faith to converse on technical subjects, you might wish to consider
a course change. If you don't like someone's ideas, attack the ideas,
not the person.
Marshall
Mr. Bennet saw that her whole heart was in the subject; and
affectionately taking her hand, said in reply,
``Do not make yourself uneasy, my love. Wherever you and Jane are
known, you must be respected and valued; and you will not appear to
less advantage for having a couple of -- or I may say, three -- very
silly sisters. We shall have no peace at Longbourn if Lydia does not go
to Brighton. Let her go then. Colonel Forster is a sensible man, and
will keep her out of any real mischief; and she is luckily too poor to
be an object of prey to any body. At Brighton she will be of less
importance, even as a common flirt, than she has been here. The
officers will find women better worth their notice. Let us hope,
therefore, that her being there may teach her her own insignificance.
At any rate, she cannot grow many degrees worse without authorizing us
to lock her up for the rest of her life.''
Marshall
I don't think an intent clause is necessary. A data entry person isn't
authoring anything. It is the difference between a typist and an
author.
Note that the fact that a software developer uses a keyboard is
incidental, the same way that an author's use of a keyboard is
incidental. You can write both software and novels with a pen
and a pad of paper; the fact that these aren't the usual final
form is irrelevant.
Marshall
> > Yep ... just another troll.
>
> Marshall, David, x, JOG, Frank, mAsterdam, other fine folks... Could
> anyone let Bob know I'm not a troll. Fabian Pascal calls me stupid and
> ignorant, but not (so far) a troll. We all have our limits and I don't
> take kindly to being told I'm not welcome in the discussion. Thanks.
> --dawn
It is not clear to me what is a troll :-)
troll [2] (trohl) n.
1. (in Scandinavian folklore) any of a race
of supernatural beings, usu. hostile to
humans, who live underground or in caves.
[1610-20; < ON troll demon]
Upon this definition aren't we all :-) (with the exception of a few poor
souls here)
> [Using the singular form of the pronoun "their" for gender-neutral
> English.]
That depends on what you mean by "ordered".
> Of course then we might have to define "thinking" ;-)
If a stone can think it is still a stone ? ;-)
http://en.wikipedia.org/wiki/Automata_theory
What happens when one encode the state diagram into some memory ?
What happens when one interconnects lots of those ?
What happens when one encode the interconnection scheme into some memory ?
See this:
http://en.wikipedia.org/wiki/John_von_Neumann
http://en.wikipedia.org/wiki/Von_Neumann_architecture
http://en.wikipedia.org/wiki/Turing_machine
http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
http://www.fourmilab.ch/autofile/www/chapter2_75.html
http://en.wikipedia.org/wiki/Cellular_automaton
http://en.wikipedia.org/wiki/Universal_Constructor
http://en.wikipedia.org/wiki/Codd's_Cellular_Automaton
http://www.cellmatrix.com/entryway/entryway/core.html
http://www.colorado.edu/physics/2000/schroedinger/index.html
http://en.wikipedia.org/wiki/Interference
http://www.umich.edu/~newsinfo/Releases/2000/Jan00/r012000b.html
http://www.physorg.com/news2227.html
http://www.quantop.nbi.dk/cell_exp/quant_memory.html
http://www.techspot.com/news/20165-university-of-michigan-develops-quantum-processor.html
http://www.trnmag.com/Stories/2004/071404/Quantum_crypto_network_debuts_071404.html
http://www.primidi.com/2004/07/14.html
http://lists.elistx.com/archives/interesting-people/200306/msg00055.html
http://www.bbn.com/News_and_Events/Press_Releases/05_06_01.html
http://www.theregister.co.uk/2006/01/11/atom_chip_at_ces/
http://www.theregister.co.uk/2005/02/07/hvd_alliance_founded/
http://cam.qubit.org/wiki/index.php/Main_Page
> > That definition may be indistinguishable from ye lores of olden, but yet
> > it is the plaine truthe.
>
> This would make a "data entry person" a software developer by
> definition, right? Perhaps we can add an intent phrase, although I'm
> not sure that changes it sufficiently:
> A software developer is a person who intentionally causes 0's and 1's
> to be ordered in such a way as to bend a thinking stone to obey their
> will.
How can you tell a data entry person from a software entry person ? :-)
Excellent !! :-)
I think the software is more like a spell casted on a bunch of pebbles to
make them sing, dance and kick.
I don't visit this group often, and certainly do not contribute much,
but I certainly don't "troll" for fish either.
Todd
Perhaps we have to define the word "define" :)
>
> If a stone can think it is still a stone ? ;-)
What happens if a stone thinks it's a gem, or suddenly turns into a
marble? Sorry, couldn't resist :)
How can you tell an artist from a copy machine? I think that's what
you're saying, and I agree with you x, and I think I can answer that.
To be a good lumberjack, you would probably have to have clout with
your fellows, possibly a reputation, dust in your ears, sand on your
clothes, and a good bedroll. You then talk like a duck, and walk like
a duck, and for me, you probably are a duck -- to make an analogy.
Dawn, with all due respect, I don't think a "software developer" is
something you can nail down, for better or worse. And maybe that's
part of what's on your mind (among other things, of course :). The
data about who is a "developer" can't be nailed down, or then maybe you
don't like nailed down thinking anymore (which, as it happens, the RM
model seems to ascribe to).
In any case, you are pretty good at stirring up some interesting
conversation.
Todd
Oooooo, I like that. smiles. --dawn
Laughing. It is good to see that the liberal arts are alive and well.
smiles. --dawn
> Marshall, David, x, JOG, Frank, mAsterdam, other fine folks... Could
> anyone let Bob know I'm not a troll.
Hi Dawn :-)
Sure. Which Bob?
I think JOG and Marshall covered it. Thanks to all.
Signed --damsel in distress? (I just wanted to cut this off before it
became a Bob B re-run)
I see my previous response didn't answer your question. It was Bob
Hairgrove.
Cheers! --dawn
I resemble that remark!!!
Cheers Frank.
The word "arranging" carries the idea of "ordering" implicitly.
The phrase "obey his will" carries the idea of "intent" fairly explicitly.
> my question is: What is
> a precise definition for the term "software" when used in the phrase
> "software developer" and (how) does software relate to databases?
Data and software are like ying and yang: one is totally
useless without the other and it is pointless developing a
theory of one without sufficient scope to include the other.
Stored procedures written in SQL and stored in a database
must certainly satisfy the condition of being "software".
Under the current standard RM which is a data-centric
model of 30 years ago, there exists no relationship whatsoever
between software and data.
We suggest that theory needs to be evolved otherwise:
http://www.mountainman.com.au/software/Theory_of_Organizational_Intelligence.htm
--
Pete Brown
www.mountainman.com.au