Другая Япония

Брайан Керниган. Человек, который не делал С

Автор: Алексей Доля
Опубликовано в журнале "Домашний компьютер" №4 от 2 апреля 2003 года.

Брайан Керниган (Brian Kernighan) ? создатель нескольких языков программирования (AWK и AMPL) и текстовых утилит (входящих в комплект базовой установки любой UNIX), работал в звездной команде в Bell Labs (ее члены разработали операционную систему UNIX и языки программирования С и С++), профессор Принстонского Университета и автор ряда книг по программированию. Брайан застал рождение еще первых компьютеров: больших, необычайно сложных в эксплуатации, хранящих информацию на перфокартах. На его глазах вычислительная техника меняла свои формы, размеры, эффективность и гибкость управления. Возникали новые языки и операционные системы. Брайан не был сторонним наблюдателем, его имя прочно отпечатано на страницах компьютерной истории. Он и его коллеги изменили мир.

Брайан, расскажите немного о себе, пожалуйста.
? Ну что ж, слушайте, раз спросили. Я родился в Торонто и там же учился в университете по специальности «Инженерная физика». Курс основывался на глубоком изучении естественных наук, математики и инженерных дисциплин. В принципе, он предназначался для тех, кто хорошо разбирается в математике, хочет стать инженером, но не знает конкретно, чем именно предстоит заниматься. Это был очень сложный курс, две трети всех студентов просто выгнали, но мне удалось выжить и многому научиться, хотя сейчас я помню лишь малую часть от этого.
О компьютерах я знал очень немного ? в 1960?1964 годы в Торонто был лишь один большой компьютер, IBM 7090, и один поменьше (IBM 1620) на факультете электротехники. Свой первый компьютер, IBM 650, я увидел на втором году обучения. На третьем курсе я уже немного программировал на Фортране. Потом я провел все лето, работая над большой программой для крупной нефтяной компании (честно!). Программа была написана на Коболе. Этого было достаточно, чтобы «подсесть» на программирование, хотя я не могу утверждать, что был хорошим программистом, и уж точно не представлял, к чему приведет мое увлечение.
В Торонто я написал дипломную работу ? целое исследование, правда! ? на тему искусственного интеллекта. Работа показалась мне многообещающей, поэтому в 1964 году я решил пойти в аспирантуру. Хотя я не очень представлял, чем мне предстоит заниматься, все же это было легче, чем искать работу. Я остановил свой выбор на университете в Принстоне (Princeton), так как он предлагал лучшие финансовые условия, к тому же в нем учился мой хороший друг, Аль Ахо (Al Aho). В Торонто Аль Ахо учился на старшем курсе того же факультета, что и я.
В те времена в Принстоне не было факультета вычислительной техники (Computer Science), была лишь группа молодых ученых, хорошо разбирающихся в электротехнике. Но мне там очень понравилось, я провел несколько счастливых лет, прежде чем приступить к написанию своей собственной работы. Поистине, мне повезло, что я попал именно в эту аспирантуру.
Вы женаты?
? Да. Моя жена выросла в Принстоне. Ее отец преподавал английскую литературу в Принстонском Университете. Я познакомился с ней, будучи аспирантом. В то время она работала в начальной школе. Мы женаты уже 33 года, у нас сын, который в университете специализировался по математике и английскому (интересная комбинация своих родителей, на мой взгляд). Затем он поступил в аспирантуру Гарварда, чтобы изучать статистику. Сейчас мой сын ? сильный шахматист, действующий мастер, член Шахматной Федерации США. Я сам научил его играть, но с тех пор, как сыну исполнилось 6 лет, я ни разу не выиграл у него.
А как получилось, что ваша жизнь связана именно с компьютерами?
? Думаю, поворотным моментом было лето 1966, когда благодаря счастливой случайности я получил работу над проектом MAC для Фернандо Корбато (Fernando Corbato) из Массачусетского технологического института. Это был просто фантастический опыт ? я использовал CTSS1, которая была одной из самых первых систем общего назначения с разделением времени и с которой приятно работать до сих пор. Это было намного более эффективно, чем перфокарты, которые применялись чаще. Я выучил MAD2 и написал несколько программ, позволяющих собирать информацию для машины Multics3. А летом появился первый GE 6454. Я провел удивительные годы, учась и работая с замечательными людьми, например, Корби5, который до сих пор ведет активный образ жизни. Это было самым лучшим временем в моей жизни.
Следующим летом я устроился в Исследовательский Центр по Вычислительной Технике (Computing Science Research Center) в Bell Labs. Немалую роль в получении этой работы сыграл опыт, приобретенный мною в работе для Массачусетского Технологического Института (МТИ). На новом месте мне пришлось хорошо выучить ассемблер. Это лето стало очень важным для меня. Я встретил много людей, о которых только слышал в МТИ. Все они работали над Multics?ом. Я работал с Шен Линь (Shen Lin) ? великим математиком и ученым. Шен интересовался сложной комбинаторной оптимизацией, например задачей коммивояжера (Traveling Salesman Problem). Я же занимался проблемой разделения графов для моей диссертации в Принстоне. У Шен была идея, как можно решить задачу в общей постановке. На ее основе я написал программу, используя Фортран. Алгоритм этой программы вместе с частными случаями задачи вошел в мою диссертацию.
Мне настолько понравилось работать в Bell Labs, что, как только я закончил свою диссертацию (в 1969 году), я не искал новую работу и остался в Bell Labs. Мне очень повезло ? я попал в группу, которая разработала UNIX, С и еще целую кучу полезных вещей. И все это началось сразу же после моего прибытия в команду! Во многих отношениях это была самая сильная исследовательская группа в мире. Наша деятельность изменила мир. Я работал там вплоть до 2000 года ? тридцать чудесных лет я провел с этими замечательными людьми.
А где вы работаете сейчас?
? Работая в Bell Labs, я несколько семестров преподавал в Принстоне и Гарварде. Мне очень понравилось преподавание, и я провел целый академический год (1999?2000 гг.) в качестве профессора на факультете вычислительной техники в Принстоне. Принстон предложил мне постоянное место. После нескольких месяцев душевных терзаний я все-таки принял нелегкое решение уволиться из Bell Labs и стать профессором. Моя работа значительно отличается от прежней, но я люблю ее очень, к тому же у меня остается немного свободного времени. У нас сильный университет, любопытные и интересующиеся студенты,  замечательные коллеги, и просто мне нравится с ними работать. Я думаю, что было бы неправильно устроиться на эту работу сразу после окончания университета, но сейчас ? самое то.
Какие дисциплины вы преподаете?
? Один из курсов называется «Компьютеры в нашем мире». Он рассказывает, как работают компьютеры и коммуникации и предназначен для студентов нетехнических факультетов, специализирующихся в литературе, политике, истории и других гуманитарных дисциплинах. Очень весело обсуждать с ними последние события, хоть как-то относящиеся к компьютерам. Единственное, что я не обсудил в 2002 году (но вполне мог), так это ситуацию с Дмитрием Скляровым и ElcomSoft. Я имею в виду DMCA, закон США, затрагивающий и политическую, и техническую стороны. На мой взгляд, именно этот закон Скляров грубо нарушил6.
Курс также включает вопросы, как компьютеры работают и из чего состоят, программное обеспечение ? алгоритмы, программирование, языки, системы, приложения ? и коммуникации: Интернет, сети, криптографию, компрессию и т. д. У нас также есть лаборатории, где студенты создают свои собственные web-странички, пишут простенькие программы и экспериментируют со звуком, графикой и печатью.
Другой курс ? «Улучшенные техники программирования», для студентов, специализирующихся в вычислительной технике. Курс посвящен реальному созданию приложений: скриптовым языкам, объектно-ориентированному программированию на С++ и Java, интерфейсам пользователя, сетевым соединениям, базам данных, компонентам, шаблонам и т. п. Студенты учатся создавать многопользовательские проекты, так что я обучаю их также и проектированию программного обеспечения. Ведь им приходится заботиться о структуре своего проекта, интерфейсах, тестировании, документации и даже о создании демо-версий и презентаций.
Современный мир информационных технологий многогранен. Существует много различных платформ, операционных систем, языков программирования и т. д. В чем вас можно считать экспертом?
? Я считаю себя экспертом в системах подготовки документов, системах типа troff для UNIX, и в инструментах для набора текстов. Я поддерживаю и расширяю troff уже очень долго, написал также много других инструментов для работы с текстом. Например, eqn ? для набора математических символов. Я долго исследовал именно эти направления. Также я хорошо разбираюсь в таких вещах, как стили программирования. Особенно что касается С. Хотя сейчас я уже не так силен. Слишком много вещей, которые надо знать, а с возрастом все больше и больше забывается.
Какова ваша роль в рождении и дальнейшей судьбе С?
? Я не принимал никакого участия в создании С. Это полностью работа Дениса Ритчи. Мое участие заключалось в написании руководства по использованию С для сотрудников Bell Labs и еще одной книги вместе с Денисом Ритчи. Но Денис мог написать все и сам, если бы захотел. Он очень хороший автор. Это может увидеть каждый, достаточно заглянуть в справочное руководство по С. Это фактически его проза, причем без каких бы то ни было правок. Я получил кое-какую выгоду от соавторства с Денисом, я считаю его своим хорошим другом, но с языком С я ничего не делал.
Как вы считаете, С ? это язык высокого или низкого уровня?
? На сегодня С ? это оптимальный баланс между выразительностью и эффективностью среди всех языков программирования. В те времена, когда он был разработан, производительность играла большую роль: машины были очень медленными и обладали маленькой памятью, так что приходилось приближаться по эффективности к ассемблеру. С идеально подходил для системного программирования: написания компиляторов, операционных систем и утилит. Он был так близок к машине, что вы без труда видели, какой получится код, поэтому-то так легко было писать компилятор. Он предоставлял хороший уровень безопасности для инструкций и независимость от платформы ? и вы могли спокойно писать программу и не задумываться о том, где она будет работать. Как только появился С, исчезли все причины, побуждающие нормальных программистов писать на ассемблере. С ? мой любимый язык, если бы меня выбросило на пустынный, необитаемый остров всего с одним компилятором, я бы предпочел, чтобы это был С.


1 (назад)CTSS (Compatible Time Sharing System) была одной из самых первых (а, возможно, и самая первая) систем с разделением времени. Разработана в Массачусетском Технологическом Институте для IBM 7094. CTSS была простой в эксплуатации и очень эффективной. Она позволяла работать одновременно 30 пользователям. Для сегодняшнего дня это, конечно же, очень скромный результат. По воспоминаниям Брайана Кернигана.
2 (назад) MAD (Michigan Algorithm Decoder) ? высокоуровневый язык, разработанный в университете Мичигана командой во главе с Бернардом Геллером (Bernard Geller). Язык принадлежал тому же классу, что и Алгол с Фортраном. MAD был прост и удобен (естественен) в использовании. Он не приобрел широкого распространения, но многие программы для CTSS были написаны именно с его помощью. По воспоминаниям Брайана Кернигана.
3 (назад) Так называлась первая UNIX. Прим. автора.
4 (назад) Компьютер компании General Electric. Прим. автора.
5 (назад) Фернандо Джоус Корбато (Fernando Jose Corbato) ? профессор вычислительной техники (computer science) в Массачусетском технологическом институте. Фернандо приложил много усилий для создания ОС Multics, которая в будущем благодаря Д. Ритчи и К. Томпсону превратилась в UNIX. Прим. автора.
6 (назад) Хотим подчеркнуть, что высказанное здесь мнение целиком и полностью принадлежит Брайану Кернигану. Прим. ред. 
 


стр. 1 | стр. 2



Маленькая сопровождающая картинка к журналу Читайте на сайте тему номера Мультипликация анимации и другие статьи из журнала "Домашний компьютер" №4 (82) от 2 апреля 2003 года.

Версия для печати | Обсудить на форуме


Автор: Алексей Доля.
Рубрика: VIZ-A-VIZ.

Ранее в рубрике "VIZ-A-VIZ"

Брайан Керниган. Человек, который не делал С

Брайан Керниган (Brian Kernighan) ? создатель нескольких языков программирования (AWK и AMPL) и текстовых утилит (входящих в комплект базовой установки любой UNIX), работал в звездной команде в Bell Labs (ее члены разработали операционную систему UNIX и языки программирования С и С++), профессор Принстонского Университета и автор ряда книг по программированию. Брайан застал рождение еще первых компьютеров: больших, необычайно сложных в эксплуатации, хранящих информацию на перфокартах.


Журнал "ДК"

"Домашний Компьютер" #5 (143)

Журнал "Домашний компьютер" №5-2008 Тема номера: "Цифровые ассистенты"

В розничной продаже с 07 мая 2008 года.

PDF-архив журнала "ДК"


Компьюлента

Подписка на статьи ДК-HiFi
Введите ваш e-mail:

О ЖУРНАЛЕ|О САЙТЕ|КОНТАКТЫ|
© ООО "Компьютерра-онлайн" 2003-2006.
При использовании материалов сайта ссылка на "ДК" обязательна.
При использовании материалов бумажного издания ссылка на источник обязательна.
Техподдержка сайта: websupport@computerra.ru
Работает на <Битрикс: Управление сайтом>
Почта защищена сервером СПАМОРЕЗ

Fatal error: require() [function.require]: Failed opening required 'class.getcpr.php' (include_path='.:/usr/local/lib/php') in /opt/wwwroot/shared/bitrix/php_interface/nd/epilog_main.php on line 447