Научная фантастика и научная реальность в информатике
Шрифт:
Эдсгер Вибе Дейкстра
Научная фантастика и научная реальность в информатике
Как среди практиков информатики, так и среди широкой публики бытует масса недоразумений касательно информатики, и цель данной беседы — прояснить эти недоразумения, поскольку они вредят нам всеми мыслимыми способами.
С одной стороны, достижения информатики досадно игнорируются. Многие проекты, в которых осознанное применение информатики необходимо, выполняются в совершенно ненаучной манере, как будто информатики не существует вовсе. Это не может не вызывать сожаления, поскольку приводит ко многим дорогостоящим ошибкам, которых можно было бы избежать, а информатика не получает должного признания своих достижений.
С другой стороны, ожидания относительно того, что информатика может нам дать, зачастую совершенно нереальны: ожидается как минимум череда чудес целыми
Если желаете, можете рассматривать этот доклад как попытку изменить то, что кажется сейчас основным затруднением для учёного-информатика: прежде всего ему не дозволено иметь какого-либо влияния, а затем на него валят все шишки за любые неудачи.
На первый взгляд кажется, что разъяснение квинтэссенции науки и затем получение выводов о свойственной ей роли — чисто техническая задача, но, к сожалению, это не так.
Проблема состоит в том, что это противоречит интересам промышленности и чересчур неудобно для многих, чтобы быть услышанным. В прошлом от этого бы просто избавились. Это вызывало дискомфорт на некоторое время, после чего публика осмеивала это, и всё возвращалось на круги своя, а провозвестника идеи терпели, как терпят выходки шута. Но состояние дел изменилось, интересы промышленников стали обширнее и разнообразнее, и всё больше и больше людей начинают понимать, что уже становится не до смеха.
По мере того как разумное и бесстрастное обсуждение этих вопросов становилось всё более неотложным, становилось всё труднее и труднее говорить о них. За техническими деталями я отправляю вас к судьбе Галилео Галилея.
Ранее я говорил, что достижения информатики, к сожалению, игнорируются. Что же, если бы это было именно так, не было бы повода для тревоги: разрыв между полезными достижениями в лаборатории и их практическим применением неизбежен. В нашем случае, однако, есть повод бить тревогу, поскольку на протяжении последних десятилетий разрыв между информатикой и практическим использованием компьютеров только расширился. В то время как информатика делала большие шаги к превращению в строгую, точную науку, компьютерная практика в основном пребывала в застое. Я не преувеличиваю: физики до сих пор убеждены, что ORTRAN — последнее слово в информатике, химики продолжают использовать BASIC, COBOL стал для бакалавра тем же, что и APL для инженера-электронщика. Человеческая склонность привязываться к источнику своих бед зарекомендовала себя как важный стабилизирующий фактор во многих браках и религиях, однако из-за своей болезненной склонности к неадекватным инструментам эти дисциплины переступили черту, а которой им уже не помочь.
Эти наблюдения обычно относятся к «случайному пользователю», но в последнее время проблема усилилась из-за того, что она повлияла на многие университетские учебные курсы таким образом, что вместо первоклассных учёных они теперь готовят третьесортных программистов.
Что же, вы можете возразить, что эти люди сами себя считают не программистами, а физиками, химиками и т. д., но и в профессиональной области картина столь же безрадостна. Мы все слышали о «Шаттле», который не был запущен из-за ошибки в программном обеспечении синхронизации, поэтому я должен привести вам другой пример. Недавно Британская железная дорога установила свою первую компьютерную систему сигнализации на одной из веток, и они разрекламировали в надежде продать её другим железнодорожным компаниям, что во избежание риска от использования компилятора в целях безопасности система была написана в машинных кодах. Очевидно, даже не ставилось од сомнение, что промышленные компиляторы сыграют с вами злую шутку. Другая область, полная страшных историй, — разработка VLSI (СБИС, сверхбольшие интегральные схемы — прим. перев.). В арсенале разработчиков среди прочих инструментов имеется программа — очень дорогая в эксплуатации, — которая пытается восстановить схему по фотошаблону, поскольку программа, производящая фотошаблон, ненадёжна. Но алхимия коммуникационных протоколов превосходит их всех, вместе взятых; первоначально разработанные телекоммуникационными инженерами для компенсации случайных аппаратных сбоев, они стали настолько громоздкими, что вызывают гораздо больше ошибок передачи, чем те, которые они должны были бы исправлять, и проверка их реализации стала сложной задачей: распутывание этого лубка может стать темой диссертации. И всех этих несуразностей можно было бы избежать, поскольку информатика начала углублённое и успешное изучение проблем компиляции и синхронизации двадцать с лишним
Мы уже видели, что программы учебных курсов меняются под действием необоснованного предположения, что в наши дни использование компьютера является основным, чтобы стать хорошим учёным. Сейчас это представляется весьма странным, поскольку этому выводу противоречит факт, что существует большое количество чрезвычайно успешных учёных, которые никогда не использовали компьютер, так как в их время компьютеров попросту не было. Верно, что микрокомпьютеры продаются столь же широко, как и энциклопедии, компрометируя родителей будущим их чад. А если вы читаете между строк, призыв звучит ещё более заманчиво: дайте вашему ребёнку наш домашний компьютер, и он вырастет гением. Но нам не следует винить промышленность за это недоразумение, как бы настойчиво она не пыталась запихнуть свои леденцы в наши глотки: в подобных рекламных ухищрениях они лишь используют нашу скрытую, но не покидающую нас мечту о «философском камне», способном делать золото, и «Эликсире», дарующем вечные молодость и здоровье. Промышленность ничем не хуже обычного проходимца.
Насколько мне известно, не промышленность, а общество придумало термин «компьютерная грамотность». В самом начале игры в человеческое сознание прочно вбили мысль, что компьютеры появились, чтобы пасти нашу экономику (а позже — также и экономику стран третьего мира). Некоторое время никто не знал, каким именно образом, но, к счастью, кого-то посетила блестящая идея, что информация — это «ресурс», это решило проблему, тем более что с этого момента, впервые в истории человеческого разума, мы наконец-то получили ценный ресурс, запасы которого неисчерпаемы. Затем люди вспомнили, как нефть принесла сказочные богатства немногим счастливцам; а этот раз подобного не должно было произойти, поэтому для решения этой проблемы была изобретена «компьютерная грамотность» для миллионов. Что этот термин должен означать, до сих пор является открытым вопросом, однако это не мешает нашим оракулам продолжать грезить о постиндустриальном обществе, в котором люди, когда им надоест наслаждаться телеконференциями, будут посвящать свой обширный досуг созидательным видеоиграм.
Нет ничего нового в том, что люди ожидают рая на земле в ближайшем будущем; новым, однако, является то, что это будет сотворено при помощи микроэлектроники, а не милостию божьей. Я не преувеличиваю: ожидания эти столь нереальны, что вещи, которые следовало бы разумно обсудить, всё чаще преподносятся так, словно люди участвуют в странном ритуале, истово повторяя слова жрецов на языке, которого они не понимают.
Позвольте привести лишь несколько свежих примеров.
Директор крупной исследовательской лаборатории во время интервью по поводу его ухода на пенсию преподносил достоинства домашнего компьютера, подчёркивая, что он позволит людям «упорядочить их творческие мысли». Только подумайте на минуту, какая бессмыслица! Между нами, когда вас в последний раз посещала творческая мысль? Пару лет назад? Неплохо. Гораздо больше смысла было бы, если бы он сказал «привести в порядок вашу коллекцию марок». Когда Бертран Рассел обронил своё знаменитое изречение «Многие люди предпочтут скорее умереть, чём подумать. Это в самом деле так», он высказал больше реализма. Лично я сделал для себя вывод, что этот директор ушёл на пенсию не слишком рано.
На международной конференции, посвящённой компьютерам в образовании, все сошлись на мысли, что маленьких детей следует знакомить с компьютером при первой возможности. Возникла некоторая озабоченность, что столь интенсивная механизация образовательного процесса могла бы повредить их эмоциональному развитию и образованию навыков общения, пока кто-то не заметил, что «разговор с программой не причинит вреда, поскольку, будучи продуктом человеческой мысли, программа обладает в основном человеческими чертами». Теперь я задумываюсь, не было ли окончательное решение Гитлера результатом человеческой мысли?
На последней конференции относительно осуществимости или неосуществимости разработки программного обеспечения для проекта «звёздных войн» одним из аргументов в пользу осуществимости, как мне сказали, было замечание, что сегодня почти все банковские операции успешно компьютеризованы, не так ли? Ну что ж, по правде говоря, это не так: не далее как в 1986 году попытка выплачивать зарплату электронными средствами в крупной (компьютерной!) компании провалилась. Но если бы даже это было и так, это ложный аргумент: эти два проекта настолько различны, что аналогия на несколько порядков величины мельче, чем нужно для принятия её во внимание. Хуже всего, я считаю, то, что этот аргумент был выдвинут человеком, занимающим видное положение в академической среде.