"Беседы о программировании" – это книга скорее не о том, как надо программировать, а о том, как развивалось программирование в нашей стране. Если взглянуть на "Беседы" с современной точки зрения, то их, очевидно, следует отнести к разделу: "История развития программирования". Дело в том, что когда у нас стали появляться ЭВМ, многие не поняли, какое место в жизни людей займут компьютеры. А те, кто понял, разделились на две части: идти своим путем или копировать заграницу. Между этими группами людей шла ожесточенная борьба. Она-то и отображена в "Беседах о программировании". Скорее даже – "Беседы" являются элементом этой борьбы. За кадрами книги остались бесконечные обращения автора "Бесед" в высокие инстанции – буквально крики души о том, что надо у НАС развивать строительство своих машин, надо привлекать сильных конструкторов и математиков – а они у нас есть – к разработке новых компьютеров. Было продемонстрировано не на словах, а на деле, что мы это можем, что мы сильнее. Например, наша машина М-20 обыграла в шахматы со счетом 3:1 машину из Стэнфорда. Но победили те, которые решили копировать заграницу. Теперь все компьютеры иностранные, все "говорят" по-английски. И даже теорему Адельсон-Вельского и Ландиса, которую у нас коротко называют АВЛ, теперь читают АБЛ. Но в "Беседах о программировании" рассказано не только о борьбе разных направлений. И даже это не главное. Мы упомянули об этой борьбе, пожалуй, только для того, чтобы читателю был понятен тон или стиль, которым написана книга. На наш взгляд, главное в "Беседах" – это задачи, о которых говорил А.С.Кронрод. Книга была написана в 1963 году. Теперь уже видно, по какому пути пошло программирование – по предложенному Кронродом или нет. А называл А.С. эти задачи – ИГРАМИ. "Беседы о программировании" были посланы на рецензии разным людям. Рецензии было бы тоже интересно прочитать. Сторонники А.С., естественно, хвалили эту книгу. Противники – полемизировали. Но надо сказать, что все, даже разгромные, рецензии кончались словами: "Тем не менее, книгу надо напечатать!" "Беседы о программировании" прошли обязательную тогда цензуру, и было напечатано 10 сигнальных экземпляров. И вдруг книга была запрещена. Кем? Математиками! Как говорил Кронрод "Иногда такие люди занимали должности даже и довольно высокие". Похоже было, что они не выдержали полемики, поднятой в этой книге. Но они не запрещали всю книгу: кто-то требовал уничтожить какой-нибудь параграф в "Беседе", кто-то – написать слово не с большой, а с маленькой буквы, и т.п. Кронрод отказался им подчиниться. Книга издана не была. Теперь – по прошествии более 30 лет с момента написания этой книги – многое будет в ней непонятно. Чтобы избежать этого, можно было бы в конце "Бесед" к каждой странице дать пояснения. Но, скорее всего, можно обойтись и без них. Просто: "Имеющий уши слышать – да слышит". Теперь можно переходить к чтению "Бесед о программировании" Александра Семеновича Кронрода.
Александр Семенович Кронрод (1921–1986) – человек примечательный. Со студенческой скамьи он ушел добровольцем на фронт. Через три года, после тяжелого ранения, вернулся, сложил в стол награды и снова стал студентом. А еще через пять лет – он уже доктор наук, создатель теории функций двух переменных, лауреат Сталинской премии, руководитель (хочется сказать – предводитель) семинара молодых, честолюбивых, талантливых ученых. И вдруг... (хотя ничего у него, конечно, не вдруг. Просто характер, талант и вера в себя), вдруг он кладет в стол уже готовые к публикации математические работы и полностью переключается на программирование на ЭВМ. Кстати, через двадцать лет А.С.Кронрод точно так же покончит с программированием и займется лечением рака. Стоит ли удивляться, но опять – с успехом. Итак, вычислительные машины. Он знает, что за ними будущее. Он создает настоящий конвейер решения физических задач. Он придумывает, как сделать работу математика за пультом удобной, какие смены должны быть у операторов, как добиться безошибочной кодировки и набивки программ – тысяча мелочей, которые отнюдь не кажутся ему мелочами. Следы этого вы, наверное, заметили при чтении книги. Но его настоящая цель – создание машин, решающих сложные, "человеческие" задачи. И Кронрод организует новый семинар, где занимаются программированием игр, задачами узнавания, придумываются новые вычислительные и невычислительные алгоритмы. С ним рядом друзья и соратники. Я не называю их, Кронрод никогда не забывает сделать это сам, обычно слегка притушевывая собственную роль. Однако именно благодаря А.С.Кронроду этот семинар вырос в целую школу программирования, и множество ученых успешно представляют ее и в Европе, и в Америке, и даже в Австралии. Главной чертой школы Кронрода являются методы решения задачи, при которых на каждом этапе четко просматривается связь с ее физическим смыслом. Ибо тогда легче следить за тем, что выбранный метод ведет к цели, уверенно вести отладку, да и, вообще, эпиграф к каждой главе этой книги есть жизненное кредо автора. В этом смысле "Беседы" и сегодня прекрасный учебник для знакомства с некоторыми идеями искусственного интеллекта и "интеллектуальными" подходами к вычислительным проблемам. Эта книга написана почти сорок лет назад. Разумеется, сегодня что-то в ней покажется банальностью, а что-то глупостью. Автор не виноват: сорок лет назад банальностей не было. Зато есть и плюсы: за сорок лет глупостей стало заметно меньше. Вы обратили внимание, с чего начинается книга? Конечно, сейчас все программируют "структурно". Но Кронрод излагает это как очевидный способ написания программ за много лет до "открытия" этого метода Дейкстрой. И ему ясно, что сделать программу понятной можно только на плоскости, рисуя не только команды и блоки, но и связи между ними. Ах, как не хватает ему сегодняшних цветных графических мониторов, хотя бы для того, чтобы рисовать стрелки! Он-то всегда программирует визуально, да вот только на листах бумаги. Отсюда и его неприятие АЛГОЛА, явно тяготеющего к тому, чтобы вытянуть программу в линейку. Еще пример. Помните, зачем программисту барабан? Тривиальность? Но этот вопрос был предметом насмешек многих рецензентов. Да что говорить, еще в 1990 году очень серьезный специалист по трансляторам, ныне уважаемый профессор, всерьез доказывал, что отладочная информация не должна храниться в рабочее время, так как отнимает память. Понадобилась мощь и "наглость" Микрософта, чтобы все привыкли, что эта информация абсолютно необходима. Впрочем, я думаю, что и еще через 40 лет можно будет наслаждаться и пониманием программирования и неординарностью мышления, блестками истинной мудрости щедро разбросанными по страницам этой книги. Арлазаров В.Л. |