summaryrefslogtreecommitdiff
path: root/docs/src/common/userforeword_es.txt
blob: f0e73a5118ec0f8832584044e1133e7e610ead32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
= User Foreword

[[cha:user-foreword]] (((User Foreword)))

////
ATTENTION TRANSLATORS before translating this document copy the base document
into this copy to get the latest version. Untranslated documents are not kept
up to date with the English documents. 

Do not translate anchors or links, translate only the text of a link after the
comma.
Anchor [[anchor-name]]
Link <<anchor-name,text after the comma can be translated>>

Make sure the documents build after translating.
////


LinuxCNC is modular and flexible. These attributes lead many to see it as
a confusing jumble of little things and wonder why it is the way it is.
This page attempts to answer that question before you get into the
thick of things.

LinuxCNC started at the National Institute of Standards and Technology in
the USA. It grew up using Unix as its operating system. Unix made it
different. Among early Unix developers there grew a set of code writing
ideas that some call the Unix way. These early LinuxCNC authors followed
those ways.

Eric S. Raymond, in his book The Art of Unix Programming, summarizes
the Unix philosophy as the widely-used engineering philosophy, "Keep it
Simple, Stupid" (KISS Principle). He then describes how he believes
this overall philosophy is applied as a cultural Unix norm, although
unsurprisingly it is not difficult to find severe violations of most of
the following in actual Unix practice:

* Rule of Modularity: Write simple parts connected by clean interfaces.

* Rule of Clarity: Clarity is better than cleverness.

* Rule of Composition: Design programs to be connected to other programs.

* Rule of Separation: Separate policy from mechanism; separate
    interfaces from engines.footnote:[Found at
    http://en.wikipedia.org/wiki/Unix_philosophy, 07/06/2008]

Mr. Raymond offered several more rules but these four describe
essential characteristics of the LinuxCNC motion control system.

The *Modularity* rule is critical. Throughout these handbooks you
will find talk of
the interpreter or task planner or motion or HAL. Each of these is a
module or collection of modules. It's modularity that allows you to
connect together just the parts you need to run your machine.

The *Clarity* rule is essential. LinuxCNC is a work in progress -- it is
not finished
nor will it ever be. It is complete enough to run most of the machines
we want it to run. Much of that progress is achieved because many users
and code developers are able to look at the work of others and build on
what they have done.

The *Composition* rule allows us to build a predictable control
system from the many
modules available by making them connectable. We achieve connectability
by setting up standard interfaces to sets of modules and following
those standards.

The *Separation* rule requires that we make distinct parts that do
little things. By
separating functions debugging is much easier and replacement modules
can be dropped into the system and comparisons easily made.

What does the Unix way mean for you as a user of LinuxCNC. It means that
you are able to make choices about how you will use the system. Many of
these choices are a part of machine integration, but many also affect
the way you will use your machine. As you read you will find many
places where you will need to make comparisons. Eventually you will
make choices, "I'll use this interface rather than that” or, “I'll
write part offsets this way rather than that way." Throughout these
handbooks we describe the range of abilities currently available.

As you begin your journey into using LinuxCNC we offer two cautionary
notes:footnote:[Found at http://en.wikipedia.org/wiki/Unix_philosophy, 07/06/2008]

 - Paraphrasing the words of Doug Gwyn on UNIX: "LinuxCNC was not designed to
   stop its users from doing stupid things, as that would also stop them
   from doing clever things."
 - Likewise the words of Steven King: "LinuxCNC is user-friendly. It just
   isn't promiscuous about which users it's friendly with."