Разделы

Цифровизация Системное ПО Софт

Эксклюзивное интервью с создателем языка программирования C++

Сегодня имя Бьерна Страуструпа проходят в университетах. Это живая легенда, человек, создавший язык C++. В интервью CNews он поделился своим видением современной России и перспектив, открывающихся перед ИТ в нашей стране, а также рассказал о новом стандарте языка - C++0x, о возможностях и принципах разработки которого пойдет речь на на конференции CEE-SECR.

CNews: 10-20 лет назад новые языки программирования создавались очень часто. Теперь ситуация изменилась – новичков меньше. Существует ли необходимость в новых языках программирования? Какими они должны быть?

Бьерн Страуструп: Действительно ли 10 или 20 лет назад создавалось больше языков? Помню, когда я начинал на С++, общепринятым было мнение, что время новых языков прошло. Старые языки довольно прочно "стояли на ногах", и язык Ада подавлял все новое. Последние 50 лет появлялось около 2 тыс языков в десятилетие, и я не вижу признаков замедления – но у меня нет статистических данных.


Бьерн Страуструп: Настоящий прогресс требует любопытного смешения идеализма и прагматизма

Не думаю, что современные языки близки к совершенству. Некоторые примитивны, некоторые раздуты, некоторые напоминают красочные игрушки, а некоторые зависят от обширной инфраструктуры (часто – собственности), так что я надеюсь, что придут новые и лучшие языки.

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

CNews: Вы посетите Москву в середине октября и проведёте выступление и семинар на конференции CEE-SECR. О чем пойдет речь?

Бьерн Страуструп: О возможностях C++0x и, в частности, об общих правилах разработки и направлении применения языка. Я постараюсь убедить аудиторию в том, что C++0x будет лучшим языком для создания инфраструктуры и приложений в случае серьезной нехватки ресурсов. Я попытаюсь показать, чем отличается C++0x от С++, который они знают – ну или думают, что знают. Возможности и библиотеки C++0x входят в основную реализацию С++, так что никаких научно-фантастических бесед не будет.

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

CNews: Вы работаете над новыми книгами? О чем они?

Бьерн Страуструп: В прошлом году в США вышел мой первый учебник по программированию "Программирование: принципы и практика использования С++". Как понятно из названия, основная цель книги – обучить программированию. Думаю, это лучшая книга для начинающих и для программистов с небольшим опытом работы на С++. Она была написана для первокурсников по специальностям "инженер-электронщик" и "инженер-специалист по компьютерной технике", но вполне подойдет и для студентов других компьютерных специальностей. За последние три года по книге обучились сотни студентов. Сейчас она доступна на английском, польском, немецком, китайском и французском языках. А в середине октября будет доступна и на русском.

Сейчас я работаю над четвертым изданием книги "Язык программирования С++". Это масштабный проект, который я не могу быстро закончить. Мне необходимо не только рассказать о возможностях языка и компонентах стандартной библиотеки C++0x, но и объяснить основы их использования. C++0x выглядит как новый язык, так что эта задача нетривиальна и интересна.

CNews: Сегодня одна из самых актуальных тем в России - высокие технологии и инновации. Правительство поддерживает развитие ИТ, чтобы наша экономика меньше зависела от экспорта нефти и газа. Что бы вы посоветовали правительству для создания прочной высокотехнологичной экосистемы в России?

Бьерн Страуструп: Это сложная тема, и я подозреваю, что правительство не нуждается в непрошенных советах. Однако, раз вы спрашиваете, я поделюсь с вами своим мнением, личным и не основанным на опыте работы в правительстве. Я считаю, что когда политики и топ-менеджеры пытаются выбирать актуальные технологии, они ошибаются, и ошибаются, неся серьезные убытки.

Вам необходимы хорошие университеты и, возможно, научно-исследовательские институты. Они должны иметь стабильное долгосрочное финансирование (на десятилетия), и правительство должно очень постараться не вмешиваться в их работу. Серьезные успехи зачастую происходят там, где руководители их не ждут. Можно посмотреть на истории успеха MIT, Stanford, Bell Labs. Таким образом вы получите квалифицированные научные и технические кадры. Не нужно препятствовать студентам, профессорам, исследователям заниматься предпринимательской деятельностью или сотрудничать с бизнесом. Нужно поощрять сочетание фундаментальных и прикладных исследований, сочетание небольших и серьезных проектов, краткосрочных, среднесрочных и долгосрочных. Не стоит заниматься покупкой технологий, надо разрабатывать что-то свое. Для этого необходимо обеспечить финансирование предпринимателей для поддержки стартапов. Получив шанс, они будут расти и процветать.

CNews: Что бы вы сказали русским программистам?

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

Когда я начинал, никто не слышал об объектно-ориентированном программировании, а почти все, кто "знал", о чем шла речь, считали тему невозможной (слишком сложно, слишком трудно изучить, слишком медленно, слишком специализировано и так далее), и все же сегодня мы все пользуемся результатами той идеи. Аналогичная ситуация наблюдается сейчас с парадигмой обобщенного программирования: только представьте, что будет через десять лет. Прогресс возможен – даже если он кажется слишком, удручающе медленным.