Уважаемые читатели!
Представляю на ваш суд серию переводов статей одного из величайших ученых и
мыслителей в области информатики – Эдсгера Вайба Дейкстры.
Думаю, у программистов со стажем не возникнет вопросов, зачем и кому это
нужно. Но среди читателей наверняка найдутся новички, которым это имя, к
сожалению, ничего не говорит. Поэтому я и решил написать несколько слов о том,
что заставило меня приступить сначала к переводу, а затем, когда к этой работе
присоединились единомышленники, то и к редактированию переводов его статей.
Почему именно Дейкстра
Как-то само собой так сложилось, что в России Дейкстру обходили и продолжали
обходить вниманием.
Впервые я познакомился с его трудами много лет назад, благодаря моему
университетскому научному руководителю Владиславу Вениаминовичу Кривицкому,
которому я столь многим обязан в своем профессиональном становлении. Он
доставал какими-то неведомыми мне путями (учитывая, что слова «персональный» и
«компьютер» в то время были взаимоисключающими, а об Интернете никто и слыхом
не слыхивал) распечатки наиболее интересных статей из зарубежных (столь
труднодоступных тогда) источников. Сделаны они были на барабанном принтере
кривыми волнистыми строками и были излохмачены и затерты до дыр многочисленными
читателями. Некоторые были кем-то переведены на русский язык, другие оставались
на английском и тем самым становились недоступными для меня (к сожалению, в
школе и в Университете я изучал французский и тем самым был лишен возможности
чтения англоязычной литературы). Названия некоторых из этих статей я помню до
сих пор: «Смиренный программист», «Как быть, если правда колет глаза», «Почему
программное обеспечение такое дорогое»…
Отечественное книгоиздание почему-то не баловало нас книгами Дейкстры. Из
огромного множества его работ переведены и изданы в тогдашнем СССР были
буквально считанные единицы, да и те достать было весьма трудно. Издавали
Кнута, Вирта, Ульмана, Цикритзиса… Дейкстру упорно игнорировали.
Наступили другие времена, но положение существенно не изменилось. Посмотрим на
полки в отделе компьютерной литературы книжного магазина: «HTML для чайников»,
«Освой С++ за 5 минут»… Концептуальных книг не прибавилось.
Окончательное решение взяться за самостоятельный перевод возникло, когда мне
попалась статья "Ремесленник или ученый?". После ее прочтения захотелось собрать у себя побольше столь же мудрых
статей, чтобы было что почитать между изучением весьма полезных, но столь же и
скучных справочных мануалов по .NET или MFC.
Я был просто поражен тем, что поиск в Сети почти не принес результатов.
Нашлись «Как быть, если правда колет глаза» и «Притча», добросовестно
передираемые друг у друга неутомимыми создателями «хоумпагов» и используемые
для заполнения скудного раздела «Юмор» (видимо, они решили, что Дейкстра –
писатель-юморист сродни Марку Твену или Джерому). Нашлась та самая статья в
«Компьютерре». Подключились другие форумчане, нашли еще с пяток крошечных
статей. И все! За прошедшие годы утеряно даже то немногое, что передавалось
друг другу на 1200-футовых бобинах магнитной ленты…
Единственный выход – браться за дело самим. Что после некоторой раскачки и
было сделано.
К счастью, оказалось, что университет штата Техас бережно хранит
наследие своего почетного профессора. Бумаги, которые остались после смерти Дейкстры в
2002 г., были отсканированы и опубликованы на сайте университета. Осталось
только выбрать наиболее интересные из них, перевести и опубликовать на сайте
Грома.
Этот труд, как оказалось, вовсе не тягостен. Во-первых, в процессе перевода
приходится более тщательно следить за мыслью автора, чем при обычном чтении,
так как перевод потом попадает на всеобщее обозрение, и просто стыдно допустить
в нем серьезные промахи. Поэтому в голове остается значительно больше, и ради
этого стоит потрудиться.
Во-вторых, многие статьи написаны Дейкстрой от руки. Человек, знающий о
компьютерах все и сделавший для них, возможно, больше, чем кто-то иной, по
старинке излагал свои мысли пером на бумаге, как много лет назад. Читая эти
строки, выведенные аккуратным почерком почти без единой помарки, можно как бы
прикоснуться к той эпохе, когда они были написаны… Наверное, то же самое
испытывает музыкант, которому посчастливилось взять в руки настоящую скрипку
Страдивари.
О стиле перевода
Разумеется, по возможности я старался придерживаться дословного перевода, не
отступая от авторского текста. Тем не менее не всегда это удавалось.
Дело в том, что Дейкстра – голландец по происхождению, а его родной язык
сродни немецкому. Немцы же известны своим пристрастием к построению сложнейших
грамматических конструкций. Нередки случаи, когда одно предложение немецкого
текста занимает целый параграф, который, в свою очередь, порой не умещается на
странице. Когда мне попадались подобные фразы, я разбивал их на несколько фраз
попроще (согласно рецептам самого Дейкстры по написанию текстов программ,
которым он, к сожалению, не всегда следовал при написании текстов на
английском). Так что дотошный читатель, сравнив оригинал и перевод, может найти
некоторое несоответствие в построении предложений. Я позволял себе такие
отступления при условии, что смысл повествования в целом никоим образом не
будет искажен.
Кому и зачем это нужно сегодня
Многие, наверное, зададут этот вопрос. И неудивительно. Ведь уже не одно
десятилетие действует закон Мура, согласно которому количество транзисторов на
кристалле удваивается каждые полтора-два года, а следом за ним – и
производительность процессоров на их основе. Вычислительная мощность,
сконцентрированная сегодня в системном блоке персонального компьютера на
рабочем столе секретарши, многократно перекрывает мощность крупного
вычислительного центра 70-х годов XX века. Давно забыты перфокарты и магнитные
барабаны. Программирование тоже прошло огромный путь от автокодов до сложнейших
и в то же время весьма облегчающих жизнь программиста систем вроде Visual
Studio .NET.
Казалось бы, чему может научить нас человек, большинство работ которого
написаны 20-30 лет назад и более? Ведь изменилось все: оборудование, языки
программирования, операционные системы…
Оказывается, как и в любой науке, в информатике есть истины, которые, будучи
открыты, сохраняются неограниченно долго. И Дейкстра был один из немногих, кто
подошел к новой дисциплине – программированию – не как ремесленник и даже не
как инженер, а как настоящий ученый, виртуозно владеющий математическим
аппаратом (сказалась подготовка физика-теоретика) и системным подходом.
Чему же учил нас Эдсгер Дейкстра? Прежде всего, он настаивал на том, что
программист-профессионал обязан владеть математическим
инструментарием. Особенно это относится к математической логике, поскольку
помимо умения писать программы, нужно также при необходимости уметь и доказать
их правильность. Разумеется, и сам он был в этом образцом, его математической
эрудиции можно только позавидовать.
Почти через все статьи красной нитью проходит мысль о том, что программы
должны быть не только (и не столько) эффективными, сколько изящными, по
возможности краткими и легко читаемыми. Выражая свое мнение о том, каким быть
будущим языкам программирования, он утверждал, что элегантность и
выразительность языка не менее важна, чем возможность его эффективной
реализации на существующем вычислительном оборудовании.
Наконец, Дейкстра всегда находил мужество говорить об острых и неудобных
проблемах информатики, в то время как другие делали вид, что таковых не
существует в природе. Его не пугало, что о нем подумают коллеги-ученые или
промышленники – производители компьютерного оборудования. Истина – вот чему он
служил и оставался верен до последних дней жизни…
Впрочем, не пожалейте немного времени и убедитесь в этом сами. Если сочтете
представленные материалы интересными, следите за разделом переводов. Надеюсь,
раздел будет пополняться достаточно интенсивно.
Alf
Information
- Posted on 01.02.2010 01:34
- Просмотры: 3872