13 октября в Москву первый раз в жизни прилетит человек, придумавший C++, Бьерн Страуструп. Кроме посещения Красной площади и Большого театра он выступит с докладом на конференции «Разработка ПО 2010» и проведет четырехчасовой мастер-класс. А пока этого не случилось, мне удалось задать Берну несколько вопросов, как ожидаемых, так и не очень. И даже получить на них ответы.

И вот с ответами-то случилось самое интересное. Общение наше шло по переписке, а значит стенограмма сразу была в текстовом виде. Обычно это существенно облегчает мою работу – написанные слова переводить гораздо проще, чем разбирать их с диктофонной записи. Никаких тебе глотаний слогов, никаких посторонних шумов в самый неподходящий момент – садись да быстренько переводи. Но вот где-то на третий час работы с текстом я понял, что один не справлюсь. Нет, слова-то вроде бы все знакомые. Но чтобы действительно понять Берна, надо было а) знать историю языков программирования, б) понимать достоинства и недостатки C++ на уровне разработчика и в) знать общепринятые в нашей стране аналоги англоязычных терминов.

Можно было, конечно, перевести все «как я вижу» (похоже, именно так и поступили авторы другого русскоязычного интервью с Бьерном, опубликованным на прошлой неделе), но предпочел смирить гордыню и обратиться за помощью к участникам Intel Software Network. Гаяр, Ильнар, Дмитрий – спасибо огромное! Было приятно и полезно почувствовать себя неопытным новичком на фоне настоящих профи.

Полная версия беседы выйдет на 3DNews во вторник, а пока – небольшой тизер.

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

Бьерн Страуструп: Нам нужна усовершенствованная модель разработки алгоритмов параллельных (многопоточных) вычислений на высоком уровне абстракции. С++0х, о котором я буду рассказывать в Москве, закладывает основу для этого в виде набора потокобезопасных средств для работы с традиционной моделью блокировки и синхронизации потоков. Нельзя сказать, что эта модель (а так же lock-free синхронизация, предлагаемая C++0x) идеально подходит для многопоточных приложений. Она просто лучше, нежели то, что предлагают большинство других языков на сегодняшний день. Но всё же язык C++0x позволяет создавать продвинутые, относительно простые и специализированные модели в виде библиотек, созданных стандартными средствами языка.

Нам надо больше работать над упрощением спецификаций параллельных систем – даже спустя полвека исследований в этом направлении.

А еще он фотографировать любит :)