lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Russell Haley <> wrote:

> The mistake is to introduce the term fork where a standard definition
> has existed for a very long time.  Mr. Henrique de Figueiredo mistake
> was to apologize where he was correct. Soni has used a slang term -
> not a definition - for software derivative. Mr.  Henrique de
> Figueiredo pointed to the standardized definition for software
> derivatives when referencing Lua.
> Russ

What term do you mean, Russ? "Software Derivative"?

If so, derivatives are created, either compatible or incompatible with the
original software, through the process of forking.

In this case Luiz was misusing the term "fork" as the term itself makes no
assumptions about the compatibility of the resulting software derivative.
Regardless of whether the resulting code from the fork is compatible or
incompatible with the original software it is the *act* of creating a copy
for independent development that defines a fork, not the compatibility of
the resulting changes.

The key thing here is "independent development" of the original source, if
the code is forked by the original developers that is called a "branch".

Sometimes forks happen when development teams split, sometimes it is just
people like me who take a project and create a fork of my own to hack away
on. Sometimes these derivatives even take over from the original software
from which they were forked, like the X-Window system, for example.

The process of copying source code and then modifying it is to "fork" the
project, and in the process create a derivative of the original software. It
is then up to the original project authors to determine the level of
compatibility with any deriviatives created. In Lua's case derivatives are
considered compatible, and the name Lua may be used, if the semantics of the
language remain unchanged, otherwise it is deemed an incompatible fork and
the name of the language must be changed.

Over at they have "fork" defined as a verb for this subject:

15. Digital Technology. To copy (the source code) from a piece of software
and develop a new version independently, with the result of producing two
unique pieces of software.

I hope this has helped clarify the usage of the term "fork", which has been
around a lot longer than Git[1], and how it relates to software derivatives.


[1] On the Wikipedia page for "Fork (Software Development)"[2] it states that
    the term was used all the way back in 1980 by Eric Allman in relation to
    creating a branch in the SCCS source control system.