[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnustandards standards.texi
From: |
Richard M. Stallman |
Subject: |
gnustandards standards.texi |
Date: |
Mon, 12 May 2014 07:24:25 +0000 |
CVSROOT: /sources/gnustandards
Module name: gnustandards
Changes by: Richard M. Stallman <rms> 14/05/12 07:24:25
Modified files:
. : standards.texi
Log message:
(Which Languages to Use): Add Lisp.
(User Interfaces): Explain better about avoiding device-dependence.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnustandards/standards.texi?cvsroot=gnustandards&r1=1.236&r2=1.237
Patches:
Index: standards.texi
===================================================================
RCS file: /sources/gnustandards/gnustandards/standards.texi,v
retrieving revision 1.236
retrieving revision 1.237
diff -u -b -r1.236 -r1.237
--- standards.texi 31 Mar 2014 23:33:36 -0000 1.236
+++ standards.texi 12 May 2014 07:24:25 -0000 1.237
@@ -3,7 +3,7 @@
@setfilename standards.info
@settitle GNU Coding Standards
@c This date is automagically updated when you save this file:
address@hidden lastupdate March 31, 2014
address@hidden lastupdate May 12, 2014
@c %**end of header
@dircategory GNU organization
@@ -295,7 +295,7 @@
make heavy use of templates. So is Java, if you compile it.
When highest efficiency is not required, other languages commonly used
-in the free software community, such as Scheme, Python, Ruby, and
+in the free software community, such as Lisp, Scheme, Python, Ruby, and
Java, are OK too. Scheme, as implemented by address@hidden, plays a
particular role in the GNU System: it is the preferred language to
extend programs written in C/C++, and also a fine language for a wide
@@ -828,22 +828,25 @@
to invoke it. It is useful sometimes to make a link to a utility
with a different name, and that should not change what it does.
-Instead, use a run time option or a compilation switch or both
-to select among the alternate behaviors.
+Instead, use a run time option or a compilation switch or both to
+select among the alternate behaviors. You can also build two versions
+of the program, with different names and different default behaviors.
@cindex output device and program's behavior
-Likewise, please don't make the behavior of the program depend on the
-type of output device it is used with. Device independence is an
-important principle of the system's design; do not compromise it merely
-to save someone from typing an option now and then. (Variation in error
-message syntax when using a terminal is ok, because that is a side issue
-that people do not depend on.)
+Likewise, please don't make the behavior of a command-line program
+depend on the type of output device it gets as standard output or
+standard input. Device independence is an important principle of the
+system's design; do not compromise it merely to save someone from
+typing an option now and then. (Variation in error message syntax
+when using a terminal is ok, because that is a side issue that people
+do not depend on.)
If you think one behavior is most useful when the output is to a
terminal, and another is most useful when the output is a file or a
-pipe, then it is usually best to make the default behavior the one that
-is useful with output to a terminal, and have an option for the other
-behavior.
+pipe, then it is usually best to make the default behavior the one
+that is useful with output to a terminal, and have an option for the
+other behavior. You can also build two different versions of the
+program with different names.
There is an exception for programs whose output in certain cases is
binary data. Sending such output to a terminal is useless and can
- gnustandards standards.texi,
Richard M. Stallman <=