Перейти к содержанию

Алан Перлис

Материал из Викицитатника
Алан Перлис
Статья в Википедии

Алан Джей Перлис (англ. Alan Jay Perlis; 1922—1990) — американский учёный в области информатики.

Цитаты

[править]
  • То, что для одного человека константа, для другого — переменная.
  • Функции задерживают связь, структуры данных стимулируют связь. Мораль: Структурируйте данные как можно позднее в процессе программирования.
  • Синтаксический сахар вызывает рак точек с запятой.
  • Каждая программа является частью другой программы и редко соответствует ей.
  • Если программа манипулирует большим количеством данных, она делает это лишь несколькими способами.
  • Симметрия представляет собой концепцию, сокращающую сложность(сопрограммы содержат подпрограммы); ищите ее повсюду.
  • Проще написать неправильную программу, чем понять правильную.
  • Язык программирования имеет низкий уровень, если в программах приходится уделять внимание несущественному.
  • Лучше, чтобы в 100 функциях использовалась одна структура данных, чем в 10 функциях — 10 структур.
  • Как можно раньше вступайте на проторенную стезю: Не изменяйте своим привычкам. Накапливайте идиомы. Стандартизируйте. Единственная разница (!) Между Шекспиром и вами состоит не в объеме словаря, а в количестве идиом.
  • Если в вашей процедуре 10 параметров, вероятно, вы что-то упускаете.
  • Рекурсия — основа программирования, поскольку она сокращает время написания программы.
  • Если двое пишут в точности одну и ту же программу, нужно преобразовать каждую в микрокод, и тогда они, конечно, не будут одинаковыми.
  • В конечном счете каждая программа устаревает, как и рококо, а потом и вовсе умирает.
  • Всё нужно проектировать сверху вниз, за исключением фундамента, с которого нужно начинать.
  • У каждой программы (по крайней мере) два назначения: Что она должна делать и чего не должна.
  • Если при объяснении вашей программы слушатель начинает кивать головой, его пора будить.
  • Не стоит писать программу без цикла и структурированной переменной.
  • Не стоит изучать язык, который не меняет вашего представления о программировании.
  • Там, где есть модульность, возможно непонимание: Сокрытие информации предполагает необходимость проверки связи.
  • Оптимизация препятствует эволюции.
  • В хорошей системе не может быть слабого языка команд.
  • Чтобы понять программу, необходимо отождествить себя и с машиной, и с программой.
  • Если бы мы писали программы с детства, то с годами, возможно, научились бы их читать.
  • Мысленно человек может только воспроизвести сложную информацию. Движение, или течение, или изменение перспективы важнее, чем статическое изображение, каким бы красивым оно не было.
  • Мы всегда хотим сказать в своих программах что-то такое, что на всех известных языках можно сказать только плохо.
  • Как только вы поняли, как писать программу, заставьте сделать это кого-нибудь другого.
  • В программировании трудно найти правильную единицу времени для измерения прогресса. Некоторые соборы строились веками. Можно ли вообразить грандиозность и размер программы, на которую затратили столько времени?
  • Для систем аналогом пластической операции является введение в управляющий граф ребра, которое создает цикл, а не просто еще одну вершину.
  • Все, что мы делаем в программировании — это частный случай чего-то более общего, и зачастую мы осознаем это чересчур быстро.
  • Простота не предшествует сложности, а вытекает из нее.
  • Работу программистов следует оценивать не по их изобретательности и логике, а по полноте анализа каждой ситуации.
  • Одиннадцатая заповедь гласит: «Вычисляй» или «не вычисляй» — я уже не помню.
  • Строка — это застывшая структура данных, и повсюду, куда она передается, происходит значительное дублирование процесса. Это идеальное средство для сокрытия информации.
  • Ваять можно научить каждого, но тогда пришлось бы учить Микеланджело, как не делать этого. То же самое — с великими программистами.
  • Использование программы для доказательства теоремы о четырех красках не изменит математики. Оно просто покажет, что задача, которая оставалась нерешенной в течении столетия, возможно, не так уж важна для математики.
  • Самая важная машина та, что «бушует» у нас в голове и все время ищет нужный ей внешний эмулятор. Стандартизация существующих машин была бы катастрофой, и потому она, вероятно, не произойдет.
  • Структурированное программирование подтверждает закон исключённого третьего.
  • Реальная графика: Для описания картинки необходимо 10к слов. Но едва ли можно описать какое-либо множество из 10к слов с помощью картинок.
  • Программы без ошибок можно написать двумя способами, но работает- третий.
  • Некоторые языки программирования допускают изменения, но сопротивляются прогрессу.
  • Перспективность программиста можно оценить, узнав его мнение о жизнеспособности фортрана.
  • В программных системах зачастую «кто рано встает, того удача ждет».
  • Иногда мне кажется, что единственным универсумом в программировании является цикл.
  • Цель Fетсн-ехесUте вычислений — эмуляция наших синтетических способностей, а не понимание аналитических.
  • Как и каламбур, программирование — это игра слов
  • Как сказал бы Уилл Роджерс: «В природе нет такой вещи, как свободная переменная».
  • Для дилетанта лучшим пособием по программированию служит «Алиса в стране чудес» — только потому, что для него это лучшее пособие по любому предмету.
  • Отказ от языка ассемблера был яблоком раздора в наших садах Эдема: Языки, использование которых приводит к растранжириванию машинного времени, греховны. Бормашина сегодня позволяет своим программистам отказаться от фигового листка.
  • Когда мы поймем машинные системы баз знаний, все будет, как и прежде, с той лишь разницей, что кончики пальцев будут обожжены.
  • Появление ЭВМ домах не изменит ни один из них, но может возродить салуны.
  • Системы состоят из подсистем, подсистемы — из под подсистем и так до бесконечности — именно поэтому мы проектируем снизу вверх.
  • Так много хороших идей исчезает бесследно, попав в пучину семантики.
  • Остерегайтесь бочки меда с ложкой дегтя тьюринга, где все возможно, но все интересное слишком сложно.
  • Лисп-программисту известна ценность всего, но неизвестна цена чего бы то ни было.
  • Софтвер находится в постоянном напряжении. Поскольку он символичен, его можно постоянно совершенствовать, но и произвольно изменять.
  • Легче изменить спецификацию, чтобы она соответствовала программе, но не наоборот.
  • Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
  • В английском языке любое слово может быть глаголом. Разве могло бы такое быть в языках программирования?
  • DаNа Sсотт IS тне снURсн оF LаттIсе-WаY SаINтS.
  • В программировании, как и везде, ошибаться — значит рождаться заново.
  • В программировании инварианты эфемерны.
  • Когда мы пишем программы, которые «обучают», мы — обучаем, а они - нет.
  • Часто средства оправдывают цели: Цели порождают метод, а метод выживает, даже когда разрушаются структуры, бывшие ранее целью.
  • Не путайте: Машины обрабатывают числа, а не символы. Мы измеряем свое понимание (и контроль) степенью арифметизации деятельности.
  • Легко сделать что-то переменным. Хитрость в том, чтобы измерять продолжительность постоянства.
  • Подумайте, сколько психических сил потрачено на поиски коренного различия между «алгоритмом» и «программой».
  • Если мы верим в структуры данных, мы должны верить и в независимую (и потому одновременную) обработку. Зачем же еще собирать элементы в структуру? Почему мы терпим языки, которые дают нам одно, но не дают другое?
  • Через пять лет у нас будет один супер язык программирования, только мы не можем установить начало этого пятилетнего периода.
  • Веками индейцы создавали язык знаков, чтобы сообщить друг другу самое интересное. Программисты из разных племен (фортрана, лиспа, алгола, снобола и т. Д.) Могли бы воспользоваться таким языком, который понятен и без классной доски.
  • Документация подобна страхованию на неопределенный срок: Она удовлетворяет всех, поскольку почти никто из подписавшихся на нее не зависит от ее преимуществ.
  • Адекватная само раскрутка — явное противоречие.
  • Не слабости, а достоинства языка определяют направления его изменений. Увы, язык никогда не сможет избавиться от своего эмбрионального мешка.
  • Возможно ли, что программное обеспечение не похоже ни на что другое; что оно создано для того, чтобы от него отказались со временем; что всё дело в том, чтобы оно всегда оставалось для нас мыльным пузырем?
  • Благодаря своей жизненности программирование всегда испытывает отчаянную потребность в новых штампах: Банальность успокаивает нервы.
  • Не создатели, а пользователи должны параметризовать процедуры.
  • Кибернетический обмен между человеком, машиной и алгоритмом подобен игре в «музыкальные стулья»: Неистовый поиск равновесия всегда оставляет одного из трех неловко стоять.
  • Если ваша машина говорит по-английски, ее, вероятно, сделали в Японии.
  • Года работы над искусственным интеллектом достаточно, чтобы заставить поверить в бога.
  • Продолжительный контакт с машиной превращает математиков в клерков, и наоборот.
  • В программировании превращение очевидного в полезное — это точное определение слова «разочарование».
  • Мы вот-вот сможем сказать: «Сегодня наша программа доказала теорему ферма».
  • Какая разница между машиной тьюринга и современной ЭВМ? Такая же, как между восхождением Хиллари на эверест и открытием отеля «Хилтон» на его вершине.
  • Девиз исследовательской лаборатории: «О том, над чем мы работаем сегодня, другие подумают только завтра».
  • Хотя китайцы должны были бы обожать APL, они вкладывают деньги в фортран.
  • Мы обманываем себя, думая, что отношение процедур к данным в активной системе базы данных можно сделать произвольно малым или даже сохранить малым.
  • У нас есть мини- и микро-эвм. В какую семантическую нишу попала бы пико-эвм?
  • Машина не виновата в том, что уравнения максвелла не подходят для проектирования электромотора.
  • Нельзя научиться программированию с помощью ручного калькулятора, но можно забыть арифметику.
  • Программирование заставило дерево зацвести.
  • ЭВМ напоминает Лона Чени[#] — это машина с тысячью лиц. [#] Лон Чени написал детектив «человек с тысячью лиц».
  • ЭВМ — это загрязнитель в его чистейшем проявлении: Ее отходы неотличимы от пищи, которую она производит.
  • Когда кто-то говорит: «Мне нужен язык программирования, в котором достаточно только сказать, что мне нужно сделать», — дайте ему леденец.
  • Интерфейсы сохраняют порядок вещей, но не ускоряют рост — функции же ускоряют.
  • Не имейте хороших идей, если не хотите отвечать за них.
  • Машины скорее обнаруживают наличие беспорядка, чем наводят порядок.
  • Если преподаватель настаивает на том, что вычислительная наука — это X, а не Y, посочувствуйте его ученикам.
  • В программировании средняя наработка на отказ постоянно уменьшается.
  • В симбиозе человек-машина приспосабливаться должен человек;машины этого не могут.
  • Никогда не кончатся объекты программирования, пока у нас под рукой есть хотя бы одна программа.
  • Обработать ошибку легко: Постарайтесь исправить программу. Удачный запуск тоже легко обработать: Вы решили не ту задачу. Постарайтесь исправить и эту ошибку.
  • Нельзя перейти от неформального к формальному с помощью формальных средств.
  • Чисто прикладные языки плохо применимы. (Игра слов аррLIсатIVе и аррLIсавLе).
  • Доказательство ценности системы — в её существовании.
  • Нельзя передать сложность, а только знание о ней.
  • Трудно выделить смысл из строк, но это единственная «монета» связи, на которую мы можем рассчитывать.
  • Споры бушуют вокруг того, что такое рL/1 — двугорбый или одногорбый верблюд.
  • Всякий раз, когда два программиста встречаются для критического анализа своих программ, они оба молчат.
  • Подумать только! С помощью сверхбольших интегральных схем мы можем упаковать 100 «эниаков» в 1 кв. см.
  • Редактирование — это выражение того же, но другими словами.
  • Почему распалась Римская империя? Как по-латыни автоматизация конторских работ?
  • ЭВМ приводит в замешательство вычислительную науку.
  • Единственная конструктивная теория, связывающая неврологию и психологию, возникает из исследований софтвера.
  • Для машин естественные языки не естественны.
  • Большинство людей находят концепцию программирования очевидной, но само программирование невозможным.
  • Когда изучаешь какой-либо вопрос, считаешь, что знаешь его;когда можешь писать о нем, становишься уверенней в своих знаниях;уверенность возрастает, когда можешь научить этому кого-нибудь другого; и совершенно уверен, когда начинаешь программировать.
  • Обучение детей программированию противоречит современной теории обучения. Разве интересно составлять планы, овладевать дисциплиной в организации мышления, уделять внимание деталям и учиться быть самокритичным?
  • Если вы можете представить себе общество, где лакеями будут роботы, вы можете представить все, что угодно.
  • Программирование — это неестественный процесс.
  • Адаптировать старые программы к новым машинам обычно означает заставить новые машины работать по-старому.
  • Простота только мешает поиску недостижимого. Если существуют афоризмы, должны быть и метаафоризмы.
  • Афоризмы — это интерфейсы, по которым передаётся оценка и понимание.
  • Афоризмы параметризуют нимбы святости.
  • Афоризмы — это макросы, поскольку они выполняются в ходе чтения.
  • Афоризмы кристаллизуют несоответствия.
  • Афоризмы возвращают глубокое семантической значение из базы данных, которая представляет собой процедуру.
  • Афоризмы пропускают подробности и выделяют главное: Это превосходная документация высокого уровня.
  • Афоризмы скорее подобны витаминам, чем белку.
  • У афоризмов чрезвычайно низкая энтропия.
  • Последний афоризм? Афоризмы нельзя ни есть, ни пить — их нужно вдыхать.