КаталогИндекс раздела


©Перевод: А.Деревянко, 2006
    

Новая наука, от рождения до зрелости

(Речь на праздновании годовщины факультета компьютерных наук, ETH Zurich, 19 октября 1988г. - EWD1024)

Если мы совместим рождение компьютерной науки с появлением программно управляемых компьютеров, то наш предмет будет иметь возраст в 40 лет. Это были захватывающие десятилетия, и я благодарен своей судьбе за то, что был участником почти всего этого периода, благодарен потому, что это участие дало мне возможность наблюдать весь процесс развития за все это сорокалетие. Мои наблюдение покрывали всю гамму - от стадии, когда компьютерная наука едва существовала, до нынешней стадии, когда компьютерная наука является сильной и процветающей дисциплиной, академическая значимость которой уже не ставится под сомнение. Дополнительная причина для личной благодарности состоит в том, что в процессе моего участия мои путешествия часто приводили меня на другую сторону Атлантического океана. Такая подвижность была полезной для наблюдения "со всех сторон", поскольку компьютерная наука в Европе и в Америке развивалась совершенно различным образом. Мы еще вернемся к этому различию.

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

Пятидесятые

Моя характеристика пятидесятых годов, как десятилетия аппаратных средств, является не неожиданной и легко объяснимой. Эта область начинается с концепции программно управляемого компьютера, которой мы обязаны Тьюрингу и которая приобрела влияние, благодаря фон Нейману. Трудно было в то время построить такую машину, которая была бы надежной из-за ограничений технологии - и только из-за них! - и вполне понятно, что поначалу все внимание было сосредоточено на физическом оборудовании.

Следовательно, большинство инноваций в 50-е было направлено на повышение скорости, увеличение объема памяти и увеличение надежности. Приведу примеры: транзисторы и ферритовые сердечники, контроль четности, B-line - позже известные как индексные регистры, - прерывания в реальном масштабе времени, автоматически управляемая многоуровневая память и первые робкие попытки мультипроцессорной обработки. Это были дни, когда цели могли быть легко оценены: скорость - в числе операций в секунду, размет памяти - в битах, надежность - в MTBF. (Последний термин, сокращение от "Mean Time Between Failuers", " среднее время между отказами", явно указывает на то, что машины все еще рассматривались как часто отказывающие.) Значение этого десятилетия лучше всего ощущается, если мы представим себе, сколько из этих инноваций все еще остается с нами, в той или иной форме.

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

Для полноты скажем, что это не было десятилетие только аппаратных средств. В пятидесятые было достигнуто немало успехов в облегчении проблем кодирования, таких как автокоды и FORTRAN, но, в соответствии с духом десятилетия, каждое из таких средств кодирования было предназначено для очень конкретной машины. Следовательно, было очень трудно рассматривать программирование как нечто, во что наука может внести свой вклад. Наконец, пятидесятые дали нам профессиональные сообщества, такие как ACM и BCS, в соответствии с вышеупомянутым духом десятилетия, их названия явно указывают на аппаратные средства. Они не являются научными обществами, но являются профессиональными обществами, в которых практики могут обмениваться своим опытом.

Шестидесятые

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

  1. его блочной структуры;
  2. его механизма передачи параметров;
  3. включения в него рекурсии;
  4. включения в него типа Boolean;
  5. его "чистоты" (т.е. отсутствия специальных ограничений для индексных выражений);
  6. формального определения его синтаксиса;
  7. неоперационного определения его семантики (в том смысле, что не было непосредственно ясно, как ее реализовывать);
  8. его стабильности (благодаря очень малому число неясностей);
  9. его машинной независимости.

В сравнении с культурой тех дней это поистине впечатляющий список! Позвольте мне выделить три, по-видимому, главных пункта. При помощи однозначной идентификации и возможностям логических переменных, блочная структура внедрена в радикальное воплощение стандартов математической практики, где и идентификация, и область действия часто не предопределяются "но каждый математик знает, что они означают". Что до рекурсии, то математическое определение бесконечной дроби было: "дробь, в которой числитель является целым, а знаменатель является целым плюс дробь, в которой числитель является целым, а знаменатель является целым плюс дробь и т.д.". Правильным определением бесконечной дроби, конечно, является: "дробь, в которой числитель является целым, а знаменатель является целым плюс бесконечная дробь". [В высшей степени не следует недооценивать качественного скачка в таком усовершенствовании. Несколько лет назад я процитировал эти два определения бесконечной дроби как пример прогресса. Я позже услыхал, что из этого примера известные ученые в моей аудитории, все они были Членами Королевского Общества, заключили о моей математической некомпетентности, поскольку каждый знает, что циклические определения не имеют смысла.] Введение типа Boolean как гражданина первого сорта является такой же вехой: до этих дней стандартные математики не могли читать булевские выражения без интерпретации их как утверждения факта, и для них 0 = 1 было "неправильным", а не одним из многих выражений, имеющих значение false.

ALGOL-60 появился, когда управление бизнесом и численные вычисления рассматривались как главные приложения компьютеров, но даже само появление Отчета по ALGOL-60 немедленно сделало очевидным, что в этих двух типах приложений было больше программирования, чем кодирования: кто-то напишет компилятор ALGOL! Помимо процессора данных и калькулятора, компьютер стал рассматриваться более широко, как средство манипуляции символами. Формальное определение синтаксиса послужило побуждением к менее эмпирическому подходу к компиляции. Более того, комбинация блочной структуры, механизма параметров и рекурсии предлагает возможность чистого представления алгоритмов любой степени сложности. Тема уже больше не была "тривиальной", и компьютерная наука стала рассматриваться как академически представительная дисциплина. ALGOL-60 был более, чем научной вехой: он был необходимым шагом для компьютерной науки на ее пути к академической представительности.

Как было сказано, два берега Атлантического океана восприняли ALGOL-60 очень по-разному. Поверхностно говоря, ALGOL-60 был широко принят в Европе, но не принят в Америке, где ему не удалось вытеснить FORTRAN. IBM проникла в высшее образование Америки, отдавая наиболее престижным университетам свои машины почти бесплатно, таким образом захватывая эти университеты, тогда как европейская академия, по счастью, была избавлена от таких подарков и осталась свободной. Несмотря на имеющуюся в этой истории долю правды, она действительно слишком упрощена, даже американские университеты могли освободиться от этой зависимости, если они действительно этого хотели. История разных судеб ALGOL-60 нуждается в уточнении, и в объяснении.

В Америке, где в течение нескольких лет Перлис вводил в обиход термин "алголоподобные языки", изучение формальных языков быстро превратилось в раздел науки со своими собственными правами, и главная роль ALGOL-60 состояла в предоставлении начальной парадигмы для этого научного вопроса. Он с трудом рассматривался как средство для серьезного программирования. И совершенно определенно ALGOL-60 развивался более всего из-за внимания к нему в Европе. Европа быстро воплотила ALGOL-60 во всем его великолепии и использовала его; алгоритм "быстрой сортировки" Тони Хоара развеял последние сомнения в том, что рекурсия была более, чем только прихотью, "устройство Дженсена" показало в полной мере мощь механизма параметров, и, благодаря ALGOL-60, программирование смогло стать и стало более серьезным занятием.

В следующее десятилетие это различие коснулось меня. На конференции в США следующий диалог был стандартным:
Вопрос: "Д-р Дейкстра, над чем вы сейчас занимаетесь?"
Ответ: "Программированием."
Реакция: "О, я вижу: языками программирования. Как интересно!"

Но я пойду дальше. Оба лагеря воспринимали ALGOL-60 серьезно, оба рассматривали его как благоприятную возможность и стимул для научных вложений, но они делали ударение на разных аспектах, а именно - на формальных языках и на программировании. Почему?

Была очевидная разница во времени. Вторая Мировая война оставила США с развитой экономикой и промышленностью, а в Европе оставила руины. До 60-х годов в Европе продолжалось восстановление, но мощные компьютеры оставались все еще менее общим явлением, чем в Америке. Понятно, почему необходимость в чем-то, что было бы достойно называться Компьютерной Наукой, более насущно ощущалась в Америке, чем в Европе. Более того, ограды вокруг лагерей, которые отделяли академический мир от остальной части общества, там традиционно были более низкими, чем в Европе. Наконец, законный статус большинства европейских университетов таков, что введение новой академической дисциплины обычно требует нескольких десятилетий законотворчества. Нахождение того, как научные приемы могут быть применены к решению программных задач, являлось менее реальной и более отдаленной целью, чем разработка теории формальных языков: последняя тема была значительно более в русле математической традиции тех дней и целью в пределах досягаемости. Безотлагательность и благоприятные возможности сделали их в 60-е краеугольным камнем в американской перспективе компьютерной науки. Как много различий определяет время!

Другим объяснением разной реакции на ALGOL-60 может быть традиционное различие в технологических приоритетах. С самого начала американская вычислительная техника была значительно более сосредоточена на увеличении скорости, чем на уменьшении оборудования - схем или объема памяти. Для этого есть очень простое экономическое/технологическое объяснение: после Второй Мировой войны ни одна из европейских лабораторий не имела ресурсов, необходимых для разработки более быстродействующих машин, возможных на то время. Но это только часть объяснения, играло роль также и культурное различие, как было случайно отмечено Алисой С. Росси в 1964 году: "На американцев легко произвести впечатление большими числами". (Ее статья называлась "Равенство полов: нескромное предложение".) Пока прошли времена ALGOL-60, этот аспект уже создал две полностью различные компьютерные культуры. Я помню разговор в 1962 году в Риме. Мы сидели за кофе вокруг стола. Один американец похвастался, что он сделал "алгебраический транслятор" из 50000 инструкций, но тут же был превзойден его конкурентом, чей алгебраический транслятор содержал не менее 80000 инструкций. Питер Наур нарушил наступившую благоговейную тишину, заметив, что он написал транслятор ALGOL из 5500 инструкций, после чего я смог превзойти его с компилятором из только 2700 инструкций. Короче, наши рулетки для измерения достижений измеряли в разных направлениях!

Американский приоритет скорости имел два прямых следствия. Во-первых, американские компьютерные вычисления почти полностью игнорировали, как слишком времяемкие, законченные подпрограммы, которые с самого начала были краеугольным камнем европейских вычислений. Эта позиция достигла кульминации в проекте IBM/360, в котором большое число явно именуемых регистров фактически определяли рациональное воплощение законченных подпрограмм. Во-вторых, американские компьютерные вычисления игнорировали ALGOL-60 как серьезный инструмент программирования, потому что реализации ALGOL казались им - правильно или неправильно - слишком медленными.

Шестидесятые годы были десятилетием, в котором автоматизированные вычисления начали приобретать академическую респектабельность, и начали появляться академические факультеты. Американские факультеты в целом создавались быстрее. Они также были более готовы к тому, чтобы ввести прикладные области в сферу ответственности факультета, и в эти дни вы могли найти в американских университетах такие области, как численный анализ и искусственный интеллект как часть факультета компьютерных наук.

Дополнительными американскими вкладами в семидесятые годы были обработка символов - я имею в виду LISP - и теория сложности. Они были с радостью включены в американскую учебную программу компьютерных наук. Не поспешили ли американские факультеты? Многие люди чувствовали, что вопрос о том, заслужила ли компьютерная наука имя науки, будет возникать вновь и вновь. Ньювелл, Перлис и Саймон пытались в конце десятилетия решить эту дискуссию так: "Факты порождают науку. Компьютеры существуют. Следовательно..." Нет необходимости говорить, что это не было окончанием дискуссии.

Европейские университеты тоже начали подумывать о компьютерной науке. Они тоже глубоко и напряженно думали о выковывании академической дисциплины, заслуживающей такого имени. Но здесь было меньше поспешности при создании и, возможно, кое в чем их проект получился более последовательным. Чтобы академическая дисциплина была жизнеспособной, ее разделы должны быть связаны и должны многократно усиливать друг друга; более того, учебный материал должен оставаться в силе, скажем, пятьдесят лет. Для связности и для представления того факта, что автоматизированные вычисления действительно заслуживают названия "общего назначения", обычно принималось решение о том, что прикладные области лучше не включать в компьютерную науку. Из соображений сохранения актуальности обычно принималось решение о том, что компьютерная наука должна отделяться от изменчивого рынка: изучение того, как сделать что-либо при помощи оборудования, имеющегося на рынке в данный момент, не составляло призвания европейской компьютерной науки, и весь материал с "периодом полураспада" в пять лет был запрещен. Я упоминал, что COBOL и FORTRAN рассматривались как промышленные продукты и, следовательно, не изучались.

Европейский вклад в автоматизированные вычисления в шестидесятые годы состоял в основном во введении искусства проектирования, такого как проектирование операционных систем или языков программирования и их реализаций. Только несколько из таких проектов были воплощены на таком же оригинальном уровне. Более того, отделяясь от физического оборудования, языки программирования уже не были понятны в терминах их реализации. (Когда Перлис назвал ALGIL-60 "очень неэффективным языком", европейцы в его аудитории были шокированы явным отсутствием у него абстрагирования от конкретики.

Чтобы завершить картину шестидесятых, в 1968 году существование кризиса в программном обеспечении было признано на Конференции NATO по программной инженерии в Garmish-Partenkirchen, а Вирт начал реализацию PASCAL. В 1969 году С.А.Р.Хоар опубликовал свой "Аксиоматический подход к программированию", а я распространил свои "Заметки по структурному программированию". Давайте перейдем к следующему десятилетию.

Семидесятые

Я назвал семидесятые годы десятилетием семантики: интерес к синтаксису и разбору уменьшился, денотационная семантика Дайны Скотт обеспечила логическое основание для рекурсии во всем ее великолепии, и в картину добавились формальные доказательства корректности программ.

Оглядываясь в прошлое, мы видим, что уменьшение интереса к синтаксису и разбору было вполне закономерным. Программы, которые в связи со сложностью синтаксиса трудно механически разбирать, трудно и правильно составлять; следовательно, простой синтаксис, который упрощает разбор, облегчает и задачу программирования (чего не учли создатели Ada).

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

В американской академической науке продолжала расцветать теория сложности; теорема автоматизированного доказательства привлекала много внимания и оторвалась от земли. Серьезное беспокойство в семидесятые годы вызывала проблема, как защитить большую часть компьютерной науки от вырождения в гнусное искусство "Как жить с IBM/360"; менее зараженные этим веянием и более интеллектуально независимые университеты Европы играли значительную роль в победе в этом сражении. Наконец, появление персонального компьютера воскресило большинство ошибок пятидесятых - но теперь в гораздо большем масштабе. Сегодня повсеместно присутствующий персональный компьютер создал такое же повсеместное непонимание того, чему посвящена компьютерная наука. (Пару лет назад на вечеринке Тони Хоара и меня познакомили с математиком, который выразил свое восхищение от встречи с двумя выдающимися компьютерными учеными, потому что он никогда не мог понять, что он должен сделать, чтобы сохранить файл на своем персональном компьютере такой-то модели. Мы не могли ему помочь и Тони спросил его, не может ли он порекомендовать книгу по теории категорий; он тоже не мог помочь Тони.)

Семидесятые годы были десятилетием яростной и все расширяющейся деятельности; в то же время они продемонстрировали и симптомы упадка и показали, что в академическом сообществе начался некоторый спад. В этом аспекте Америка также лидировала: она стала более продуктивной в выпуске неинтересных статей - от скучных до крайне глупых. В скором времени и Европа последовала этому примеру.

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

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

Я не говорю об имевшем место давлении со стороны банкиров об увеличении объема "продвинутого COBOL'а" в учебных программах: все заведения, кроме самых маленьких, смогли противостоять этому давлению. Я упомяну о противоречивом давлении со стороны общества, которое традиционно высказывает двойственное отношение к технологии, и которое почти безгранично приветствует безделушки, но приравнивает мастерство в технологии к утрате невинности, что является существенным ингредиентом Американской Мечты. Применительно к компьютерной науке, я упомяну о давлении со стороны общества, которое структурно не в состоянии включить в свое представление взгляд на программирование, как на ветвь формальной математики и прикладной логики и, следовательно, требует от него змеиного молока. Если университетская среда недостаточно защищена от такого давления и влияния рынка получают возможность свободного доминирования, вы можете сами сделать вывод: процветающим "бизнесом змеиного молока" будут "программирование по примеру", "объектно-ориентированное программирование", "программирование на естественном языке", "автоматическая генерация программ", "экспертные системы", "оживление спецификаций" и "совместная работа при поддержке компьютера". (Я не придумал эти слоганы, это все цитаты.) Я использовал термин "упадок" и вынужден заключить, что я не преувеличивал.

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

Восьмидесятые

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

Европейская компьютерная наука пострадала от многих более чем традиционных проблем, порожденных установлениями, поскольку многие факультеты были созданы в такой спешке, что довольно много вакансий в них было заполнено, так называемыми, "профессорами быстрого приготовления". Более того, многие правительства заставляли свои университеты сотрудничать с промышленностью (тенденция, от которой компьютерная наука пострадала больше, чем, скажем, ассирийское языкознание). В результате даже гениальный исследовательский потенциал должен был направляться на нечто недолговечное, мелкое или глупое. Ограничивая себя тем, что присуще компьютерной науке, я игнорирую такие аберрации.

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

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

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

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

В четвертых, начало реализовываться, преимущественно в университетской среде, но даже и в некоторых отраслях промышленности то, что программные задачи представляют богатое поле для применения научных приемов. Появление журналов "Наука компьютерного программирования" в начале этого десятилетия и "Структурное программирование" в его конце является яркими признаками этого. Очень увлекательно наблюдать, как это достижение работает в обе стороны, и как под влиянием методологии программирования появляется некоторый новый раздел математической методологии. [Когда этот текст был уже написан начерно, Спрингер анонсировал еще один журнал: "Формальные аспекты компьютерных вычислений" с выразительным подзаголовком "Интернациональный журнал формальных методов".]

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

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

Позвольте мне процитировать Лейбница, чтобы пожелать нам всего хорошего на следующие сорок лет и дальше: "Calculemus!".

Благодарю за внимание.

Остин, 2 октября 1988

prof.dr.Edsger W.Dijkstra
Department of Computer Sciences
The University of Texas at Austin
Austin, TX 78712 - 1188
United States of America

Комментарий в постскриптуме. Моя цюрихская аудитория в целом пришла к мнению, что я был в большей степени европейцем, и я с этим согласен. Например, я забыл упомянуть все междисциплинарные нонсенсы, сделанные при рождении официального французского определения "l'informatique". Европейская компьютерная наука была позорно медлительно в отделении себя, например, от управления бизнесом; поэтому отсутствие бизнес-школ непростительно.


КаталогИндекс раздела