Статья
Версия для печати
Обсудить на форуме
О переводах или От редактора перевода.


Уважаемые читатели!
Представляю на ваш суд серию переводов статей одного из величайших ученых и мыслителей в области информатики — Эдсгера Вайба Дейкстры.
Думаю, у программистов со стажем не возникнет вопросов, зачем и кому это нужно. Но среди читателей наверняка найдутся новички, которым это имя, к сожалению, ничего не говорит. Поэтому я и решил написать несколько слов о том, что заставило меня приступить сначала к переводу, а затем, когда к этой работе присоединились единомышленники, то и к редактированию переводов его статей.

Почему именно Дейкстра

Как-то само собой так сложилось, что в России Дейкстру обходили и продолжали обходить вниманием.
Впервые я познакомился с его трудами много лет назад, благодаря моему университетскому научному руководителю Владиславу Вениаминовичу Кривицкому, которому я столь многим обязан в своем профессиональном становлении. Он доставал какими-то неведомыми мне путями (учитывая, что слова «персональный» и «компьютер» в то время были взаимоисключающими, а об Интернете никто и слыхом не слыхивал) распечатки наиболее интересных статей из зарубежных (столь труднодоступных тогда) источников. Сделаны они были на барабанном принтере кривыми волнистыми строками и были излохмачены и затерты до дыр многочисленными читателями. Некоторые были кем-то переведены на русский язык, другие оставались на английском и тем самым становились недоступными для меня (к сожалению, в школе и в Университете я изучал французский и тем самым был лишен возможности чтения англоязычной литературы). Названия некоторых из этих статей я помню до сих пор: «Смиренный программист», «Как быть, если правда колет глаза», «Почему программное обеспечение такое дорогое»...
Отечественное книгоиздание почему-то не баловало нас книгами Дейкстры. Из огромного множества его работ переведены и изданы в тогдашнем СССР были буквально считанные единицы, да и те достать было весьма трудно. Издавали Кнута, Вирта, Ульмана, Цикритзиса... Дейкстру упорно игнорировали.
Наступили другие времена, но положение существенно не изменилось. Посмотрим на  полки в отделе компьютерной литературы книжного магазина: «HTML для чайников», «Освой С++ за 5 минут»... Концептуальных книг не прибавилось.
Окончательное решение взяться за самостоятельный перевод возникло, когда мне попалась статья («http://www.computerra.ru/think/profy/21138/») «Ремесленник или ученый?». После ее прочтения захотелось собрать у себя побольше столь же мудрых статей, чтобы было что почитать между изучением весьма полезных, но столь же и скучных справочных мануалов по .NET или MFC.
Я был просто поражен тем, что поиск в Сети почти не принес результатов. Нашлись «Как быть, если правда колет глаза» и «Притча», добросовестно передираемые друг у друга неутомимыми создателями «хоумпагов» и используемые для заполнения скудного раздела «Юмор» (видимо, они решили, что Дейкстра — писатель-юморист сродни Марку Твену или Джерому). Нашлась та самая статья в «Компьютерре». Подключились другие форумчане, нашли еще с пяток крошечных статей. И все! За прошедшие годы утеряно даже то немногое, что передавалось друг другу на 1200-футовых бобинах магнитной ленты...
Единственный выход — браться за дело самим. Что после некоторой раскачки и было сделано.
К счастью, оказалось, что университет штата Техас бережно хранит («http://www.cs.utexas.edu/users/EWD/indexEWDnums.html») наследие своего почетного профессора. Бумаги, которые остались после смерти Дейкстры в 2002 г., были отсканированы и опубликованы на сайте университета. Осталось только выбрать наиболее интересные из них, перевести и опубликовать на сайте Грома.
Этот труд, как оказалось, вовсе не тягостен. Во-первых, в процессе перевода приходится более тщательно следить за мыслью автора, чем при обычном чтении, так как перевод потом попадает на всеобщее обозрение, и просто стыдно допустить в нем серьезные промахи. Поэтому в голове остается значительно больше, и ради этого стоит потрудиться.
Во-вторых, многие статьи написаны Дейкстрой от руки. Человек, знающий о компьютерах все и сделавший для них, возможно, больше, чем кто-то иной, по старинке излагал свои мысли пером на бумаге, как много лет назад. Читая эти строки, выведенные аккуратным почерком почти без единой помарки, можно как бы прикоснуться к той эпохе, когда они были написаны... Наверное, то же самое испытывает музыкант, которому посчастливилось взять в руки настоящую скрипку Страдивари.

О стиле перевода

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

Кому и зачем это нужно сегодня

Многие, наверное, зададут этот вопрос. И неудивительно. Ведь уже не одно десятилетие действует закон Мура, согласно которому количество транзисторов на кристалле удваивается каждые полтора-два года, а следом за ним — и производительность процессоров на их основе. Вычислительная мощность, сконцентрированная сегодня в системном блоке персонального компьютера на рабочем столе секретарши, многократно перекрывает мощность крупного вычислительного центра 70-х годов XX века. Давно забыты перфокарты и магнитные барабаны. Программирование тоже прошло огромный путь от автокодов до сложнейших и в то же время весьма облегчающих жизнь программиста систем вроде Visual Studio .NET.
Казалось бы, чему может научить нас человек, большинство работ которого написаны 20-30 лет назад и более? Ведь изменилось все: оборудование, языки программирования, операционные системы...
Оказывается, как и в любой науке, в информатике есть истины, которые, будучи открыты, сохраняются неограниченно долго. И Дейкстра был один из немногих, кто подошел к новой дисциплине — программированию — не как ремесленник и даже не как инженер, а как настоящий ученый, виртуозно владеющий математическим аппаратом (сказалась подготовка физика-теоретика) и системным подходом.
Чему же учил нас Эдсгер Дейкстра? Прежде всего, он настаивал на том, что программист-профессионал обязан владеть математическим инструментарием. Особенно это относится к математической логике, поскольку помимо умения писать программы, нужно также при необходимости уметь и доказать их правильность. Разумеется, и сам он был в этом образцом, его математической эрудиции можно только позавидовать.
Почти через все статьи красной нитью проходит мысль о том, что программы должны быть не только (и не столько) эффективными, сколько изящными, по возможности краткими и легко читаемыми. Выражая свое мнение о том, каким быть будущим языкам программирования, он утверждал, что элегантность и выразительность языка не менее важна, чем возможность его эффективной реализации на существующем вычислительном оборудовании.
Наконец, Дейкстра всегда находил мужество говорить об острых и неудобных проблемах информатики, в то время как другие делали вид, что таковых не существует в природе. Его не пугало, что о нем подумают коллеги-ученые или промышленники — производители компьютерного оборудования. Истина — вот чему он служил и оставался верен до последних дней жизни...
Впрочем, не пожалейте немного времени и убедитесь в этом сами. Если сочтете представленные материалы интересными, следите за разделом переводов. Надеюсь, раздел будет пополняться достаточно интенсивно.

  Alf
Версия для печати
Обсудить на форуме