Российский космонавт проверит бортовые компьютеры МКС на вирусы

Человек: Bjarne Stroustrup

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

Бьярн Строуструп создал язык С++ и внес огромный вклад в развитие информационных технологий, фактически совершив революцию в программировании. Благодаря его деятельности программисты всего мира получили такое мощное оружие, как объектно-ориентированную модель. Хотя ООП было известно и до Бьярна (например в Simula67), именно он показал эффективность этой техники программирования.

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

Бьярн, расскажите немного о себе.

- Я родился в Архусе (Еrhus), в Дании. Это маленький чудесный городок с населением около 250 тыс. человек. Он расположен на восточном берегу Жатланда (Jutland). Как и большинство обычных мальчишек, я гулял во дворе, разносил газеты и молоко, чтобы заработать немного денег, играл в футбол, летом ездил на пляж на велосипеде и исследовал местные леса, будучи бой-скаутом. Я не из образованной семьи, однако хорошо учился в школе, а затем и в университете. Ближе к окончанию моей учебы в университете я заинтересовался микропрограммированием и отправился в Англию в Кембридж, где и защитил диссертацию в области математических и компьютерных наук. Сейчас мне 51 год. Я женат, у меня двое детей, оба студенты университета.

Где вы живете?

- В Вотчунге (Watchung) в Нью-Джерси. Это небольшой городок с кучей зелени. Если посмотреть на него летом с воздуха, можно видеть одни лишь деревья. Он находится в 10 минутах езды от Муррей Хилл (Murray Hill), где я работаю в Лаборатории Белл (Bell Labs), и в 30 минутах от другого моего места работы в Лаборатории AT&T (AT&T Labs), расположенной в парке Флорама (Florham Park). До Нью-Йорка тоже недалеко - примерно 50 км. Из окна своего дома я мог видеть башни Всемирного Торгового Центра.

У вас был компьютер в детстве?

- Нет. Это было очень давно. Компьютеры были очень дорогими, и лишь университеты и крупные компании могли себе их позволить. Первый компьютер GIER я увидел на математическом факультете. Старый датский компьютер, занимавший целую комнату и «питавшийся» перфокартами. На нем я учился программировать на «Алголе 60».

У каждого великого пути свое начало. Билл Гейтс, например, написал первую программу на Бейсике и продал ее своей школе. А как вы начинали?

- Наверное, ключевым проектом стала разработка симулятора распределенных систем. Я написал его на «Симула 67» как часть своей докторской в Кембридже. Многое из того, чем мне пришлось заниматься во время учебы в университете, способствовало моей дальнейшей деятельности. Например, небольшие коммерческие программы для Архуского представительства компании «Буррохс» (Burroughs), созданные мной, для финансирования докторской. Так я учился разрабатывать программы, необходимые людям в их работе. А это намного сложнее, чем написать программу для себя или своих друзей. Я общался с конечными пользователями для того, чтобы учесть их пожелания при проектировании программ. В дополнение пришлось изучить архитектуру компьютеров, что помогло мне в выборе языков программирования и средств реализации.

Если вам интересны «личные» аспекты создания языка С++, то обязательно прочитайте главу обо мне и С++ в книге Стива Лора (Steve Lohr) «Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution» (ISBN 0-46-504225-2). А чтобы понять технические мотивы создания С++, почитайте мою книгу (в переводе на русский язык - «Дизайн и эволюция языка С++», прим. редакции). Между прочим, я очень рад, что все мои книги переведены на русский. Значит, кто-то потратил много времени, чтобы прочесть и понять их, а потом сделать доступными для своих соотечественников.

И все-таки, что вдохновило вас на создание языка C++?

- После окончания учебы в Кембридже в 1979 г. я поехал в США на должность исследователя в AT&T Bell Labs в Муррей Хилле, Нью-Джерси. Там я начал разрабатывать несколько проектов, касающихся распределенных вычислений в локальных сетях. Но ощутимого успеха добиться не удалось - у меня не было нормальных инструментов для решения возникающих задач. Поэтому пришлось разработать собственный язык - «С с классами», который позволял мне использовать стиль Simula для организации программ (сейчас это называется объектно-ориентированным программированием). С++ взял за свою основу именно «С с классами», который использовали многие мои коллеги и я.

Вы гордитесь своим детищем, С++?

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

Что вы чувствуете, зная, что миллионы людей используют инструмент, созданный вами?

- Да, мне очень приятно, но, как я уже сказал, надеюсь, что люди будут изучать С++ глубже и писать программы лучше.

Как вы считаете, создание языка С++ - самое значительное событие в вашей жизни?

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

Безусловно, в будущем я постараюсь сделать еще что-нибудь значимое и полезное, но это будет несравнимо с С++.

Недавно я решил преподавать и принял должность профессора в Техасском A&M Университете. Это позволит мне совместить исследовательскую деятельность с преподаванием, что было нереально при моей работе в AT&T. В преподавании я вижу возможность повлиять на окружающий мир, сделать его лучше. А исследовательская деятельность в университете послужит дополнением моих работ в области промышленности. Хотя я и не собираюсь разрывать свои отношения с AT&T и вообще с промышленностью, так как все важные исследования так или иначе с ней связаны.

Вас пытались переманить к себе другие компании?

- Конечно. И не одна. Несколько компаний и университетов. Но я согласился на их предложения только в этом году.

Вы используете С++ в своей работе?

- Это мой основной инструмент.

Какой компилятор является лучшим на ваш взгляд?

- Большинство реализаций С++ сейчас довольно хороши. К тому же, они близки к стандарту ISO C++ и имеют неплохую производительность. Я не рекомендую пользоваться компиляторами, отошедшими от стандарта. Например такими, как Watcom.

А какими компиляторами вы пользуетесь сами?

- На данный момент GNU, Microsoft, Borland, SGI и Metrowerks.

Если не секрет, над чем вы сейчас работаете?

- Ищу способы проведения распределенных вычислений. С их помощью пытаюсь преобразовать стандартный С++ код для работы на различных распределенных архитектурах.

Какая ваша любимая операционная система?

- Я использую Unix и Windows 2000.

Какой Unix?

- На данный момент, Solaris, Irix и Linux. Я пытаюсь не зависеть от особенностей ОС, отличных от общего стандарта.

Вы считаете, что эти ОС лучшие на сегодняшний день?

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

Какому процессору вы бы отдали предпочтение: Intel или AMD?

- Сложно сказать, но архитектура 8*86 не моя любимая. Способ, которым она использует железо для выполнения своих устаревших инструкций, заставляет меня предпочесть архитектуру RISC.

Сколько времени вы проводите за компьютером?

- Обычно более 8 часов в сутки, чуть меньше по выходным.

Такой напряженный рабочий день не приводит к проблемам со здоровьем?

- Я стараюсь давать время от времени отдых своей левой руке (она лежит на мышке) и пояснице. Гуляю пешком и делаю пробежки. Стараюсь пробегать от 5 до 8 км два или три раза в неделю.

Какой компьютер стоит у вас дома?

- Их несколько. Sun под управлением Solaris, мой IBM-ноутбук с Win2000, карманный компьютер с Linux, старый ПК с Win95 и еще более древний Apple Mac. Как видите, я очень ценю мобильность и в некотором смысле платформонезависимость.

А на работе?

- Sun и мой ноутбук. С их помощью у меня доступ к широкому кругу систем через внутреннюю сеть AT&T. Если интересно, вы можете увидеть офисные компьютеры на фотографии на моей домашней страничке.

Какие языки программирования вы знаете?

- Это зависит от того, что понимать под словом «знаете». У меня есть опыт работы с несколькими языками, а о других - некоторые знания. Например, ML, PERL, Python и Ada.

Какие языки, по вашему мнению, могут составлять конкуренцию С++?

- Это зависит от приложения. Иногда С++ - лучший выбор, а иногда стоит предпочесть Fortran, Java, C# или Python. В определенных ситуациях можно вообще использовать экспериментальный язык, чтобы узнать что-то новое. Существует много языков, разработанных для определенных задач. И было бы глупо всегда придерживаться только одного языка. С другой стороны, конкуренция чаще основана на маркетинге и потребностях. А это я прокомментировать не могу.

Что вы думаете о платформе .Net и перспективах ее детища - языка C#?

- Я слишком мало знаю о .Net, чтобы ответить на этот вопрос.

А можно считать C# универсальным языком, подходящим для любых задач?

- Нет. Он слишком высокоуровневый для системного программирования и слишком заточен под Windows. Это, конечно, не значит, что C# не может быть хорошим средством разработки приложений под Windows, для которой он, собственно говоря, и разрабатывался.

Но .Net может быть реализована на разных ОС. Например, Microsoft предпринимает некоторые шаги для создания этой платформы под FreeBSD. Вы по-прежнему думаете, что она разработана только под Windows?

- Давайте подождем и посмотрим, как все будет развиваться дальше. На данный момент .Net принадлежит Microsoft и разработана под Windows. И я не вижу никаких предпосылок для ее использования где-нибудь еще.

Что вы думаете о пропасти между C и C++? Эти языки расходятся все дальше и дальше друг от друга?

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

Сами вы предпринимаете какие-либо шаги для слияния этих двух языков?

- Пытаюсь показать людям, какие они получат преимущества при объединении C и C++. Я написал целую серию статей для журнала «The C/C++ Users Journal» на эту тему. Вы можете почитать их либо на моем сайте в разделе «публикации» («publications»), либо на сайте журнала. Тем не менее, пока никто не обращает на эту проблему большого внимания, хотя большинство программистов явно бы выиграло от слияния двух языков. Люди надеются, что все уладится само собой.

Вы считаете C++ «лучшим из лучших»?

- Нет. Это не так. Существует много великих языков программирования, и С++ один из них. Не существует такого языка, который бы явился лучшим для любого человека в любой ситуации.

У вас есть какой-нибудь сертификат от Microsoft или других компаний, подтверждающий ваши знания?

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

Как вы считаете, сертификация полезна молодым специалистам и компаниям-работодателям?

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

Если рассматривать лишь программирование под Windows, можно ли считать Delphi конкурентом Visual C++? Он достаточно хорош?

- Конечно, Delphi - великолепный инструмент для разработки приложений под Windows, и, безусловно, его можно считать конкурентом Visual C++. Хотя, когда я хочу использовать Borland?овские IDE и библиотеки, то использую Borland C++ Builder - он очень близок к Deplhi, но основан на С++.

Как вы считаете, знание ассемблера полезно для современных программистов?

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

Последнее издание Hennesey и Patterson. Что это?

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

Работодателям требуются программисты на ассемблере?

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

Вы играете в компьютерные игры?

- Нет. К сожалению, не хватает времени.

Ваше любимое блюдо?

- Не думаю, что люблю что-то больше всего. Любая еда в хорошей компании приносит радость. Однако существует датская кухня, называемая «холодным столом», она начинается несколькими видами сельди, переходит на рыбу и мясо и заканчивается обычно моллюском и сыром. По традиции холодный стол сопровождается пивом и водкой. Моя жена превосходно готовит свиную вырезку с салатом из водяного кресса. Из итальянской кухни мое любимое блюдо - «Зюпетта де Пеш» - рыба с моллюском по-лингински, с пряным соусом «Фра Диаволо». Ням-ням!

Вы счастливы?

- Думаю, да. По крайней мере, я доволен семьей, друзьями, личным вкладом в программирование, карьерой и т. д.

Что бы вы хотели сказать С++ программистам?

- Экспериментируйте со своим кодом и будьте очень осторожны с производительностью ваших приложений. На моей домашней страничке есть «Technical and Style FAQ», где дано много практических советов и примеров. Хотя чтобы развить в себе навыки действительно хорошего программирования, требуется читать книги и статьи. Я считаю, что C++ - язык, поддерживающий несколько эффективных техник программирования. Но чтобы добиться реального результата в современном мире, надо использовать их различные комбинации. Поэтому я призываю людей изучать абстрактные данные (то есть программировать с использованием абстрактных классов), объектно-ориентированную модель (программирование с использованием иерархии классов) и модель прототипов (использование шаблонов). Более того, я рекомендую пытаться комбинировать эти различные техники. И ни в коем случае нельзя становиться фанатиком одной из них, так как каждая техника служит для решения лишь ограниченного круга задач. Очень важно понять, что язык программирования всего лишь инструмент. Изучив основы такого языка, как С++, постарайтесь понять особенности того приложения, которое вам надо создать, но не зацикливайтесь на каких-то тонкостях самого языка. Удачи, и приятной вам работы вместе с С++!

Спасибо, что уделили нам время.


1 (обратно к тексту) - Digital Signal Processor (DSP) - процессор цифровой обработки сигналов (ЦОС), цифровой процессор сигналов (ЦПС) - компьютерная обработка аналоговых сигналов, преобразованных в цифровую форму. Используется в звуковых картах, системах сбора данных и обработки изображений.


Маленькая сопровождающая картинка к журналу Читайте на сайте тему номера Цифруем все! и другие статьи из журнала "Домашний компьютер" №10 (76) от 1 октября 2002 года.

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


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

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

Человек: Bjarne Stroustrup

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


Журнал "ДК"

"Домашний Компьютер" #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