Put it in laymen's terms
Forrest J. Cavalier III
mibsoft at mibsoftware.com
Sat Jul 31 17:05:37 UTC 1999
> > Copyright law concerns distributing copies of published works
> > in portion or entirety.
>
> Thanks for the lesson ;).
>
> > Cutting and pasting a function (or even retyping from a book)
> > when writing a program creates a "derived work."
>
> You haven't answered my question. What is a function?
>
> > The GPL says, "this license lets you use the software only if
> > you agree to place the GPL on all derived works."
>
> You're telling me about law again. What is a function? What is a system
> call?
>
Ahh, I see where I misunderstood your question. Almost everyone
on this list has some background of software development, even if they
are not programmers....
I am sorry I answered the wrong question. I recommend taking
an introductory programming course (just a few weeks) to learn
about the nature of software. I'll try to explain function calls in
layman's terms.
A computer program (a.k.a software) is a sequence of actions
for a computer to perform.
Some of the actions in such a sequence are requesting actions by
other software. Making this request is termed a "function
call", or "subroutine call." It is termed a "system call" when
the software being called is part of the operating system.
In layman's terms a "function" can be defined as "software that
is intended to be called by other software."
A "library" is a collection of functions.
The way computer programs are generally written is that there are many
functions in an application, and these functions call other
functions. This is how programs have been written since very
early in computers, going back at least 50 years, and even
earlier depending on how you view things....Organizing software this
way has many advantages, especially in how computer programmers
cooperate to make really large complicated systems.
An operating system (I won't provide a definition) provides functions
that are designed to be called by the programs that run on the
operating system. For example, a word processor
makes calls to system functions ("system calls") in order to read
and write a disk drive. The word processor doesn't itself know
how to read and write the disk drive, it just knows how to ask
("call") the operating system to do it.
Does that help you to understand?
-----------------------------------------------------------------
Now, here is where the law has not "caught up" with virtual
reality....When you actually look at how a computer is implemented,
how it runs software, there is only one physical memory system,
and one physical disk drive, and one physical CPU, etc.
Physically, "installing software," means taking a copyrighted
work, and copying it onto your disk drive. This makes your
disk drive a derived work, by some definitions.
When you load that program into memory, there is an operating
system, and probably other copyrighted programs running at the
same time. That makes the computer's memory a derived work of
all of them, by some definitions.
Programmers don't generally think about what happens on a physical
level (memory, disk, etc.) they think about what happens in terms of
program organization and interrelated function calls. This means
that there are at least two views of the reality of derived works of
software.
Copyright law is supposed to protect the rights of authors, but even
authors do not agree what those rights are, and what activities of
others should be restricted.
If I may say, law is generally quite bad at reconciling independent
and conflicting views of reality. Laws and decisions which please
one group of programmers can infuriate other groups. Neither side is
"right" just different.
The existence of these differing views, and lack of consensus (legal
or otherwise) is why I want to discuss it from an ethical standpoint
(what actions are beneficial or detrimental to whom and why.)
Forrest J. Cavalier III, Mib Software Voice 570-992-8824
The Reuse RKT: Efficient awareness for software reuse: Free WWW site
lists over 6000 of the most popular open source libraries, functions,
and applications. http://www.mibsoftware.com/reuse/
More information about the License-discuss
mailing list