Merge pull request #4668 from adamscott/template-pool-to-scons_pool
[scons.git] / doc / design / bground.xml
blob0bb5b5e4487b1e51aaa5a94331c1bb2d8270fbac
1 <?xml version='1.0'?>
2 <!DOCTYPE sconsdoc [
3     <!ENTITY % scons SYSTEM "../scons.mod">
4     %scons;
5 ]>
7 <chapter id="chap-background"
8          xmlns="http://www.scons.org/dbxsd/v1.0"
9          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10          xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
11 <title>Background</title>
13 <!--
15   __COPYRIGHT__
17   Permission is hereby granted, free of charge, to any person obtaining
18   a copy of this software and associated documentation files (the
19   "Software"), to deal in the Software without restriction, including
20   without limitation the rights to use, copy, modify, merge, publish,
21   distribute, sublicense, and/or sell copies of the Software, and to
22   permit persons to whom the Software is furnished to do so, subject to
23   the following conditions:
25   The above copyright notice and this permission notice shall be included
26   in all copies or substantial portions of the Software.
28   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
29   KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
30   WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32   LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33   OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34   WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
36 -->
38  <para>
40   Most of the ideas in &SCons; originate with &Cons;, a Perl-based
41   software construction utility that has been in use by a small but
42   growing community since its development by Bob Sidebotham at FORE
43   Systems in 1996.  The &Cons; copyright was transferred in 2000 from
44   Marconi (who purchased FORE Systems) to the Free Software Foundation.
45   I've been a principal implementer and maintainer of &Cons; for several
46   years.
48  </para>
50  <para>
52   &Cons; was originally designed to handle complicated software build
53   problems (multiple directories, variant builds) while keeping the
54   input files simple and maintainable. The general philosophy is that
55   the build tool should ``do the right thing'' with minimal input
56   from an unsophisticated user, while still providing a rich set of
57   underlying functionality for more complicated software construction
58   tasks needed by experts.
60  </para>
62  <para>
64   In 2000, the Software Carpentry sought entries in a contest for a
65   new, Python-based build tool that would provide an improvement
66   over Make for physical scientists and other non-programmers
67   struggling to use their computers more effectively.  Prior to that,
68   the idea of combining the superior build architecture of &Cons;
69   with the easier syntax of Python had come up several times on
70   the <literal>cons-discuss</literal> mailing list.  The Software
71   Carpentry contest provided the right motivation to spend some
72   actual time working on a design document.
74  </para>
76  <para>
78   After two rounds of competition, the submitted design, named
79   <application>ScCons</application>, won the competition.  Software
80   Carpentry, however, did not immediately fund implementation of the
81   build tool, instead contracting for additional, more detailed draft(s)
82   of the design document.  This proved to be not as strong motivation as
83   actual coding, and after several months of inactivity, I essentially
84   resigned from the Software Carpentry effort in early 2001 to start
85   working on the tool independently.
87  </para>
89  <para>
91   After half a year of prototyping some of the important infrastructure,
92   I accumulated enough code to take the project public at SourceForge,
93   renaming it &SCons; to distinguish it slightly from the version of the
94   design that won the Software Carpentry contest while still honoring
95   its roots there and in the original &Cons; utility.  And also because
96   it would be a teensy bit easier to type.
98  </para>
100 </chapter>