Интервью с одним из отцов UNIX Кеном Томпсоном

Он и есть флейм

Интервью с одним из отцов UNIX Кеном Томпсоном

Сообщение pomidoroff Чт июн 09, 2011 5:44 pm

Откуда взято:
http://execbit.ru/2011/05/20/ken_thompson_int/


Фонд Japan Prize, ежегодно присуждающий премии за вклад в науку и технологии, в этом году удостоил награды Дениса Ритчи и Кена Томпосона. По этому случаю портал Dr.Dobb’s взял у Кена Томпсона интервью, перевод которого и представлен в этом посте.

DDJ: Поздравляем с получением приза.

KT: Спасибо.

DDJ: Вы получили массу наград за все время существования UNIX. В какой момент разработки UNIX вы поняли, что проект превращается во что-то гораздо большее, чем вы предполагали в начале?

KT: Такого резонанса предположить не мог никто. Я предполагаю, что шумиха вокруг UNIX продолжает расти и сейчас. Я считал, что UNIX будет полезен кому-то вроде меня, потому что он был создан не для кого-то, а нас самих. UNIX был написан для Дениса, меня и нашей группы чтобы делать свою работу. И я думал, что он был бы интересен каждому, кто занимается подобной работой. Поэтому, в том, что UNIX стал столь популярен, есть что-то действительно хорошее.

В особенности язык [C]. Язык родился в результате одного из переписываний системы и сам по себе стал идеальным языком для создания операционных систем. Мы меняли его каждый день. Каждый раз, когда мы сталкивались с ограничениями C при создании UNIX, мы меняли его так, как нам было нужно.

DDJ: Своего рода симбиоз…

KT: Да. Он стал превосходным языком в той области, для которой был разработан. Я всегда считал, что области применения и языка, и системы очень широки.

DDJ: В сегодняшней презентации была сказано, что UNIX с самого начала был открытым? Означает ли это, что это был проект с "открытым исходным кодом"?

KT: Ну, в те времена еще не существовало понятия "открытый исходный код".

DDJ: Я думал, что UNIX стал по-настоящему открытым только с появлением дистрибутива Беркли (имеется ввиду ОС BSD, начатая как модификация UNIX, но затем полностью переписанная и выпущенная как open source. прим. пер.)

KT: Нет, изначально мы распространяли UNIX вместе с исходным кодом за 100$, но в сущности эта была цена ленты, плюс стоимость пересылки по почте. Таким образом мы распространили, ну наверное, около 100 копий между университетами и другими учреждениями.

DDJ: Пропустим несколько десятилетий последующей работы и поговорим о языке Go. Я недавно был на конференции Google I/O, где прозвучала новость о том, что Google App Engine будет поддерживать этот язык. Является ли это событие предвестником более широкого распространения Go внутри Google или же это до сих пор экспериментальная разработка?

KT: Из-за кривой обучения Go трудно адаптировать к какому-либо проекту внутри Google. Это совершенно новый язык, для которого еще нет хорошей документации, за исключением нескольких руководств, опубликованных в сети. И, конечно же, он носит статус экспериментального, а это пугает людей. Однако, внутри Google Go развивается очень быстрыми темпами.

DDJ: В презентации, показанной до начала вручения награды, была приведена ваша цитата о различии между исследованием и разработкой. [Исследование, по заявлению Томпсона бесцельно, тогда как разработка имеет конкретную цель]. В этом контексте Go экспериментальный язык?

KT: Да. Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].

DDJ: Я думаю, что в этом многие солидарны с вами.

KT: C++ слишком усложнен. Кроме того, если бы нам нужен был объектно-ориентированный язык, мы бы сделали объектно-ориентированную версию C еще в старые времена.

DDJ: Вы говорите, что вы могли бы сделать это?

KT: Да, но мы не сторонники объектно-ориентированного подхода. [Возвращаясь к Go,] мы начали с идеи о том, мы должны обговаривать каждую особенность нового языка, поэтому в результате язык получился лишенным любого мусора, для включения которого в язык не было веских доводов.

DDJ: Действительно, это "постный" язык.

DDJ: Возвращаясь к UNIX, к тому моменту, когда вы и Денис Ритчи работали вместе, как происходила эта работа? Вы работали бок о бок?

KT: Я разрабатывал первые две или три версии UNIX самостоятельно. А Денис был ярым фанатом этой системы. Затем мы переписали UNIX на более высокоуровневом языке, который получил имя C. В основном Денис работал над языком и подсистемой ввода-вывода, всем остальным занимался я. Мы делали это для компьютера PDP-11, самого счастливого компьютера, на котором держалось все академическое сообщество.

DDJ: Так, ясно.

KT: Мы сотрудничали каждый день. Мы вместе обедали. И в это время беседовали. Ночью каждый из нас работал в своем доме, но мы постоянно были на связи. В те дни, у нас была почта и writ (произносится как write), и каждый раз, когда от кого-то приходило сообщение, writ показывал всплывающее окно.

DDJ: То есть по сути это была служба обмена мгновенными сообщениями (IM)?

KT: Да, IM. Тогда мы не задумывались об этом. Мы легко работали вместе и не слишком часто контактировали, за исключением тех ситуаций, когда надо было обсудить кто над чем собирается работать. В остальное время мы работали независимо и над совершенно разными вещами. Мы редко работали над одним и тем же.

DDJ: Была ли у вас какая-то система взаимной проверки/оценки кода (code review)?

KT: [Качая головой] Мы оба были очень хорошими кодерами.

DDJ: Я подозреваю, что скорее всего это правда! [смех].

DDJ: Вы использовали какие-либо системы управления исходным кодом когда работали вместе?

KT: Нет, такие системы появились позже; уже после UNIX. У нас было что-то похожее на них, мы называли это "мотель кода", потому что код можно было внести, но нельзя было получить обратно! А если серьезно, нет, мы ничем подобным не пользовались.

DDJ: Бьюсь об заклад, вы используете системы управления исходным кодом в наши дни, для работы над Go.

KT: О да, Google заставляет нас делать это!
pomidoroff
 
Сообщения: 305
Зарегистрирован: Пт окт 19, 2007 11:11 am
Откуда: Москва

Вернуться в Флейм

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron