Да и нет

Должно быть, это был 1983 год, потому что я учился на втором курсе колледжа. Мой сосед по комнате пригласил меня пройти курс Computer Science 201, вводный класс для основных специальностей. Я был настроен на математику, но согласился.

Когда мы добрались до лекционного зала, впереди был легендарный Алан Перлис, глава факультета информатики Йельского университета. Д-р Перлис, первый лауреат престижной премии Тьюринга в 1966 году, был одним из изобретателей АЛГОЛА, во многих отношениях предшественника более современных языков, таких как C. инвалидное кресло.

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

«Программирование, - сказал он, - - это чистейшая форма поэзии».

Интересно узнать, что он имел в виду, я вернулся на следующий урок.

да.

Программирование было для меня не в новинку. Когда я учился в старшей школе, моя мама купила Apple II Plus с программным обеспечением для работы с базами данных под названием DB Master и вела консалтинговый бизнес в нашем кабинете.

Ее первым клиентом был друг семьи, редактор журнала Weight Watchers. Моя мама набирала рецепты Weight Watchers в DB Master, и когда подруга хотела найти рецепт, скажем, с курицей и менее 500 калорий, она звонила, и моя мама выполняла запрос. Однажды, когда мои родители уехали в отпуск, моя мама показала мне, как выполнять запросы, чтобы я мог отвечать на телефонные звонки, и вскоре я начал дурачиться с Applesoft BASIC.

Но какова была идея получить специализацию по информатике в середине 80-х? Не то, чем вы должны были заниматься в гуманитарном колледже. К тому времени многие университеты имели факультеты информатики. Тем не менее, клеймо оставалось. Если собирались стать программистом, почему бы не сэкономить и не перейти в профессиональное училище?

Утверждение доктора Перлиса о поэзии поставило под сомнение все это. Конечно, согласитесь ли вы с этим, отчасти зависит от вашего определения поэзии. Во время следующего занятия доктор Перлис поделился своим.

«Поэзия, - сказал он, - - это искусство извлекать максимальную силу и смысл из слов. Вот что делает прекрасная программа ».

Любой, кто хоть немного занимался программированием, знает, о чем говорит.

Доктор Перлис поддержал свою позицию, настаивая на том, чтобы студенты кодировали домашние задания на языке программирования под названием APL. Чтобы почувствовать загадочную эстетику APL, рассмотрите эту программу для поиска вхождений строки A в другой строке B:

В APL все операторы состоят из греческих букв и специальных символов. Поговорим о максимальном соотношении значений и символов!

Доктору Перлису нравилось открывать для себя новые идиомы APL ». Это были краткие, грамотно составленные фрагменты кода для выполнения общих задач, которые можно было связать вместе для достижения более сложной функциональности. Например, вот идиома для удаления начальных пробелов из строки:

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

Нет (но я все еще рад, что изучил это).

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

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

Но более важная причина, по которой я рад, что я получил специальность в области информатики, связана с кое-чем еще, что доктор Перлис сказал во время того первого занятия. Он сказал это сразу после стихов:

«Подумайте о величайших и красивейших соборах Европы. Некоторые из них строились более 500 лет. Можете ли вы представить себе величие и масштабы компьютерных программ, которые мы создадим в течение следующих 500 лет? »

В то время все, что я мог представить, было одной командой из нескольких поколений, работающей над единой кодовой базой. Но с годами я стал думать обо всей сети (которой не было, когда я встретил доктора Перлиса) и обо всех наших взаимосвязанных системах с поддержкой API, как о «соборе» - единой грандиозной структуре, которую мы ' перестраиваем все вместе. Я довольно давно не зарабатываю на жизнь программистом, но приятно жить, зная эту структуру на практике.

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

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

Если вы хотите увидеть больше, факультет информатики Йельского университета по-прежнему размещает их на странице под названием Перлизизмы: эпиграммы в программировании.

После того, как я опубликовал это, Дэн Гакл (черт возьми на Hacker News) разместил ссылку на документ, который я никогда раньше не видел, В честь APL: лирический язык программирования, в котором доктор Перлис объясняет свой подход к вводные классы информатики. Он писал, что его намерением было pou sto прослужить студенту 40 лет, а не руководство для завтрашнего трудоустройства. И это именно то, что он сделал. Каждый раз, когда я сталкивался с новым языком или фреймворком - Java, Ruby, Rails или чем угодно, - я был ему за это благодарен. В той же статье он также поделился своим мнением о том, что студенты, изучающие информатику, должны рано и часто заниматься компьютером. В том семестре я не выспался - видимо, это было намеренно.