Какие языки программирования сводят разработчиков с ума?

32

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