/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to doc/deadly-sins.txt

  • Committer: Martin Pool
  • Date: 2005-06-27 01:36:22 UTC
  • Revision ID: mbp@sourcefrog.net-20050627013622-0d56be3e3105043e
Merge from aaron:

------------------------------------------------------------
revno: 763
committer: Aaron Bentley <abentley@panoramicfeedback.com>
timestamp: Thu 2005-06-23 17:30:28 -0400
message:
  Copy files in immutable stores directly.
------------------------------------------------------------
revno: 762
committer: Aaron Bentley <abentley@panoramicfeedback.com>
timestamp: Thu 2005-06-23 16:12:33 -0400
message:
  Fixed direct call of get_url in RemoteBranch.get_revision
------------------------------------------------------------
revno: 761
committer: Aaron Bentley <abentley@panoramicfeedback.com>
timestamp: Thu 2005-06-23 12:00:31 -0400
message:
  Added prefetch support to update_revisions
------------------------------------------------------------
revno: 760
committer: Aaron Bentley <abentley@panoramicfeedback.com>
timestamp: Thu 2005-06-23 11:57:54 -0400
message:
  Added cache support to branch and pull
------------------------------------------------------------
revno: 759
committer: Aaron Bentley <abentley@panoramicfeedback.com>
timestamp: Thu 2005-06-23 11:21:37 -0400
message:
  Added find_cached_branch to branch
------------------------------------------------------------
revno: 758
committer: Aaron Bentley <abentley@panoramicfeedback.com>
timestamp: Thu 2005-06-23 11:17:10 -0400
message:
  Added CachedStore type to reduce remote downloads

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
**************************
 
2
Deadly sins in tool design
 
3
**************************
 
4
 
 
5
http://gcc.gnu.org/wiki/DeadlySins
 
6
 
 
7
They don't directly apply, but many do correspond.
 
8
 
 
9
  The "Deadly Sins" from P. J. Brown's *Writing Interactive Compilers and Interpreters*, Wiley 1979. We've committed them all at least once in GCC.
 
10
 
 
11
  The deadly sins are:
 
12
 
 
13
  1. to code before you think.
 
14
 
 
15
  2. to assume the user has all the knowledge the compiler writer has.
 
16
 
 
17
  3. to not write proper documentation.
 
18
 
 
19
  4. to ignore language standards.
 
20
 
 
21
  5. to treat error diagnosis as an afterthought.
 
22
 
 
23
  6. to equate the unlikely with the impossible.
 
24
 
 
25
  7. to make the encoding of the compiler dependent on its data formats.
 
26
 
 
27
  8. to use numbers for objects that are not numbers.
 
28
 
 
29
  9. to pretend you are catering to everyone at the same time.
 
30
 
 
31
  10. to have no strategy for processing break-ins.
 
32
 
 
33
      (A break-in is when you interrupt an interactive compiler, and
 
34
      then possibly continue it later. This is meaningful in an
 
35
      environment in which the compiler is run dynamically, such as
 
36
      many LISP and some BASIC environments. It is not meaningful for
 
37
      typical uses of C/C++ (although there was at least one
 
38
      interactive C environment, from Sabre).)
 
39
 
 
40
      (Perhaps this corresponds to handling user interrupts during
 
41
      operation -- they should not leave anything in an inconsistent
 
42
      state.)
 
43
 
 
44
  11. to rate the beauty of mathematics above the usability of your
 
45
      compiler.
 
46
 
 
47
  12. to let any error go undetected.
 
48
 
 
49
  13. to leave users to find the errors in your compiler.
 
50