Чому російські програмісти так успіх за кордоном?
У середині жовтня в Москву перший раз у житті прилетить Бьерн Страуструп (Bjarne Stroustrup), творець мови програмування C++. На конференції "Розробка ПО 2010" він прочитає доповідь, а також проведе чотиригодинний майстер-клас. Напередодні візиту в Росію Бйорн дав невелике інтерв'ю 3DNews, причому ми цілком усвідомлено не стали ставити йому зубодробильної питань про особливості нового мови C++0x, про який наш співрозмовник буде розповідати по приїзду. Зрештою, про це можна почитати в багатьох інших джерелах (обережно, англійська). Ми спробували вийти за межі C, щоб показати вам не тільки експерта-винахідника, але і людини. І все ж ми почали саме з C++.
3DNews: Вам, напевно, ставили це питання вже сотні разів, та все ж, за внутрішнього відчуття, які особливості C++ дозволили цій мові виділитися на тлі побратимів і вже четверте десятиріччя поспіль залишатися живий класикою?
Bjarnem Stroustrup: C++ мав і має донині ті переваги, які надає C низькорівневої програмуванні при роботі з апаратною частиною (простіше кажучи, «залізом»), і в той же час забезпечує можливість створювати власні рівні абстракції без втрати продуктивності і без зайвої надмірності в плані використання ресурсів. Адже конструктори і деструктори сталі свого часу справжнім проривом. Порівняно з традиційним З (Кернигана і Рітчі), С++ пропонує поліпшену систему безпеки типів. Порівняно з Simula, С++ істотну гнучкість та ефективність.
Важливо і те, що C++ не переставав розвиватися після його першого комерційного релізу в жовтні 1985-го. За минулі роки він поступово став набагато більш ефективним і гнучким інструментом для розробки ПО. Його характерні сильні риси, наприклад, вибудовування програмної інфраструктури і розробка ресурсо-ефективного ПО, ґрунтувалися на моїх споконвічних цілях для С++. А саме простою та ефективною зв'язці з залізом в поєднанні з гнучкими механізмами абстракції без використання runtime.
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: Останній питання - навіщо ви збираєтеся в Росію і які плани на поїздку?
Bjarnem Stroustrup: З одного боку, я хочу приїхати, тому що ніколи не був у вашій країні. З іншого - тому що на конференції у мене буде можливість поговорити з російськими розробниками програмного забезпечення, це дуже цікаво. На превеликий жаль, я не зміг виділити достатньо часу на традиційні туристичні розваги, бо жовтень - це середина семестру в університеті (р-н Страуструп професор в Texas A&M University - прим. редакції), і я не можу бути далеко від своїх студентів занадто довго. Сподіваюся, організатори конференції організовують і мій вільний час, так що вийде подивитися Червону площу і Великий театр. Є відчуття, що від споглядання пам'яток і виступів я повернуся назад у США досить втомленим, але все ж з великим нетерпінням чекаю візиту в Москву.
Комментарии