Настя и сборник весёлых историй
Современные языки программирования коммерческого уровня - - C ++ и Java, в частности, слишком сложны и недостаточно подходят для современных вычислительных сред, - отметил в четверг на конференции O'Reilly Open Source конференция известный инженер Роб Пайк.
Пайк сделал свое дело против таких «индустриальные языки программирования» во время его выступления на конференции в Портленде, штат Орегон.
«Я думаю, что эти языки слишком сложны в использовании, слишком тонкие, слишком сложные. Они слишком многословны, и их тонкость, сложность и многословие кажутся со временем увеличиваться », - сказала Пайк. «Они перепроданы и используются слишком широко».
Пайк подробно описал недостатки таких языков, как способ описания целей, которые он и другие инженеры Google разработали для нового языка программирования, который они разработали под названием Go.
В качестве иллюстрации сложности таких языков Пайк показал несколько примеров кода на C ++. Одним из примеров было объявление переменной, растянутое почти по всей линии экрана.
«Как у нас есть такие вещи, как этот [стать] стандартным способом вычислений, который преподается в школах и используется в промышленности? " - спросил он риторически. Этот вид программирования «очень бюрократичен: каждый шаг должен быть оправдан для компилятора», - сказал он.
Пока Пайк признал, что он был несколько увлекательным, он утверждал, что такие вопросы еще нужно задать. C ++ возник из-за разочарования людей в работе с низкоуровневым языком C, а Java - как способ упрощения C ++. Однако со временем новые возможности были добавлены на оба языка, что сделало их все более сложными.
«Шум приходит с изощренностью», сказал он.
Пайк также добавил, что такие языки были разработаны до появления многоядерной обработки и широко распространенные сети, поэтому они нелегко вписываются в эти новые среды.
Пайк не является одиноким сотрудником Google, выражающим неудовлетворенность традиционными коммерческими языками.
На ежегодной конференции USENIX в прошлом месяце инженер Gmail Адам де Бур удивил аудиторию, отметив, что служба Gmail компании была полностью написана на JavaScript и что весь ее код, насчитывающий около 443 000 строк, был написан вручную.
Он отметил, что, хотя Java более выразительна, он также более подробный, «На данный момент для меня это вопрос выбора того языка, который вы используете», - сказал де Бур.
JavaScript - это одна из целой серии языков, в том числе Ruby и Python, которые были разработаны за последние 10 лет в ответ на растущую сложность C ++ и Java. Но, имея более простой синтаксис, такие языки также имеют свои недостатки, он утверждал.
Эти новые языки, как правило, медленнее, не масштабируются, а также могут содержать больше ошибок, - объяснил Пайк.
Языки как правило, интерпретируются, а не компилируются, то есть программы, написанные на таких языках, не компилируются перед запуском, поэтому в результате они становятся медленнее. Они также имеют тенденцию быть динамически типизированными, что означает, что программистам не нужно указывать, какие типы данных будут удерживать их переменные.
«Динамическая типизация не всегда хороша. Вы получаете статические ошибки во время выполнения, которые вы действительно должны иметь во время компиляции », - сказал он.
Учитывая это, Пайк затем описал Go как попытку сплавить лучшие атрибуты обоих наборов языков.
« Go - попытка объединить безопасность и производительность из статически типизированных языков с удобством и увлекательностью динамически типизированных интерпретирующих языков », - сказал он, добавив,« в той мере, в какой это удается, вам придется судить сами ».
Один из зрителей, Ларри Августин, генеральный директор программного обеспечения SugarCRM по управлению отношениями с клиентами, согласился с оценкой Пайка, что C ++ и Java стали слишком сложными, хотя он отметил, что это обычно происходит со всеми языками по мере их роста, чтобы удовлетворить более широкий спектр вариантов использования.
«Причина, по которой эти языки выросли в сложности, состоит в том, что чем больше они используются, тем больше ошибок и двусмысленностей мы нашли, а попытки устранить эти двусмысленности и ошибки создали нечто более сложное», - сказал Августин, у которого есть фон в разработке программного обеспечения и языке программирования.
«Я ценю его цель, - сказал он о попытках Пайка. «Вопрос в том, может ли он достичь своего целевого результата, или же Go [становится более сложным], поскольку все больше людей используют его», - сказал Августин.
Joab Jackson использует корпоративное программное обеспечение и общую технологию для новостей Служба новостей IDG. Следуйте за Joab в Twitter на @Joab_Jackson. Адрес электронной почты Joab - [email protected]