• Авторизация


Эпиграммы о программировании 15-10-2009 23:30 к комментариям - к полной версии - понравилось!


Феномены, окружающие компьютеры, разнообразны, и дают удивительно богатую базу метафор об индивидуальных и групповых действиях. С другой стороны, обычный человек предоставляет неиссякаемый источник метафор для тех из нас, кто тесно связан с расчетами. Такие взаимоотношения между обществом и устройством не новы, но невероятный рост влияния компьютеров (как реальный, так и предполагаемый) предоставляет этой симбиотической зависимости жизнеспособность, как хулиганистая молодежь вырастающая из одежды во время бесконечного созревания.

Эти эпиграммы следуют попытке охватить некоторые измерения этого потока воображения, заостряют, фокусируют, очищают, расширяют и проясняют наш взгляд на наиболее примечательное из всех человеческих изобретений — компьютер.

Что для одного константа, для другого — переменная.

Функции откладывают связывание, структуры данных к нему приводят. Мораль: в процессе программирования структурируйте данные попозже.

Синтаксический сахар вызывает рак точек с запятой.

Каждая программа это часть другой программы, обычно — не подходящая часть.

Если программа манипулирует большими объёмами данных, она делает это малым количеством способов.

Симметрия уменьшает сложность (надпрограммы включают подпрограммы). Ищите её везде.

Проще написать неправильную программу, чем понять правильную.

Язык программирования является низкоуровневым, когда написание программы на нём требует внимания к незначительному.

Лучше 100 функций, оперирующих одной структурой данных, чем 10 функций, оперирующие десятью структурами.

Возьмите следующий совет за привычку как можно скорее: делайте одинаковые процессы одинаково. Аккумулируйте идиомы. Стандартизируйте. Единственное различие (!) между Шекспиром и вами в том, что размер его списка идиом не равнялся размеру его словарного запаса.

Если у вас есть функция, принимающая 10 параметров, возможно, вы что-то упустили.

Рекурсия есть корень компьютерной науки, поскольку она жертвует описанием ради времени.

Если два человека напишут абсолютно одинаковые программы, после компиляции они таковыми не будут.

В процессе длительной разработки любая программа сначала становится пышной и вычурной, а потом обращается в руины.

Всё должно строиться сверху-вниз, кроме построек "на первое время".

У каждой программы есть (как минимум) два назначения: первое — для чего она пишется и второе — для чего нет.

Если слушатель кивает головой, когда вы ему объясняете свою программу, разбудите его.

Программа без циклов и структурированных переменных не стоит написания.

Язык, который не изменит то, как вы размышляете о программировании, не стоит знания.

Везде где есть модульность, есть потенциальная возможность неверного понимания: сокрытие информации вызывает необходимость проверять взаимодействие.

Оптимизация затрудняет развитие.

У хорошей системы не может быть слабого скриптового языка.

Чтобы понять программу, вы должны стать одновременно и машиной, и программой.

Возможно, если бы мы писали программы с детства, то взрослыми были бы способны их читать.

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

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

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

При разработке тяжело найти адекватный отрезок времени для измерения прогресса. Некоторые соборы строились столетиями. Можете ли вы представить себе грандиозность и возможности программы, разработка которой заняла бы столько времени?

Для систем, аналогом подтяжки лица, будет добавление в управляющий граф ребра, которое создаёт цикл, а не просто дополнительного узла.

В программировании, всё что мы делаем, это особый случай чего-то более общего, — и зачастую мы узнаём это слишком быстро.

Простота не предшествует сложности, а следует за ней.

О программистах стоит судить не по их изобретательности и логике, а по полноте их анализа прецедентов.

Одиннадцатой заповедью было "Вычисляй!" или "Не вычисляй!" — я забыл, что из двух.

Строка это застывшая структура данных, и везде где она передаётся, много дупликации процесса. Это превосходное средство для сокрытия информации.

Каждого можно научить ваянию: Микеланджело нужно было бы учить как этого не делать. Так и с великими программистами.

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

Наиболее важный компьютер — это тот, который безумствует в нашем черепе, и всегда ищет тот удовлетворительный внешний эмулятор. Стандартизация реальных ("биологических" — прим переводчиков) компьютеров была бы катастрофой — и поэтому, вероятно, не произойдёт.

Структурное программирование поддерживает закон исключенной путаницы.

О графике: изображение стоит 10К слов — но только тех, которые его описывают. Вряд ли какой-либо набор 10К слов может быть адекватно описан изображениями.

Есть только два способа писать безошибочные программы; из них работает только третий.

Некоторые языки программирования умудряются впитывать изменения, но противостоять прогрессу.

Вы можете измерять перспективность программиста, следя за его отношением к долгоживучести ФОРТРАНА.

В программных системах, зачастую именно ранняя пташка и создаёт червяка.

Иногда мне кажется, что единственная универсальная вещь в области компьютеризации — это цикл "получить-выполнить".

Цель компьютеризации — эмуляция наших способностей к синтезу, а не понимание наших способностей к анализу.

Подобно каламбуру, программирование — это игра слов.

Как сказал бы Вилл Роджерс, "Нет такой вещи, как свободная переменная".

Лучшая книга по программированию для неспециалиста — это "Алиса в Стране Чудес"; но только потому что она вообще самая лучшая книга о чем либо для неспециалиста.

Отказ от ассемблера был яблоком в нашем Эдемском Саду: языки, которые расточительно используют циклы машинного времени — греховны. ЛИСП-машина теперь позволяет программистам отказаться от лифчиков и фиговых листков.

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

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

Системы состоят из подсистем, и подсистемы состоят из подсистем, и так далее до бесконечности, и именно поэтому мы всегда начинаем сначала.

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

Берегитесь смоляной ямы Тюринга, где всё возможно, но ничто полезное нельзя сделать легко.

ЛИСП-программист знает значение всего, но не знает стоимости вызова чего-либо.

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

Проще подогнать спецификацию под программу, чем наоборот.

Дураки игнорируют сложность. Прагматики страдают от сложности. Кому-то удаётся избежать сложности. Гении от сложности избавляются.

В английском из любого слова можно сделать глагол. Если бы так было и в наших языках программирования.

Дана Скотт — это Церковь Святых Тернистого Пути.

В программировании, как и во всём другом, совершить ошибку значит переродиться.

В вычислительной технике, инварианты эфемерны.

Когда мы пишем программы, которые "учатся", оказывается, что учимся мы, а не они.

Часто это значит что оправдания заканчиваются: цели продвигают технику, а техника выживает даже если структура целей терпит крах.

Не заблуждайтесь: Компьютеры оперируют числами, не символами. Мы можем измерить наше понимание (и контроль) только в той мере, в которой мы можем подсчитать активность.

Сделать что-то изменяемым легко. Фокус в том чтобы управлять длительностью постоянства.

Подумайте о всей той психической энергии, потраченной на поиски фундаментального различия между "алгоритмом" и "программой".

Если мы верим в структуры данных, мы должны верить и в независимую (следовательно, одновременную) обработку. Для чего же ещё тогда мы собираем объекты в структуры? Почему мы терпимы к языкам, которые дают нам одно без другого?

За период в 5 лет мы получаем один великолепный язык программирования. Вот только мы не можем управлять тем, когда этот пятилетний период начнётся.

Веками индейцы разрабатывали знаковое письмо для общения об интересующих феноменах. Программисты из разных племён (ФОРТРАН, ЛИСП, АЛГОЛ, СНОБОЛ и т.д.) могли бы использовать такой, который не требовал бы от них перевозить настенные доски на своих пони.

Документация как срочное страхование: она удовлетворяет всех, потому что практически никто из подписавшихся на нее, не зависит от её выгод.

Адекватная самозагрузка содержит противоречие в самом названии.

Градиентом изменения языка управляют не его слабости, а его сильные стороны: увы, язык никогда не сбежит из своего зародышевого мешка.

Возможно ли, что програмное обеспечение — это что-то совершенно иное, и оно рано или поздно должно быть отбраковано? Если так, тогда нет никакого смысла видеть в нем что-то большее, чем мыльный пузырь.

Из-за своей живучести, область вычислительной техники всегда в безнадёжном поиске новых клише: банальности успокаивают наши нервы.

Именно пользователи должны определять параметры процедур, а не их создатели.

Кибернетический обмен между человеком, компьютером и алгоритмом, похож на игру в стулья с музыкой: неистовый поиск баланса всегда с простотой оставляет одного из трёх стоять больным.

Если ваш компьютер говорит по английски, то скорее всего он сделан в Японии.

Года, потраченного на разработку искусственного интеллекта хватит любому чтобы поверить в Бога.

Продолжительный контакт с компьютером делает математиков клерками, и наоборот.

В компьтеризации, превращение очевидного в полезное — это живое определение слова "расстройство".

Мы на краю: сегодня наша программа доказала следующую после последней теорем Ферма!

Какая разница между машиной Тюринга и современным компьютером? Такая же, как между восхождением Хиллари на Эверест и размещением отеля "Хилтон" на его вершине.

Девиз исследовательской лаборатории: "Мы работаем сегодня над тем, о чем другие впервые подумают только завтра".

Хоть китайцы должны бы боготворить АПЛ, но деньги они вкладывают в ФОРТРАН.

Мы обманываем сами себя, если думаем, что отношение процедур к данным в активной базе данных может быть сколь угодно малым, и удерживаться малым.

У нас есть мини- и микрокомпьютеры. В какую семантическую нишу попадает пикокомпьютер?

Компьютер невиновен в том, что уравнения Максвелла неадекватны для проектирования электрического двигателя.

Нельзя научиться вычислениям, используя калькулятор, но можно забыть арифметику.

Вычисление сделало дерево цветком.

Компьютер напоминает Лона Чейни — это машина с тысячей лиц.

Компьютер - это предельный источник загрязнения. Его испражнения неотличимы от еды, которую он производит.

Когда кто-то говорит "Мне нужен язык программирования, в котором я просто должен сказать что я хочу чтобы он это сделал", дайте ему чупа-чупс.

Интерфейсы поддерживают порядок, но не ускоряют рост — этим занимаются функции.

Не предлагайте хороших идей, если не хотите за них отвечать.

Компьютеры привносят порядок далеко не настолько, насколько открывают возможности.

Когда профессор настаивает, что компьтерные науки это X, но не Y, посочуствуйте его выпускникам.

В вычислительное технике среднее время до сбоя становится всё короче.

В человеко-машинном симбиозе, приспосабливаться должен человек: машины не могут.

У нас никогда не будет нехватки задач для программирования, пока будет существовать хоть одна программа.

Разобраться со сбоем просто: упорно работайте над улучшением. Успех столь же прост: вы решили не ту проблему. Упорно работайте над улучшением.

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

Чисто прикладные языки плохо приложимы.

Доказательством ценности системы есть её существование.

Вы не можете совладать со сложность, вы можете только знать о ней.

Трудно извлечь смысл из строк, но это единственное средство общения, на которое мы можем расчитывать.

Яростные споры продолжаются: PL/I — это двугорбый или одногорбый верблюд?

Когда два программиста встречаются покритиковать свои программы, оба молчат.

Только подумайте! Используя СБИС мы можем упаковать 100 ЭНИАКов на 1кв.см.

Редактирование — это акт перефразирования.

Почему рухнула Римская Империя? А какая роль латыни в автоматизации офиса?

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

Единственная конструктивная теория соединяющая нейробиологию и психологию возникнет из изучения программного обеспечения.

В компьютере естественные языки неестественны.

Большинство считает концепцию программирования очевидной, но исполнение невозможным.

Вы предполагаете, что знаете, когда учитесь, уверены в этом - когда пишете, более уверены - когда преподаете, но убеждены в этом на 100% только когда программируете.

Это противоречит современной системе обучения — учить детей программировать. Разве это весело планировать, быть дисциплинированным при организации мышления, целиком уделять внимание деталям и учиться быть самокритичным?

Если вы можете вообразить общество, в котором компьютерные роботы — единственные рабы, то вы можете вообразить всё что угодно.

Программирование — это противоестественное действие.

Адаптация старых программ к новым машинам обычно значит адаптацию новых машин, чтобы они вели себя как старые.

В поисках недостижимого, простота только мешает.

Если есть эпиграммы, должны быть метаэпиграммы.

Эпиграммы — это своеобразный интерфейс, с помощью которого передается признательность и проницательность.

Эпиграммы параметризируют ауры.

Эпиграммы — это макросы, потому что выполняются во время чтения.

Эпиграммы кристаллизируют несоответствия.

Эпиграммы извлекают глубокий смысл из базы данных, которая состоит только из процедур.

Эпиграммы презирают детали и извлекают суть: они являются великолепной высокоуровневой документацией.

Эпиграмы больше витамины, чем белки.

У эпиграмм крайне низкая энтропия.

Последняя эпиграмма? Не ешьте и не пейте их, вдохните эпиграммы.

http://translated.by/you/epigrams-on-programming/into-ru/

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Эпиграммы о программировании | Leith - mirrors... | Лента друзей Leith / Полная версия Добавить в друзья Страницы: раньше»