Об исторической роли суперпрограммирования
в рубрике Peopleware, Методологии, Технологии
Намедни удалось посмотреть 2 лекции одного из создателей STL Александра Степанова. Ощущения описывать не буду, иначе не хватит запаса слов в превосходной степени. Множество важных идей изложены простым и понятным языком - это многого стоит! Но вот одна фраза как-то по-особенному запала мне в душу.
Это, конечно, очень нехорошо, выдергивать цитаты из контекста, но я все-же совершу это святотатство. Вот она:
“Не нужно использовать более общий алгоритм, когда есть специальный более быстрый алгоритм”
Логично. Просто. Банально. Почти аксиома. Ну если немного подумать - ну точно аксиома. Хорошо подумали? Точно? Ок, я вас за извилины не тянул.
У меня есть пост, где я развлекался писанием циклов различной структуры, но делающих одно и то же. Среди прочих, там есть вот такой:
Инд=1;
~М1:Если Инд>ТЗ.КоличествоСтрок() Тогда Перейти ~М2; КонецЕсли;
<Тело цикла>
Инд=Инд+1;
Перейти ~М1;
~М2:
Кто не помнит, этот стиль звался суперпрограммированием, а его апологеты, в свое время, уличались в ереси и принуждались к аутодафе. А вот теперь позвольте контрольный вопрос в голову: не эта ли структура будет являться наиболее быстрой при реализации на машине фон-Неймана? И ведь заметьте, оптимизации не нужно!
Что же за этим последует? А следует то, что функциональное, логическое, структурное, объектно-ориентированное, агентное, контрактное и т.д. стили программирования, а также все языки, на которых реализованы эти стили, а также различные практики программирования, и всякие методологии управления всякими разными аспектами производства ПО и прочая, прочая, прочая существуют только для того, чтобы более или менее удобно писать, переписывать и сопровождать вот такой вот код, и, самое главное - зарабатывать на этом деньги.
Парадокс? Никак нет. Я, признаться, изрядно жульничаю. Привел коротенький и простенький код, а выводы делаю самой широкой обобщенности. Короче, нехорошо поступаю. Но вот что мне кажется действительно важным, так это понимать откуда есть пошло программирование, и примерно куда есть приведет компилятор Ваш грамотный, корректный и эффективный код.
Один комментарий на “Об исторической роли суперпрограммирования”
Прокомментировать
Вы должны быть авторизованы для комментирования.




Сатаров Владимир:
upd для тех, кто видел видео:
Используйте Go To!
Кнута, Евклида - читать!
19 мая, 2010 в 18:27