В Москве, с 11 по 15 октября 2010 года, прошла крупнейшая в Центральной и Восточной Европе конференция «Разработка ПО 2010». Организаторами мероприятия выступили: UNOVA Media, TEKAMA, INTSPEI, и ГУ-ВШЭ. За три дня мероприятия было немало интересных событий, но одно из них стало эпохальным – организаторам удалось пригласить самого Бьёрна Страуструпа – легендарного автора языка C++, множества книг (включая каноническую «Язык программирования C++») и научных работ.
Впервые я познакомился с программированием на первом курсе отделения компьютерных наук Орхусского университета и сразу же был им очарован. Мой первый язык программирования был Алгол 60, но вскоре я попробовал многие другие.
Каким вы видели будущее языка, когда создавали C++ в начале 80-х годов? Предвидели ли его такое широкое распространение?
Я разрабатывал и реализовывал C++ в первую очередь для себя, своих друзей и коллег. Понятно, что я не ожидал такого всемирного и долгого успеха языка. В конце концов, у меня не было никаких торговых предложений и не было бизнес-плана. Я просто хотел создать широко применимый инструмент с непревзойденной производительностью. Как оказалось, многие программисты нуждались в подобном инструменте.
Каким вы сейчас видите будущее C++? Когда ожидаете новый стандарт языка?
Недавно я вернулся с заседания ISO C++ по стандартам. Мы на пути к окончательному техническому решению в марте 2011-го, и предположительно, пройдя все бюрократические процедуры, стандарт может быть формально принят позднее в том же году.
Всегда трудно предсказать будущее, но C++, кажется, для своих пользователей и сообщества пользователей является подходящим и всеобъемлющим инструментом.
Стандарт C++0х обеспечит повышение производительности, упрощая разработку качественных систем.
Я думаю, что C++ обладает уникальными преимуществами в областях с ограниченными системными ресурсами, таких как задачи по программированию встроенных систем и в целом в приложениях, содержащих элементы системного программирования. Большая часть информационной инфраструктуры в мире зависит от C++.
Что будет после стандарта C++0х? В каком направлении станет развиваться язык?
Сейчас основное внимание будет уделяться реализации C++0х и развитию стилей программирования, использующих множество новых функций и компонентов стандартной библиотеки. Мы уже на этом пути: многие функции доступны в текущих компиляторах.
Не хочу гадать о направлениях развития C++ после C++0х, но кое-что будет сделано. Прежде всего хочу, чтобы было больше стандартных библиотек, и они стали лучше. Я бы предпочел увидеть несколько значительных улучшений, а не множество мелких изменений.
Вы один из тех людей, кто сделал информационный мир таким, какой он нынче. Можете ли представить, что будет дальше? Чего следует ожидать? Какие технологии будут востребованы? Что изменится в ИТ-мире?
Ждите сюрпризов! ИТ – это область, которая продолжает обновляться. Я надеюсь увидеть усовершенствования в работе с параллелизмом.
Язык C++0x оказывает портативную и типизированную поддержку параллелизма для традиционных систем программирования. Надеюсь, что увижу несколько более высокоуровневых и изящных моделей параллельного программирования.
Интерпретируемый язык и Just-n-time-компиляция получили широкое распространение, в том числе в тех областях, где C++ полностью доминировал. Что вы думаете об этой тенденции? Как к ней относитесь?
Думаю, что Just-n-time – это, в первую очередь маркетинг. C++ теперь реже используется в сферах, где «программирование» является прежде всего предметом стандартных услуг. Это, вероятно, хорошо. С другой стороны, востребованность C++ растет в тех областях, где важны производительность и требования к оборудованию.
Все знают вас как автора языка С++, но вы также автор компилятора для этого языка. Современные компиляторы и среды разработки: что из них вы бы посоветовали?
Не буду рекомендовать реализацию C++ или платформы; среди существующих есть много хороших, охватывающих широкий спектр потребностей. Просто убедитесь, что используемое вами, соответствует стандартам, а затем попытайтесь применить C++ в достаточно современном стиле. Помните, что писать в стиле С на С++ неоптимально – так пишется примитивный объектно-ориентированный код на C++.
Язык C++ имеет свой собственный стиль и идиомы (во многом опираясь на классы и шаблоны). Вы получаете лучший код (более управляемый, проще спроектированный, более эффективный), используя их.
Что вы думаете о растущем интересе к функциональным языкам программирования и к функциональному программированию вообще?
Функциональные языки после почти 30 лет развития по-прежнему остаются объектом интересных и вдохновляющих экспериментов. Я не могу назвать ни одного крупного приложения, написанного в основном на чисто функциональном языке. Мы стараемся изучать идеи, возникающие у функционального сообществ, и с осторожностью применять эти уроки в коде C++.
Что вы бы делали, если бы учились в университете сегодня? Какие технологии были бы наиболее интересны для вас?
Не знаю. Я попал в ИТ, потому что ошибочно считал, что компьютерные науки – отрасль прикладной математики. Подозреваю, что если бы я начинал учиться сегодня, то обратил бы внимание на то, что выглядело бы интересным и важным. Например, пересечение вычислительных технологий и биологии кажется мне очень интересным…
Однако не думаю, что как молодой человек я бы сосредоточился на «технологии». Я бы обратил внимание (как это сделал) на науки, которые имеют потенциальное влияние с помощью технологий.
Кроме того, я искал ту сферу, где человек как личность может внести значительный вклад, а не области, в которых уже есть немало проектов, где заняты тысячи людей, в большинстве случаев легкозаменяемых.
Русский ученый Александр Степанов внес большой вклад в развитие C++ (STL). Работали ли вы вместе с ним? Как вы оцениваете его труды?
Я знаю Александра около 20 лет, и мы работали вместе. Я горжусь тем, что внес посильную лепту в его последнюю книгу «Элементы программирования».
Думаю, что STL была самым важным дополнением к C++, когда мы сделали стандарт C++98 ISO.
Бьёрн Страуструп вне стандартов и компиляторов C++? Какой он? Как вы обычно проводите свободное время? У вас есть какие-нибудь хобби?
Я много читаю, как художественную, так и научно-популярную, историческую литературу. Мне нравится бегать и ходить пешком. Люблю слушать музыку, фотографировать, особенно, когда мне выпадет возможность попутешествовать. Стараюсь проводить больше времени со своей семьей. Люблю также вкусно поесть в компании друзей.
Недавно язык С++ отметил двадцать пятую годовщину как коммерческий продукт. Я бы хотел от имени читателей нашего журнала поздравить вас!
Спасибо большое. Немного языков может отпраздновать свое 25-летие с миллионами программистов. Было бы неплохо, если бы мы могли отметить эту годовщину, выпуская C++0х в 2010 году. Но я очень надеюсь на официальное утверждение и реализацию его хотя бы в новом году. Вся техническая работа уже почти сделана.
перевод Романа Сухова
А где вопрос Бьерну с предложением забухать на afterparty и по программировать на m68k assembler для ПЭВМ Amiga ?
ОтветитьУдалить