Это перевод интервью Расом Коксом (Russ Cox), одним из разработчиков операционной системы Plan 9 и языка программирования Go, автором сервиса Google Code Search и программного комплекса Plan 9 from User Space. Оригинал.
1. Кто вы и чем занимаетесь?
Я пишу программы. Около десяти лет я работал над операционной системой Plan 9 from Bell Labs. Сейчас я работаю в Google, где создал сервис Google Code Search и, как часть этой работы, библиотеку регулярных выражений RE2. Последние два с половиной года я был одним из ключевых разработчиков языка программирования Go. В свободное от работы время я написал последние две версии программной платформы, на которой работает Online Encyclopedia of Integer Sequences.
Еще я пишу о программах. Как писатель я больше всего известен за работы Как создавать регулярные выражения и идею рекурсивного zip-файла.
2. Какое железо вы используете?
Я потерял интерес к погоне за новинками (в оригинале "new shiny") много лет назад. Теперь я предпочитаю один раз найти подходящее мне железо и использовать его в будущем. Кроме того я редко озабочиваю себя тем, чтобы заплатить за новинку, если я могу купить предыдущую модель за меньшие деньги.
Дома я использую отремонтированный Mac Mini 2006-го года, подержанный монитор Dell 2001FP 20” LCD 2004-го года и лазерный принтер Samsung ML-1750 2004-го года. Среди более нового железа имеется Apple Time Capsule, используемый для бэкапа и поддержки домашней сети, Netgear ReadyNAS Duo (в конфигурации RAID1), используемый в качестве сетевого хранилища данных и Fujitsu ScanSnap S510. Я печатаю (в оригинале использовано слово "swear" - ругаться) на небольшой клавиатуре от Apple и управляют курсором с помощью мыши Evoluent. Все эти устройства очень хорошо удовлетворяют моим потребностям. Единственная вещь, которую я бы мог заменить, если бы собрался, это ReadyNAS. Дело в том, что мне попалась бюджетная модель, которая работает под управлением Linux на процессоре, который можно назвать "SPARC, симулированный на FPGA"; сказать, что он работает медленно - ничего не сказать. С другой стороны это всего-лишь хранилище. Принтер и сканер, которые я используя, кажутся экстравагантными в наше время, но это превосходные рабочие лошадки, которые стоят своих денег.
Вне дома (и часто внутри него) я работаю на своем ноутбуке. С 2004 года до последнего времени я использовал IBM Thinkpad X40, небольшой, легкий, прочный лэптоп с тремя кнопками рядом с тачпадом (чего еще можно желать?). Недавно я заменил его на отремонтированный Lenovo Thinkpad X201s, также небольшой, легкий, прочный и с тремя кнопками рядом с тачпадом. Более того, он оснащен великолепным экраном с большим разрешением, твердотельным диском, четырех-ядерным процессором и четырьмя гигабайтами оперативной памяти. Я в курсе, что по нынешним меркам это не так уж и много, но я чувствую себя так, как буд-то нахожусь в будущем.
3. Какое ПО вы используете?
Я использовал Plan 9 from Bell Labs в качестве моего повседневного рабочего окружения примерно до 2002 года, до тех пор пока я окончательно не осознал, что не смогу противостоять двум фактам: во-первых, тому, что интернет окончательно вошел в нашу жизнь, а во-вторых, что у Plan 9 не было никакой надежды двигаться в ногу с его развитием. Портировать браузер Mozilla а Plan 9 было бы слишком долгим и сложным делом, поэтому я ограничился тем, что перенес почти все пользовательские приложения Plan 9 во FreeBSD, Linux и OS X. Результат получил имя Plan 9 from User Space и сегодня он более распространен, чем Plan 9 когда-либо.
Я использую acme в качестве моего повседневного рабочего окружения. Он выполняет роли редактора, терминала и оконной системы. Трудно понять что это такое, никогда не пробовав его использовать, но это видео должно немного помочь.
Редактор sam, разработанный Робом Пайком также заслуживает отдельного упоминания. С точки зрения интерфейса это графическая версия редактора ed, который, любите ли вы его или ненавидите, делает две вещи лучше чем любой другой известный мне текстовый редактор. Во-первый, это настоящий мульти-файловый редактор. Я использую его для редактирования тысяч файлов за раз в интерактивном режиме. Во-вторых, и это более важно, он обалденно хорошо работает через низко-скоростные и имеющие высокие задержки каналы связи. Я могу запустить sam в Бостоне чтобы отредактировать файлы в Сиднее используя SSH-соединение с такой низкой скоростью, при которой vi или emacs были бы абсолютно непригодны к использованию. Sam состоит из двух компонентов: UI работает на локальной машине и знает о секциях файла, которые находятся на экране или близко к видимой области, компонент бэкенда работает на машине, имеющей доступ к файлам, они общаются с помощью хорошо спроектированного протокола (sam был написан в начале 1980-х для сетей со скоростью передачи 1200 б/с, так что кажется удивительным каким важным остается дизайн в наше время, но фактически, это тот же базовый дизайн, закладываемый в любое сколько-нибудь значительное JavaScript-приложение сегодня. Наконец, sam это редактор, которым пользуются Кен Томпсон (Ken Thompson) и Бьярн Страуструп (Bjarne Stroustroup), а делать что-то, что делают они, значит двигаться в правильном направлении.
Не считая инструментов Plan 9, я предпочитаю софт компании Google. Я использую Google Chrome чтобы проверить свой Gmail-ящик на домене swtch.com, я использую Blogger для публикации постов (но я пишу их в acme), Google Reader чтобы следить за новостями, Google Voice для звонков по телефону.
Я предпочитаю использовать Picasa для управления фотографиями на моем маке и для их загрузки на SmugMug, я использую SmugFolio для их синхронизации с Android-телефоном. Во время путешествий я пользуюсь Tripit и соответствующим Android-приложением. Я рад, что могу запустить Android-приложения, такие как SmugFolio на моем Google TV.
Я использую Unison для синхронизации файлов между несколькими компьютерами (Dropbox выглядит очень интересной новинкой, но я предпочитаю Unison потому, что он никогда не сохраняет мои файлы на чужих компьютерах).
4. Каким вы представляете себе идеальное рабочее окружение?
Больше всего мне не хватает вещей, которые были обыденными в Plan 9, например уверенности в том, что за какой бы компьютер я не сел, я получу одно и то же рабочее окружение. Когда я работал с Plan 9 это было нормальным, потому что все мои файлы хранились на файловом сервере, а у рабочих компьютеров не было жестких дисков. После работы можно было пойти домой, сесть за компьютер и продолжить работу над незаконченными делами даже не заметив разницы. Конечно, это работало только благодаря тому, что у каждого из нас было хорошее соединение с сервером, к тому же сохранялось только состояние файлов, а не самих приложений, но так или иначе это было круто.
Сегодня у каждого есть свой жесткий диск и какое-то количество личной информации на нем, поэтому приходится использовать такие системы как Unison или Dropbox (или Mercurial и Git, если вы опытный пользователь) чтобы синхронизировать их. В Plan 9 все это работало "из коробки" и не требовало какого-либо вмешательства. Я мечтаю вернуться к такому окружению, чтобы я смог получить срочное сообщение находясь дома, сесть на поезд, открыть ноутбук и продолжить работу с той точки, на которой я остановился абсолютно не задумываясь о том как это работает.
Возможно путь к этой мечте лежит через перемещение всего в "Облако" (имеются ввиду Облачные вычисления), но до этого еще далеко.
Комментарии