Код
#статьи

&$!#% — за что разработчики ненавидят разные языки программирования

Какие языки программирования вызывают у разработчиков баттхерт и почему. Собрали самые яркие комментарии.

Martin Poole / Getty Images

Java — за раздутость

«Enterprise-стиль Java раздут шаблонами проектирования и ненужными иерархиями классов. В основном язык неплохой, думаю, он находится где-то посередине рейтинга».

Даниэль Велков,
инженер-программист в Google


«Вот за что я ненавижу Java:

  • Нет функций первого класса.
  • Нет разумных значений по умолчанию — например, на графиках.
  • Исключение NullPointerException не содержит дополнительной информации о том, что такое null.

А ещё за обилие бессмысленно «настраиваемых» фреймворков, интерфейсов поставщиков услуг, заводских классов, систем внедрения зависимостей. И да — возможность конфигурирования почти никогда не используется, DRY грубо нарушается, объём кода увеличивается в четыре раза, а читаемость ухудшается вдвое».

Zarkonnen,
разработчик на Java, Python и JavaScript

JavaScript — за кривоту

«JavaScript разработали в спешке, за 10 дней, а после этого сообщество потратило ещё 20 лет, чтобы хоть как-то его исправить. Если вы веб-разработчик, вам неизбежно придётся отлаживать интерфейсный код JavaScript в браузере. Причём у кого-то даже развивается стокгольмский синдром — им это начинает нравиться. Но всё-таки нормальные люди ненавидят JS».

Хокон Хапнес Стрэнд,
инженер по машинному обучению


«JavaScript ужасен. У него ужасный синтаксис, ужасное прототипирование и ужасная интеграция. Он медленный, ненадёжный, непоследовательный. Очень жаль, что такой ужасный язык де-факто стал стандартом для браузеров и интерфейсов веб-приложений».

Джефф Нельсон,
разработчик Chromebook


«JavaScript притворяется C-подобным языком, пока вы не погрузитесь чуть глубже и не поймёте, что это какое-то причудливое творение, которое просто косплеит C».

Стив Лейси,
программист

PHP — за ужасные фреймворки

«PHP просто ужасен, и в JavaScript тоже полно плохих моментов. На мой взгляд, они оба становятся только хуже из-за «новомодных» стилей программирования.

В основном потому, что сейчас это два самых популярных и легкодоступных языка. Они доминируют в интернете на протяжении многих лет. Да что там, похоже, в наши дни большинство программистов — веб-разработчики.

В итоге и для PHP, и для JS наклепали множество дерьмовых фреймворков и библиотек. Люди расстраиваются, пытаясь использовать «простуюFообиблиотеку3000» в рабочих задачах, а потом винят язык — хотя надо бы ругать «ребёнка», который «нагадил в спальне».

А сколько там дублирующих друг друга библиотек! И в конце концов вы создаёте продукт, в котором 30 000 строк кода дублируют что-то созданное до вас, и даже не подозреваете об этом. Да и потом такой код практически нереально отлаживать — вот почему люди ненавидят эти языки».

Бен Синклер,
разработчик


«Ненавижу PHP за непонятный синтаксис классов. Почему бы просто не сделать для него импорт, который превращает все глобальные переменные в классы, а функции — в методы?»

Саймон Джексон,
программист

Кадр: фильм «Механик»

C++ — за раздутость и запутанность

«Я не смог найти ничего, что бы мне нравилось в этом языке. Меня раздражает даже его базовая функциональность, связанная с классами».

Лейф Уолш,
разработчик


«Слишком большой набор функций, ручное управление памятью, низкая скорость компиляции, да ещё и невозможно нормально переключаться между объектно-ориентированным и процедурным кодом внутри одной и той же программы».

Амар Кумар,
старший веб-разработчик в Internshala


«При использовании шаблонов приходится включать всё в один файл, а на выходе получается какое-то нереальное время компиляции. А стандартная библиотека C++ — вообще какой-то нелепый анахронизм (по дефолту нет потоков или инструментов для работы с сетью)».

Крис Джефферсон,
программист


​​«C++ — ужасный язык. И со временем он становится только хуже — ведь его используют множество плохих программистов, потому что на нём намного легче генерировать говнокод. Откровенно говоря, я бы предпочёл C просто за то, что в твой код не будут вмешиваться программисты на C++».

Линус Торвальдс,
создатель Linux

Python — за обилие плохого кода

«На Python написана куча программ отвратительного качества, потому что люди, освоив базовый синтаксис, начинают считать себя разработчиками. Но синтаксис — это даже не десятая часть. Да и компании очень любят нанимать питонистов — ведь их много и им легче найти замену. Хотя для многих решений продакшн приложений на Python, мягко говоря, не подходит. Он хорош для небольших автоматизаций и всякого ML. Для высоконагруженных или сложных приложений Python не годится. Easy to start, hard to master».

Kira 2pizza
Lead software engineer, автор Telegram-канала @dead2pizza.
Комментарий для Skillbox Media


«Вместо круглых или фигурных скобок в Python для обозначения блоков используют отступы. Кроме того, мне не нравится обилие двоеточий и подчёркиваний, а также постоянные конфликты имён модулей и переменных».

Амар Кумар,
старший веб-разработчик в Internshala


«Я ненавижу Python, потому что гладиолус. Да пошёл ты, чёртов Python. Что за бред: невидимый пробел — часть синтаксиса, а self — не ключевое слово. Кажется, Гвидо фон Россумбургер — просто придурок. Преподавать Python в школах — глупая идея. C++ или Java куда лучше. В Python нет ключевого слова для объявления переменных. Вы просто вводите имена переменных, а потом с трудом находите, где их объявляли. Создатели не учли уроки прошлого: не объявлять переменные и функции — это ошибка из 1950-х».

Олегзандр фон Денман,
программист


«Я не умею пользоваться Python — да и мои коллеги, судя по всему, тоже не умеют: всё сделано через жопу — то пакет какой-нибудь сломается, то ещё что-то».

Batate_courier,
программистка на Kotlin

SQL — за неудобство

«Удивительно, почему никто ещё не вспомнил SQL. А ведь за ним много грешков:

  • Непоследовательный синтаксис в разных реализациях.
  • Тонкие различия в коде снижают производительность по неясным причинам.
  • Плохая поддержка текстовых манипуляций.
  • Простой вход, но очень крутая кривая обучения на пути к мастерству.
  • Минимум стандартов и best practices в сообществе, включая стиль.

И ещё несколько причин — бонусом:

  • Предложение WHERE идёт последним, что упрощает преждевременное выполнение UPDATE или DELETE, уничтожая всю таблицу. По логике, WHERE должен стоять перед ними.
  • Реляционное деление реализовать сложно.
  • Я могу установить значение NULL, но не могу проверить его на равенство с NULL. Конечно, можно запустить проверку IS NULL, но это только усложняет код.
  • И вообще, почему нам нужно полностью переопределять формулу для столбцов, к которым была применена команда GROUP, вместо того чтобы просто установить для него алиас и только после этого GROUP BY алиаса (или индекса столбца, как в случае SORT)?»

Крис Вестефельд,
пользователь Stack Overflow

Кадр: фильм «День сурка»

BASIC и Visual BASIC — за нумерацию строк

«В классическом BASIC программы переполнены номерами строк, а вы должны зарезервировать строки заранее. И плевать, что вы не знаете, сколько строк вам понадобится. Представьте, что написали программу на тысячу строк и решили вставить ещё 11 где-то между 20-й и 30-й. Это катастрофа.

Тяжело следить за логикой программы, потому что нет блоков кода, как в нормальных языках. Переменные нельзя инициализировать, а нужно явно назначать после объявления.

…Ещё в BASIC массивы индексируются круглыми скобками, из-за чего их не отличишь от функций. Я не знаю, почему в XXI веке нельзя использовать {} и []. С другими символами то же самое — вместо них слова, с которыми код становится длиннее».

Лу Винь Фук,
программист


«BASIC, GW-BASIC, Borland Turbo BASIC и QuickBASIC. Я не ненавижу сами языки, они были продуктом своего времени. Мне обидно, что я потратил на них кучу времени, когда только начинал программировать для MS-DOS и Windows. Если бы у меня тогда был интернет, и я бы узнал о Linux, то кодил бы на C».

Мигель Параз,
разработчик

Perl — за синтаксис

«У Perl сложный синтаксис, а имена переменных хрен разберёшь. Неявная переменная $ _ часто вводит в ступор. Нельзя передавать кортежи и массивы в качестве параметров функций. Вместо этого создатели просто добавили указатели. Это просто боль».

Лу Винь Фук,
программист


«Каждый раз, когда я возвращаюсь к Perl, мне кажется, что я изучаю его заново, в отличие от Python, Ruby, JavaScript, C, C++, Objective-C и так далее. Одну и ту же задачу в Perl можно решить миллионом способов, поэтому чужой код невозможно читать. А его маниакальная «лаконичность» превращает даже самую простую вещь в тарабарщину.

На Perl невозможно написать читаемый код. Поверьте, я псих в вопросах элегантности и порядка, но все мои попытки структурировать код потерпели неудачу. Рано или поздно он превращается в беспорядочную кучу мусора, потому что приходится бороться с синтаксисом и вносить кучу изменений. Но даже когда у вас что-то заработает, это не будет иметь никакого отношения к исходному замыслу».

Ян Питерс-Кэмпбелл,
президент Stickbuilt


«Читать код Perl практически невозможно, потому что любую операцию в нём можно сделать несколькими способами. Дайте мне лучше Python с его „фашистскими“ пробелами. Они хотя бы улучшают читаемость».

Зубин Джатиндар Тику,
фронтенд-разработчик

Ruby — за скорость и синтаксис

«В Ruby есть 4 разных синтаксиса для создания блока, и все они корявые. «Элегантный» синтаксис c хешами неполон и неоднозначен, а «полный» — уродлив. Комьюнити напрочь отказывается читать документацию и вместо этого «читает код». Это же какое-то ребячество.

Из-за сложного метапрограммирования для Ruby почти невозможно написать нормальную IDE. Блоки передаются функциям тупо. Зачем передавать их за пределы списка параметров или использовать нечётный доступ как в yield. Я считаю, что блокам нужен более понятный синтаксис, а в хэше лучше использовать другие разделители: например, <> вместо {}. А параметры методов можно передавать через object.method (1, {|a| a.bar}, «blah»)».

Мирддин Эмрис,
пользователь Stack Overflow

Кадр: мультфильм «Зима в Простоквашино»

Fortran — за непредсказуемость

«Ненавижу старые версии Fortran за произвольную индексацию, произвольные правила форматирования, нечувствительность к регистру, загадочные 8-символьные имена переменных и неявные типы, основанные на первом символе имени переменной.

Часто приходится работать с устаревшими системами, код для которых писали ещё в 1977 году и не подозревали, что их кто-то будет обслуживать. Fortran трудно читать, трудно поддерживать, но им, к несчастью, всё ещё пользуются в моём окружении».

Марк Милстоун,
разработчик из IBM

COBOL — за громоздкость

«Не люблю COBOL за многословность. Программисты пользуются справочниками, чтобы разобраться в его синтаксисе. Код нельзя аккуратно вложить, поэтому приходится писать целые абзацы.

В COBOL куча зарезервированных ключевых слов, неудобный и негибкий синтаксис, арифметические выражения можно передать не во все функции. Нет рекурсии. Вообще, это ограниченный и очень уродливый язык».

Сезар Гил,
программист


Эдсгер Дейкстра и вовсе утверждает, что «использование COBOL калечит ум, поэтому обучение ему следует рассматривать как уголовное преступление».

Всем не угодишь

Чем популярнее язык программирования, тем больше у него ненавистников. Хейтеры найдутся для чего угодно. Поэтому, как бы горячо ни спорили разработчики, они продолжают кодить на «корявых», «запутанных» и «кривых» языках.

Эту мысль подтверждает создатель C++ Бьёрн Страуструп:

«Есть два типа языков программирования: те, на которые все жалуются, и те, которыми никто не пользуется».

Если тоже хочешь побатлиться в жарких холиварах на Stack Overflow и Quora, изучай языки программирования в Skillbox и залетай на площадки со своим экспертным мнением.



Нейросети для работы и творчества!
Хотите разобраться, как их использовать? Смотрите конференцию: четыре топ-эксперта, кейсы и практика. Онлайн, бесплатно. Кликните для подробностей.
Смотреть программу
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована