Сегодня языки "коммерческой" разработки - такие как C++ и Java, к примеру - слишком сложны и не очень подходят для программирования в современных вычислительных средах, заявил ведущий инженер Google Роб Пайк на конференции O'Reilly Open Source.
В ходе своего выступления на данной конференции, проходившей совсем недавно в Портленде, Пайк раскритиковал "промышленные языки программирования". "Я считаю, что эти языки слишком трудны для использования. Они излишне тонки и хитроумны, слишком запутаны. С ходом времени эта самая сложность, многословность и запутанность языков только возрастает - сказал Пайк. - Эти языки слишком широко распространены, они, так сказать - "перепроданы".
Пайк уточнил, какие конкретно претензии он предъявляет популярным языкам программирования, посредством рассказа о том, какие он и другие инженеры Google ставили перед собой задачи, разрабатывая язык Go.
Иллюстрируя излишнюю сложность современных языков, Пайк показал несколько примеров C++ кода. Один из них представлял собой объявление переменной, которое растянулось стройкой через весь экран."Как мы можем считать такое нормальным и стандартным в программировании? Как мы можем учить подобному в школах и использовать в работе?" - риторически вопрошает Пайк. Такой подход к программированию очень бюрократичен. Буквально каждый шаг приходится согласовывать и утверждать компилятором.
Сказано это было с долей иронии, конечно, но Пайк заявил, что, на его взгляд, вопрос несовершенства современных языков программирования весьма актуален. С++ появился из-за разочарования сложностями работы с языком низкого уровня С, а Java появилась как один из путей упрощения C++. Со временем, однако, эти языки стали обрастать новым функционалом, становясь всё сложнее и сложнее с каждым разом.
"Вместе с тем, как языки становились всё утонченнее и изощрённее, стало всё больше и больше в них паразитных шумов", - сказал Пайк.
Кроме того, как отметил инженер Google, популярные современные языки программирования были разработаны до эры многоядерных вычислений и широкого распространения сетей, так что для их адаптации кода к этим современным средам приходится потрудиться.
Пайк не единственный инженер из Google, кто выразил своё недовольство и разочарование современными языками "коммерческой" разработки.
На ежегодной конференции USENIX в прошлом месяце Адам де Бур, разработчик Gmail, удивил аудиторию, отметив, что данный популярный почтовый сервис был целиком и полностью написан на JavaScript, причем все 443 000 строчки кода были написаны вручную.
Адам также отметил, что Java более выразительный язык, но при этом и гораздо более подробный и многословный. "И возникает проблема выбора, какой язык будет более предпочтительным для разработки", - сказал Адам.
JavaScript - представитель целой группы языков , в неё часто включают Python и Ruby, разработанных в течение последних десяти лет, в ответ на растущую сложность C++ и Java. Располагая более простым синтаксисом, они не лишены, впрочем, своих недостатков.Эти новые языки, как правило, медленнее, толком не масштабируются и могут быть приводить к возникновению даже большего числа ошибок, отметил Пайк.
Данные языки, как правило, интерпретируются, и программы, написанные на них, не компилируются перед запуском, а значит, работают медленнее. Также обычно такие языки обладают динамической типизацией - программистам не приходится заранее указывать, какой тип данных будет иметь переменная. "Динамическая типизация - это не обязательно хорошо. Вы натыкаетесь на статические ошибки во время запуска программы, которые могли быть пойманы и исключены во время компиляции". Имея всё это в виду, Пайк описал разработанный Google язык Go как попытку сочетать лучшие качества обоих типов языков в одном новом.
"Go - это попытка соединить безопасность и производительность языков со статической типизацией с удобством и лёгкость интерпретируемых языков с динамической типизацией, - сказал Пайк, добавив потом: - Насколько это получилось, судить каждому самому".
Один из слушателей, Ларри Аугустин, CEO компании, разработчика CRM-системы SugarCRM, согласился с утверждением Пайка о том, что C++ и Java стали слишком сложными, отметив, что происходит это со всеми языками, с мерой их развития для решения всё более и более широкого круга задач.
"Причина, растущей сложности этих языков, в том, что чем больше его используют, тем больше находят в нём ошибок и неясностей, попытки разрешения которых делают все только сложнее и сложнее. Я высоко ценю стремления разработчиков Google Go", отметил Аугустин на счёт целей Пайка. "Вопрос только в том, каков будет результат? Не станет ли Go в свою очередь слишком сложным и запутанными по мере того, как его будет использовать всё больше людей?"
Источник: pcworld.com
Читайте также
12 онлайн-курсов по языку Java для новичков и профессионалов (август, 2023)
12 онлайн-курсов по языку Java для новичков и профессионалов (август, 2023)
Java по-прежнему входит в список самых популярных языков программирования. Вместе с Digitaldefynd мы составили список курсов по Java, которые подойдут как новичкам, так и людям с опытом программирования, чтобы освоить этот востребованный язык.
10 курсов по C++ (июнь 2023)
10 курсов по C++ (июнь 2023)
С++, несмотря на свой солидный возраст, остается одним из основных языков программирования, который применется очень широко: от разработки ПО до создания игр. В сети много ресурсов, которые помогут освоить этот язык. Советуем обратить внимаение на подборку команды Digitaldefynd, котрую мы дополнили. В ней как платные, так и бесплатные ресурсы для людей с разным уровнем подготовки и знаний С++.
1 комментарий
10 курсов по SQL для лучшего понимания работы с большими данными (май, 2023)
10 курсов по SQL для лучшего понимания работы с большими данными (май, 2023)
Собрали 10 платных и бесплатных онлайн-курсов для изучения SQL. Программы рассчитаны на слушателей, которые только начинают или продолжают знакомство с языком.
10 способов научиться программировать самостоятельно
10 способов научиться программировать самостоятельно
Хотите научиться кодить и освоить алгоритмы? Собрали десять советов с чего начать изучение программирования для тех, кто только начинает своё путешествие в мир программирования и снабдили все это полезными ссылками на курсы для начинающих программистов.
Обсуждение
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.