Сейбел:Как вы считаете, это связано с тем, что ему нравились все идеи, или же это был способ заставить принять язык, который каждому давал то, что он хочет?
Томпсон:Скорее второе, чем первое.
Сейбел:Похоже, многие говорят: “Черт возьми, C++ - это ужас!” При этом все его используют. Например, это один из четырех официальных языков Google. Почему же тогда его продолжают использовать, раз он так плох?
Томпсон:Не знаю. Думаю, он доживает последние дни в Google. Сейчас здесь больше его противников, чем сторонников.
Сейбел:И они переходят на Java?
Томпсон:Не знаю. Почти нет. Они жалуются, но не меняют язык. Вчерашние студенты - новобранцы Google - об этом знают. Поэтому сложно заниматься чем-нибудь другим. Вот почему его продолжают использовать - не нужно тратить массу времени на обучение и переобучение. С ним отдача быстрее.
Сейбел:Есть ли другие языки, на которых вам нравилось программировать?
Томпсон:В общем, все забавные языки, с которыми мне доводилось иметь дело. Например, для решения уравнений и всего такого - такие как Maple и Macsyma. Для строк - Снобол. В общем, я имел дело с десятками языков, если только с их помощью могло получиться что-то интересное мне.
Сейбел:А с какими инструментами разработки вам больше всего нравилось работать?
Томпсон:Я люблю уасс. Мне очень нравится уасс. Она делает как раз то, чего от нее хочешь. А вот ее дополнение Lex - просто ужас. Не делает ничего из того, что надо.
Сейбел:А вы им все равно пользуетесь или пишете лексические анализаторы вручную?
Томпсон:Пишу вручную. Так намного проще.
Сейбел:Доводилось ли вам заниматься литературным программированием по примеру Дональда Кнута?
Томпсон:Нет. Это отличная идея, но на практике реализовать ее почти невозможно.
Сейбел:Почему?
Томпсон:Получаются две версии одной и той же программы, которые часто рассинхронизируются и начинают конфликтовать. И исправить это нет никакой возможности. Если что-то хорошо написано на языке программирования, то это читабельно. И достаточно. Комментарии здесь не нужны. Комментарии, пожалуй, хороши для алгоритмов, или, например, если вы делаете что-то очень хитроумное, тогда они должны быть скорее в форме предупреждений. Я не любитель развернутых комментариев, это общеизвестно.
Сейбел:Когда я беседовал с Кнутом, он сказал, что ключ к техническому писательству - говорить одно и то же дважды взаимно дополняющими друг друга способами. Думаю, он считает это достоинством, а не изъяном литературного программирования.
Томпсон:Вот вы сделали два варианта. Один из них - реальный, тот, который исполняет машина. А второй - нет. И он нужен, только когда он значительно короче первого. Если же объем одинаковый, то можно читать тот, который работает. Если один вариант значительно короче, менее детализирован и из него можно извлечь все что надо - отлично. Но очень часто его недостаточно, и за деталями приходится обращаться к другому. В зависимости от того, что вам нужно, вы читаете либо один, либо второй. Но пытаться сделать два микроскопических описания алгоритма - на языке программирования и на английском - может, Кнут это и умеет, а я так не могу.
Сейбел:Вы читали какую-нибудь из его литературных программ?
Томпсон:Только то, что было в его ранних статьях. Из недавнего - ничего.
Сейбел:Есть ли книги, которые вы считаете особенно важными для себя либо можете порекомендовать другим?
Томпсон:Я не читаю книги по программированию для начинающих, так что затрудняюсь что-то рекомендовать. Если мне приходится учить новый язык или что-то в этом духе, я стараюсь найти книгу по нему. Я предпочитаю сжатые информативные книги, которые описывают только синтаксис и семантику, а не такие, где сплошная болтовня и где мне пытаются объяснить, какой стиль хороший, а какой плохой.
Когда я был преподавателем, мне нужно было выбрать базовый учебник по своему предмету, так что приходилось читать все учебники подряд, чтобы сделать выбор. Поэтому дважды в жизни я знал практически всю базовую литературу по своим курсам. Но в остальное время я читал нечасто.
Сейбел:Когда вы придумывали UNIX, у вас был план сделать четыре части, из которых впоследствии возникнет операционная система. Тогда ваши жена и ребенок уехали на месяц, не мешая вам работать. Предполагаю, что в тот месяц вы работали не разгибаясь. Зачем мы делаем это? По необходимости? Или просто получаем от этого удовольствие?
Читать дальше
Конец ознакомительного отрывка
Купить книгу