Бьёрн Страуструп: что в C++ надо было сделать по-другому, зачем его учить и совет начинающим программистам
Создатель C++ делится, что бы он поменял в C++, если бы у него была машина времени, зачем учить C++ в 2020 году и что нужно знать начинающему программисту.
33К открытий33К показов
Бьёрн Страуструп (дат. Bjarne Stroustrup) — технический сотрудник и управляющий директор Morgan Stanley в Нью-Йорке и профессор Колумбийского Университета. Бьёрн сделал весомый вклад в развитие IT — он создал C++.
Авторы курса Learn C++ из Codecademy взяли у Страуструпа интервью; мы перевели рассуждения создателя C++ про значимость языка и в качестве бонуса — совет всем начинающим программистам.
— Был ли момент, когда вы осознали, что C++ может изменить ход развития индустрии программного и аппаратного обеспечения?
Наверное, нет. Я был слишком занят разработкой C++ и написанием программ на нём.
Близким к поворотному можно считать момент, когда в 1989 году в моём офисе Bell Labs появились представители IBM и HP и настояли, что мне «очень хотелось бы» стандартизировать C++ в комитете ANSI. Или когда мне предложили написать статью о C++ для конференции ACM History of Programming Languages (HOPL). Мне кажется, даже тогда я недооценивал C++ и подходы к программированию, которые он открывал.
— Если бы вы смогли вернуться в прошлое и изменить одну вещь в оригинальном C++, что бы это было?
У меня нет машины времени. И мне не стоит сомневаться в решениях Бьёрна 83 года: он понимал условия того времени лучше, чем я сейчас. Скорее всего, любое существенное изменение в C++ не уложилось бы в имеющееся тогда ограничение в 1 МБ памяти. А если бы и уложилось — может, я не смог бы портировать компилятор на машину Windows 640 МБ[1. В оригинале написано про 640 мегабайт, но скорее всего имелось в виду всё-таки 640 килобайт.].
Но если бы я всё же смог вернуться в прошлое и не было проблем с совместимостью, то я бы убрал неявное приведение типов, меняющее значение. Это логически неверно и вызывает много ошибок. Например:
— Какие применения C++ вас удивили или поразили?
Меня поразил диапазон применения: от рисоварок до космических ракет. Это большая честь — осознавать, что C++ используется повсеместно: в автомобилях, фильмах, играх, медицине, финансах, компьютерах, сельском хозяйстве… Больше всего меня радует, что С++ используют в науке: проект «Геном человека», фундаментальные исследования в области физики в CERN и других лабораториях, марсоходы. Это здорово, что я сделал вклад в это, пускай и маленький.
— C++ всё ещё изучают в школах и вузах, используют в различных отраслях. Зачем в 2020 году нужно учить C++?
C++ — один из самых полезных языков, этого уже должно быть достаточно. Человеку, который хочет стать профессионалом, стоит знать несколько языков, а C++ хорош там, где нужна производительность и надёжность.
Кроме того, этот язык широко используется в экономике, играх, телекоммуникациях, электронике и производстве. Взгляните на пост в блоге JetBrains и мою страницу «C++ Applications» и попытайтесь понять, почему язык без маркетинга настолько популярен.
По-моему, главная причина для изучения C++ — он помогает понять различные подходы к программированию и методологии разработки, которые можно применять и в других языках.
— Какие советы вы бы дали начинающему программисту?
Программирование может быть забавой, но это не только развлечение. Развитие цивилизации зависит от качества программного обеспечения.
Какая бы область вас ни интересовала, там найдётся место программированию: будь то литература, производство автомобилей, история, варка кофе, ветряная и солнечная энергетика, создание фильмов, ракетостроение, фермерство, медицина, наука, инженерия или что-то ещё.
Возможно, в конечном счёте вы сможете внести весомый вклад в ту отрасль, которую вы считаете важной и интересной. Чтобы добиться этого, нужно хорошо изучить выбранную область, а также инструменты и технологии разработки ПО. Изучите фундаментальные вещи, такие как структуры данных и устройство компьютера.
Не дайте эйфории захлестнуть вас и не думайте, что станете экспертом всего за несколько недель. Подумайте, сколько времени нужно, чтобы изучить иностранный язык на уровне носителя, или стать хорошим спортсменом, или научиться играть на музыкальном инструменте так, чтобы вас хотела слушать не только мама.
Только подумайте, сколько всего интересного ждёт вас на пути достижения мастерства, сколько новых друзей вы можете завести. Над программным обеспечением работает много славных людей.
33К открытий33К показов