кого-то, и если я не программирую несколько недель подряд, - это нормально. Когда это было моей профессией, я всегда хотел быть в курсе всех дел проекта. Теперь же я хочу быть в курсе как минимум одной или двух композиций.

Сейбел: Вы сказали, что раньше думали, будто разрабатывая ПО, сможете изменить мир к лучшему. Как вы себе это представляли?

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

Конечно, в то время, когда я начал заниматься программированием, и даже в 1980-х компьютерные технологии прочно ассоциировались с миром корпораций. Я же, в соответствии со своими политическими убеждениями, был настроен против этого мира корпораций. Вид программирования, которым я всегда занимался, сегодня бы назвали личным программированием, интерактивным. Мне кажется, отчасти мной двигала мысль о том, что если каким-то образом множество людей овладеет мощью компьютеров, это создаст определенный противовес власти корпораций.

Даже в самых смелых своих мечтах я не мог бы предсказать того, к чему придет в своем развитии Интернет. И я никогда не смог бы предсказать, до чего влияние крупных корпораций на Интернет изменит его характер с течением времени. Тогда я был склонен считать Интернет по сути абсолютно неуправляемым, теперь же я так не думаю. Пример Китая показывает, что им можно управлять, и еще как.

И мне кажется, весьма вероятно, что если Microsoft правильно распорядится своими возможностями, то единолично завладеет Интернетом. Я уверен, что Microsoft не против такого развития событий, но мне кажется, им может хватить ума увидеть связь между тем положением, в котором они находятся сейчас, и положением, в котором у них, по сути, будет контроль над всем ПО, используемым в Интернете.

Поэтому я без большого оптимизма смотрю в будущее информационных технологий. Если быть откровенным, то это именно одна из тех причин, по которой мне было несложно уйти из этой профессии. Я видел мир, который находился в единоличном владении монополиста, не имеющего никаких представлений об этике, - и я не видел себе места в этом мире.

12. Кен Томпсон

Кен Томпсон - один из первых бородатых великих хакеров UNIX. На протяжении своей карьеры он занимался всем, что только казалось ему интересным, в том числе - в разное время - аналоговыми вычислениями, системным программированием, регулярными выражениями и компьютерными шахматами.

Он работал исследователем в проекте MULTICS Bell Labs. Когда Bell Labs решила прекратить разработку MULTICS, Томпсон вместе с Денисом Ричи продолжил работу над UNIX - за что его вполне могли уволить. Также он изобрел язык программирования Би - предшественник языка Си, созданного Денисом Ричи.

Затем он заинтересовался компьютерными шахматами и создал Belle - первый специализированный шахматный компьютер, сильнейший среди компьютерных шахматистов того времени. Он также помог довести энд-шпильные шахматные таблицы до такого уровня, что они охватили все четырех- и пятифигурные окончания.

Работая над операционной системой Plan 9 компании Bell Labs, он предложил ныне повсеместно используемую кодировку Юникода UTF-8.

В 1983 году Томпсон и Ричи получили премию Тьюринга “за развитие теории порождающих операционных систем и в особенности за внедрение операционной системы UNIX”. Также Томпсон был награжден Национальной медалью за технологии и премией Tsutomu Kanai Института инженеров электротехники и электроники (IEEE) - оба раза за работу над UNIX.

В этом интервью он рассказал о своей давней любви к электронике, о довольно нетривиальной академической карьере, в ходе которой он еще студентом вел несколько курсов, а также о своих опасениях по поводу современного программирования.

Сейбел: Как вы научились программировать?

Томпсон: Меня всегда завораживала логика, и даже в школе я предпочитал решать арифметические примеры в двоичном исчислении и тому подобное. Мне это просто нравилось.

Сейбел: То есть так вы делали их для себя более интересными?

Томпсон: Нет-нет. Я разработал таким образом алгоритмы для сложения в разных базисах, узнал, что значит перенос, что обозначает каждый столбец и так далее. И у меня было небольшое десятичное арифметическое устройство, вроде счетов[71]. Вместо каждого разряда там был ползунок от нуля до девяти. Вычитать надо было с помощью нижней колонки, а добавлять - с помощью верхней. Берешь стилус и сдвигаешь им ползунок на четыре, например, деления, при переполнении разряда переходя в соседнюю колонку. Позже, основываясь на этом варианте, я сделал двоичное устройство, а потом обобщил его до личного.

Сейбел: Как вы впервые узнали о двоичной арифметике?

Томпсон: В классе, как раз когда я начал этим заниматься, нас познакомили с двоичным счислением.

Сейбел: Вы стали жертвой “новой математики”?

Томпсон: Нет-нет. Я был жертвой плохой математики. Мы переезжали каждый год, я учился в очень, очень плохих школах, а потом в хороших. Так что мне иногда приходилось за год проходить двухлетнюю программу, а потом я год ничего не делал. На математике я просто бездельничал, так что начальное математическое образование у меня просто ужасное. И вот в одном классе как раз рассказывали про двоичную арифметику. Я заинтересовался, расширил ее до любого базиса и стал с ней играть. Вот так все и началось.

Сейбел: И это было еще в школе?

Томпсон: Да, в седьмом классе. Позже, где-то в выпускном классе, я сильно увлекся электроникой - собирал радио, усилители, осцилляторы и терменвоксы. И очень заинтересовался аналоговыми вычислениями. Это и впрямь было потрясающе. Все это время электроника была моей страстью. Я поступил на соответствующий факультет в Беркли и только там на первом курсе впервые увидел настоящие цифровые компьютеры.

Сейбел: В каком году это было?

Томпсон: Я поступил рано, и тогда в году было три семестра. Поступил я в сентябре 1960 года, так что это, видимо, весна или осень 1962-го. У них был аналоговый компьютер, за которым мне нравилось работать. И была еще барабанная вычислительная машина - G15. Была одна учебная лаборатория с ними, и тогда она была всегда открыта. Там мог заниматься любой, но почти никто не хотел, так что всегда было свободно. И главным образом сидел там я один. Я писал на ней собственные программы по масштабированию — собственно, почти все аналоговое вычисление сводится к масштабированию.

Сейбел: В каком смысле “масштабирование”?

Томпсон: Масштабирование времени и амплитуды. Обычно все, что нужно было сделать, - это построить функцию. Вводишь некоторые данные, затем получаешь функцию для этих данных и связываешь результаты. И ни в один момент нельзя забираться слишком высоко, иначе наткнешься на отсечку.

Точно так же измеряешь время: делишь на два частоту в одних случаях или удваиваешь ее в других. И когда так делаешь, меняется и линейное масштабирование. Так что если есть несложная задача, при которой масштабирование не нужно, то аналог - это отличное решение. Но когда появлется масштабирование, все становится очень, очень сложным. И вот я написал цифровые компьютерные программы для масштабирования установок аналогового компьютера. Без вычисления точной формы сигнала считаешь амплитуду и частоту формы сигнала в каждой точке. И таким образом понимаешь, где

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату