Б’єрн Страуструп і фізик, і лірик - Сайт Сергія Вільянова
3DNews: Вам, напевно, ставили це питання вже сотні разів, та все ж, за внутрішнім відчуттям, які особливості C++ дозволили цій мові виділитися на тлі побратимів і вже четверте десятиліття поспіль залишатися живою класикою?

Bjarnem Stroustrup: C++ мав і має до сьогодні ті переваги, які надає C у низькорівневому програмуванні при роботі з апаратною частиною (простіше кажучи, «залізом»), і в той же час забезпечує можливість створювати власні рівні абстракції без втрати продуктивності та без зайвої надмірності у плані використання ресурсів. Адже конструктори та деструктори стали свого часу справжнім проривом. Порівняно з традиційним С (Кернігана та Рітчі), С++ пропонує покращену систему безпеки типів. У порівнянні з Simula, С++ суттєву гнучкість та ефективність.

3DNews: Чи вірите ви в те, що необхідність в мовах програмування одного разу відпаде, і комп'ютери почнуть розуміти просту людську англійську?
Bjarnem Stroustrup: Я сумніваюся в цьому. Точніше, сумніваюся, що це взагалі потрібно. Коли я задаю якусь дію, яка має бути виконана на комп'ютері, хочеться набагато більшої «економії» слів і набагато більш точного визначення сенсу, ніж може запропонувати розмовна англійська. Наприклад, "a = b+c" і лаконічніше, і чіткіше, ніж "Додати C до і помістити результат в А". Мови програмування набагато ближче до суто технічних і спеціалізованих скорочень, використовуваних професіоналами (наприклад, математиками та лікарями), ніж до повсякденного мовлення. Насправді, я не здивуюсь, якщо програмуваннястане ще більш формалізованим і відсунеться від звичайної людської мови ще далі.

Звичайно, я зараз говорю про розробку ПЗ. Наші звичайні взаємодії з комп'ютерами, ймовірно, будуть все більше схожі на розмову між собою. Наприклад, фраза "дайте мені сосиску у французькій булочці з гірчицею, без кетчупу і покладіть трішки цибулі" може бути цілком зрозумілою автоматизованому лотку, що торгує хот-догами. Однак самі програми, які розпізнають голос, так само як і операційні системи, на яких вони працюватимуть, продовжать писати спеціалізованими мовами програмування.
3DNews: Однією з основних проблем, з якою сьогодні стикаються розробники програмного забезпечення, є забезпечення ефективної підтримки багатоядерних процесорів ПЗ для кінцевих користувачів. Багато додатків, як і раніше, вміють використовувати тільки одне ядро з двох-чотирьох-шести. Чи є спосіб усунути дисгармонію?
Bjarnem Stroustrup : Нам потрібна вдосконалена модель розробки алгоритмів паралельних обчислень на високому рівні абстракції. С++0х, про який я розповідатиму в Москві, закладає основу для цього у вигляді набору потокобезпечних засобів для роботи з традиційною моделлю блокування та синхронізації потоків. Не можна сказати, що ця модель (а також lock-free синхронізація, що пропонується C++0x) ідеально підходить для багатопотокових додатків. Вона просто краща, ніж те, що пропонують більшість інших мов на сьогоднішній день. Але все ж таки мова C++0x дозволяє створювати просунуті, відносно прості та спеціалізовані моделі у вигляді бібліотек, створених стандартними засобами мови.
Нам треба більше працювати над спрощенням специфікацій паралельних систем – навітьчерез півстоліття досліджень у цьому напрямі.

3DNews: В Україні кожен другий студент, який готується стати програмістом, якось створює свою власну мову. Ви вірите в успіх геніальних одинаків? І взагалі, чи є попит на нові мови програмування?
Bjarnem Stroustrup: Придумати нову мову і навіть щось написати їй відносно просто. Набагато важче переконати серйозних розробників цікавих продуктів використати такий винахід. Щоб бути корисною, нова мова має бути кращим вирішенням проблеми, ніж існуючі (і відомі) інструменти та мови. Але особисто я б радив приступати до розробки чогось нового тільки в тому випадку, якщо ви добре знайомі з проблемною областю, і впевнені, що можете забезпечити краще рішення саме у вигляді мови. Адже дуже часто інструмент чи бібліотека для існуючої мови виявляється кориснішим. До речі, це одна з причин, через яку багато мов помирають молодими: «старі» швидко надолужують втрачене.
Ні, я хотів би бачити нові і нові мови, і знаю, що можливо створити набагато кращі варіанти, ніж ті, що ми маємо сьогодні. Було б дуже сумно, якби мови програмування перестали народжуватися. Адже їх створення є своєрідним вікном, віддушиною для нових ідей та підходів до розуміння проблем та їх вирішення.
Не думаю, що ринок чекає нові мови з розкритими обіймами, але саме винахід дозволяє уникнути ризику зайвого консерватизму і схильності до використання тільки загальноприйнятих мов. Це добре та цікаво!

І ще одне. Думаю, що розробники-одинаки вкрай важливі, оскільки колектив зазвичай не може зосередитися та видатиузгоджений набір цілей мови програмування. Багато думок, багато деталей, і в них не дивно заблукати. У той же час мова не може бути розроблена в ізоляції, дизайнер повинен отримувати фідбек та натхнення, що може запропонувати лише розвинене технічне співтовариство. Коли народжувався C, мені пощастило працювати у AT & T Bell Labs, а там технічне середовище було настільки різноманітним і вимогливим, що це поставило переді мною чимало складних завдань. І їхнє рішення, у свою чергу, допомогло C++ вижити і стати таким, яким він став. Я досі відчуваю себе у боргу перед колегами.
3DNews: В Україні зараз оголошено програму модернізації, розвитку власних високих технологій. Проте наші співвітчизники чомусь частіше досягають успіху за кордоном, ніж у своїй країні. Чи є у вас думка про цей феномен?
Bjarnem Stroustrup: Може бути справа в тому, що люди, які їдуть за кордон, спочатку ініціативніші, цікавіші і самими умовами мотивовані зробити щось нове? Може, вони більше за інших готові йти на ризик і, переїхавши на нове місце, люди особливо сильно прагнуть досягти успіху?
3DNews: Які з цифрових технологій або пристроїв, виготовлених за останні десять років, справили на вас найбільше враження?
Bjarnem Stroustrup: Я люблю фотографувати, причому мені все це дуже цікаво і з технічної, і з, якщо так можна сказати, естетичної точки зору. Простіше кажучи, я і фізик, і лірик. Так ось, прогрес у галузі цифрових зображень просто вражає. Очевидно, у цьому є чимала заслуга програмного забезпечення, що використовується в камерах.
Також я навряд чи сьогодні міг би займатися своєю роботою або спілкуватися з друзями без дивовижної інфраструктури зв'язку, що з'єднуємене з усім світом через один маленький ноутбук.
3DNews: Останнє питання – навіщо ви збираєтеся в Україну та які плани на поїздку?