Привет! Представляю вашему вниманию перевод статьи «Why Do Some Programming Languages Live and Others Die?».
Гугл хочет изменить то, как весь мир пишет программное обеспечение. Недавно поисковый гигант представил два новых языка программирования, которые стремятся улучшить некоторые из самых распространённых языков на планете.
Он собирается заменить языком под названием Go почтенные языки С и С++, обеспечив более быстрые средства для создания очень больших платформ программного обеспечения в центрах обработки данных. Также языком Dart он собирается заменить JavaScript, улучшив способ построения программного обеспечения, которое запускается в наших веб-браузерах.
Но не имеет значения, насколько эти новые языки впечатляющи, вы удивитесь, как много времени им потребовалось, чтобы действительно завоевать популярность – если это вообще произошло. В конце концов, новые языки программирования появляются всё время. Но очень редко каким удаётся заполучить широкую публику.
В Принстоне и Университете Калифорнии в Беркли два исследователя пытаются пролить свет на то, почему некоторые языки программирования становятся хитом своего времени, тогда как многие – нет. В своём так называемом «стороннем проекте» Лев Меерович и Ари Рабкин опросили десятки тысяч программистов и прошерстили более 300 000 компьютерных проектов на популярном репозитории кодов SourceForge – всё в попытке определить, почему старые языки всё ещё правят бал.
«Почему мы не смогли улучшить С?» — спрашивает Рабкин. С тех пор, как 35 лет назад С был популяризирован, произошёл огромный скачок в разработке ПО и операционных систем, — говорит он. Но хотя С был улучшен и другие новые языки были очень успешны в течение этого времени, С по-прежнему остаётся основой.
Часть проблемы, говорит он, заключается в том, что разработчики языков программирования не всегда имеют практические цели. «Есть тенденция пытаться решить проблему, когда никто на самом деле с этой проблемой не сталкивался», — говорит Рабкин, недавно получивший степень доктора философии в информатике в Беркли и работающий теперь в Принстоне.
Он говорит, что учёные очень часто пытаются придумать язык, который будет отличаться ото всех, и не думают о том, что на самом деле нужно сделать его полезным. В некоторых случаях, говорит он, они прокалываются на самых простых вещах, таких как документация для языка. В других случаях, говорит он, разработчики пытаются добавлять новые особенности в язык и фактически перегружают инженеров, которые пытаются им пользоваться.
«Возможно, решение не совсем техническое», — говорит Меерович. «Нам следует начать разрабатывать языки, более соответствующие «общественным ожиданиям».
Ян Чжан, соучредитель аналитического предприятия Slice-Data и доктор философии MIT – один из многих, кто начал пользоваться новым языком программирования под названием Scala, но он признаёт, что пользование языком изначально осложнялось плохой документацией и низким уровнем поддержки от разработчиков. «Тогда я был гораздо большим мазохистом», — говорит он о своих проблемах с изучением языка в 2006.
Меерович также говорит, что данные, которые он и Рабкин собрали, тоже показывают, что программисты не всегда уделяют достаточно много времени на то, чтобы действительно изучить язык, когда они начинают на нём писать – и это то, что им мешает. Примером он называет ActionScript, объектно-ориентированный язык, разработанный компанией Adobe. Судя по данным Мееровича, программисты считают ActionScript простым в использовании. Но, говорит он, когда они начинают делать на нём что-то новое – перемещение со, скажем, разработки медиа-данных на разработку игр – они сталкиваются с проблемами.
Другая проблема – самоуспокоение. Многие программисты изучают 3-4 языка, говорят исследователи, а потом останавливаются. «Со временем можно ожидать, что когда разработчики станут старше, они станут мудрее и изучат больше языков», — говорит Меерович. «Мы обнаружили, что это неправда. Они остаются на том же уровне».
Часть проблемы заключается в том, что, когда им исполняется 35-40 лет, они часто переходят от практического кодирования к управлению другими программистами. С этой точки зрения, мотивации для изучения и внедрения новых языков мало.
Меерович считает, что язык является той проблемой, за признание которой сообщество разработчиков всё ещё борется. После того, как они с Рабкиным перебрали столько данных – а большая их часть находится в интернете – они стали надеяться создать новое понимание не только причин проблемы, но и того, как её решать.
«Я даже и не думал, что такой вопрос появится, когда мы анализировали все эти данные», — говорит Меерович.
Автор: Пупсень и Вупсень