Алан Перлис
Внешний вид
Алан Перлис | |
Статья в Википедии |
Алан Джей Перлис (англ. 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 кв. см.
- Редактирование — это выражение того же, но другими словами.
- Почему распалась Римская империя? Как по-латыни автоматизация конторских работ?
- ЭВМ приводит в замешательство вычислительную науку.
- Единственная конструктивная теория, связывающая неврологию и психологию, возникает из исследований софтвера.
- Для машин естественные языки не естественны.
- Большинство людей находят концепцию программирования очевидной, но само программирование невозможным.
- Когда изучаешь какой-либо вопрос, считаешь, что знаешь его;когда можешь писать о нем, становишься уверенней в своих знаниях;уверенность возрастает, когда можешь научить этому кого-нибудь другого; и совершенно уверен, когда начинаешь программировать.
- Обучение детей программированию противоречит современной теории обучения. Разве интересно составлять планы, овладевать дисциплиной в организации мышления, уделять внимание деталям и учиться быть самокритичным?
- Если вы можете представить себе общество, где лакеями будут роботы, вы можете представить все, что угодно.
- Программирование — это неестественный процесс.
- Адаптировать старые программы к новым машинам обычно означает заставить новые машины работать по-старому.
- Простота только мешает поиску недостижимого. Если существуют афоризмы, должны быть и метаафоризмы.
- Афоризмы — это интерфейсы, по которым передаётся оценка и понимание.
- Афоризмы параметризуют нимбы святости.
- Афоризмы — это макросы, поскольку они выполняются в ходе чтения.
- Афоризмы кристаллизуют несоответствия.
- Афоризмы возвращают глубокое семантической значение из базы данных, которая представляет собой процедуру.
- Афоризмы пропускают подробности и выделяют главное: Это превосходная документация высокого уровня.
- Афоризмы скорее подобны витаминам, чем белку.
- У афоризмов чрезвычайно низкая энтропия.
- Последний афоризм? Афоризмы нельзя ни есть, ни пить — их нужно вдыхать.