12.05.2018  

Искусство разработки

 

Настоящее искусство программирования состоит в умении задавать компьютеру предельно корректные вопросы, избегая повторения и вставки в 
программу «холостых» неисполняемых команд. Добиться этого трудно. Существует аксиома: «Нет программы, которую нельзя было бы уменьшить 
хотя бы на одну команду». То есть любая, сколь угодно хорошая программа содержит избыточный код.
Алгоритм таков: растопить печь, налить в чайник воды, поставить на огонь, дождаться, когда она закипит, залить кипяток в заварку. А если 
печь уже растоплена и в чайнике есть вода? Тогда алгоритм дорабатывается: вылить воду из чайника, загасить печь, после чего перейти к 
выполнению задачи по первому варианту. Как ни смешно, но именно таким образом легче всего давать команды компьютеру, и поэтому в 
программировании ремесло часто одерживает верх над искусством. А поскольку программирование превратилось в массовую специальность и 
программы всё чаще создаются гигантскими коллективами, то избыточный код становится нормой. При конвейерной работе тон задают 
посредственные программисты, а не гениальные одиночки, которые могут изобрести оптимальный код.

Настоящее искусство программирования состоит в умении задавать компьютеру предельно корректные вопросы, избегая повторения и вставки в программу «холостых» неисполняемых команд. Добиться этого трудно. Существует аксиома: «Нет программы, которую нельзя было бы уменьшить хотя бы на одну команду». То есть любая, сколь угодно хорошая программа содержит избыточный код.Алгоритм таков: растопить печь, налить в чайник воды, поставить на огонь, дождаться, когда она закипит, залить кипяток в заварку.

А если печь уже растоплена и в чайнике есть вода? Тогда алгоритм дорабатывается: вылить воду из чайника, загасить печь, после чего перейти к выполнению задачи по первому варианту. Как ни смешно, но именно таким образом легче всего давать команды компьютеру, и поэтому в программировании ремесло часто одерживает верх над искусством. А поскольку программирование превратилось в массовую специальность и программы всё чаще создаются гигантскими коллективами, то избыточный код становится нормой. При конвейерной работе тон задают посредственные программисты, а не гениальные одиночки, которые могут изобрести оптимальный код.