Deadly sins in tool design

Смертные грехи в разработке инструментальных средств

Дата: 21 декабря 2005
Обновлено:22 декабря 2005
Перевод:Бельченко Александр
Спасибо:littlebreath за советы

Взято отсюда: http://gcc.gnu.org/wiki/DeadlySins

"Deadly Sins" из книги P. J. Brown's Writing Interactive Compilers and Interpreters, Wiley 1979.

  1. to code before you think.

    Сначала кодировать, потом думать.

  2. to assume the user has all the knowledge the compiler writer has.

    Предполагать, будто пользователь знает столько же, сколько и писатель компилятора.

  3. to not write proper documentation.

    Не писать надлежащую документацию.

  4. to ignore language standards.

    Игнорировать стандарты языка программирования.

  5. to treat error diagnosis as an afterthought.

    Считать диагностику ошибок делом десятым.

  6. to equate the unlikely with the impossible.

    Приравнивать маловероятное к невозможному.

  7. to make the encoding of the compiler dependent on its data formats.

    Делать кодировку компилятора зависящей от формата его данных.

  8. to use numbers for objects that are not numbers.

    Использовать числа для объектов, которые числами не являются.

  9. to pretend you are catering to everyone at the same time.

    Пытаться угодить всем сразу.

  10. to have no strategy for processing break-ins.

    Не иметь стратегии для обработки временной приостановки работы.

    (A break-in is when you interrupt an interactive compiler, and then possibly continue it later. This is meaningful in an environment in which the compiler is run dynamically, such as many LISP and some BASIC environments. It is not meaningful for typical uses of C/C++ (although there was at least one interactive C environment, from Sabre).)

  11. to rate the beauty of mathematics above the usability of your compiler.

    Ценить красоту математики выше удобства использования компилятора.

  12. to let any error go undetected.

    Позволять ошибкам оставаться незамеченными.

  13. to leave users to find the errors in your compiler.

    Перекладывать на плечи пользователей поиск ошибок в вашем компиляторе.