2013-10-03
Составление рейтингов языков программирования, основываясь на дозе ненависти к ним самих программистов – это тоже в своём роде наука. Компания ITworld изучила отклики и жалобы разработчиков на популярных форумах и ресурсах (Quora, Stack Overflow и Hacker News), и составила список из 10 самых ненавистных языков программирования. Вот он: (а если дочитаете статью до конца, найдёте результаты ещё одного исследования).
10. Python. «Python – это такая неудобоваримая мешанина, разбавленная пробелами. Беееее!» Как избавить себя от Python? Не работать в Google, Yahoo и Nasa.
09. LabView (Laboratory Virtual Instrument EngineeringWorkbench). «LabView настолько погружается в свой новый уровень комплексного подхода, что уже нет никакого смысла в этом подходе». Как избавить себя от LabView? Не работать в сфере промышленной автоматизации и не разрешать детям играть в Lego Mindstorms.
08. JavaScript. Основные жалобы: чувствительность к регистру, различное воплощение в зависимости от браузера, недостаток возможностей для дебаггинга и странные правила наследственности. Как избавить себя от JavaScript? Не работать веб-разработчиком.
07. TcL (Tool Control Language). «Этот язык идеально подходит для оциллоскопов и генераторов питания. Вот в лабораториях ему и следовало остаться…» Как избавить себя от TcL? Не работать на Cisco, AOL, CNET и в любой компании, использующей AOLServer или OpenACS.
06. COBOL (COmmon Business-OrientedLanguage). «COBOL – это восхитительное, искусно выработанное, изощренное средство для ментального самоубийства». Как избавить себя от COBOL? Не работать в государственном, финансовом и военном секторе.
05. C++. «В какую бы контору вы ни попали, вы увидите, что каждая из них создаёт свой подъязык C++, потому что никто в здравом уме не сделает по-другому». Как избавить себя от C++? Не работать в Adobe, Google и в игровой индустрии.
04. PHP. «PHP – это самый ужасный язык из тех, которые никак не могу бросить…» Как избавить себя от PHP? Не работать в Facebook и держаться подальше от Wikimedia, WordPress, Joomla и Drupal.
03. Java. «Java такой корявый! Чтобы выполнить одну задачу, требуется дикое количество расширений и излишеств…». Как избавить себя от Java? Не разрабатывать приложения с помощью Android SDK.
02. Perl. «У этого языка есть миллион способов сделать код другого человека полностью нечитаемым, а его немногословность заставляет даже самые простые вещи выглядеть невнятно». Как избавить себя от Perl? Не становитесь программистом.
01. Visual Basic. «Трудно понять его синтаксис, покрытый мраком тайны и не вписывающийся ни в какие рамки программирования». Как избавить себя от Visual Basic? Не работать в компаниях, где используют приложения Windows версии ранее 2008 г.
Однако это не единственный метод измерения неприязни к языку. Все помнят картинку про определение качества кода и единственно верную единицу его измерения. Для тех, кто не помнит: она слева.
Ещё пару лет назад разработчик Сэмми Ларби проводил интересное исследование. Он использовал данные GitHub API, чтобы определить, в каких языках наиболее часто встречался комментарий “WTF”. В его исследовании безоговорочно победил (или проиграл?) Objective C.
Метод Ларби оказался настолько лаконичным и элегантным, что буквально пару недель назад было проведено повторное подобное исследование данных GitHub*. Вот 20 языков программирования, которые причинили наибольшую головную боль разработчикам с 01 января 2012 г.
Судя по этому рейтингу, больше всего гневных комментариев в коде генерирует C++.
Perl, №2 в списке самых ненавистных языков, оказался №19 в WTF-рейтинге. Может быть, те программисты, которые ненавидят Perl, просто предпочитают не работать с ним?
Visual Basic, №1 в списке самых ненавистных языков, даже не попал в WTF-рейтинг, хотя входит в двадцатку самых популярных языков на GitHub. Опять же, возможно, это происходит потому, что не любящие этот язык разработчики избегают его или просто устали бороться 🙂
Конечно, оба этих анализа – скорее развлечение, чем настоящая аналитика, но в каждой шутке есть доля шутки: например, C++ явно заставляет программистов рано седеть.
Перевод: Люся Ширшова. По материалам ITworld.
*Если интересна методология проведения исследования:
Автор посылал запрос к GitHub Archive с помощью Google BigQuery.
Сначала автор сгенерировал список самых популярных языков в GitHub, исходя из количества репозиториев, созданных с 01 января 2012 г. (за это время было создано 4,5 млн репозиториев). Запрос был таким:
SELECT repository_language, count(repository_language) AS repos_by_lang
FROM [githubarchive:github.timeline]
WHERE repository_fork == “false”
AND type == “CreateEvent”
AND PARSE_UTC_USEC(repository_created_at) >= PARSE_UTC_USEC(‘2012-01-01 00:00:00’)
AND PARSE_UTC_USEC(repository_created_at) < PARSE_UTC_USEC(‘2013-09-23 00:00:00′)
GROUP BY repository_language
ORDER BY repos_by_lang DESC
LIMIT 100
Если запрос Ларби был основан на поиске фразы “WTF” через весь рабочий код, в данном случае поиск производился по комментариям к коммитам в GitHub. Вот таким был запрос по поиску комментариев WTF (было обработано около 50 млн коммитов за период с 01 января 2012 до 23 сентября 2013 г.):
SELECT repository_language, count(*) AS wtf_cnt
FROM [githubarchive:github.timeline]
WHERE type == “PushEvent” AND
REGEXP_MATCH(LOWER(payload_commit_msg), r’wtf[^a-zA-Z0-9]’)
AND PARSE_UTC_USEC(repository_created_at) >= PARSE_UTC_USEC(‘2012-01-01 00:00:00’)
AND PARSE_UTC_USEC(repository_created_at) < PARSE_UTC_USEC(‘2013-09-23 00:00:00’)
GROUP BY repository_language
ORDER BY wtf_cnt DESC
LIMIT 100