Совсем недавно мы подвели общие итоги года в IT. Один из разделов был посвящён языкам, которые раздражают пользователей больше всего. Напомним, что пятёрка призёров выглядит так:
- Visual Basic 6;
- VBA;
- CoffeeScript;
- VB.NET;
- MATLAB.
Это итоги общего голосования. Однако чуть больше месяца назад на том же портале Stack Overflow проводился аналогичный опрос, посвящённый лишь негативу к конкретным языкам программирования. Результаты выглядят так:
Здесь распределение мест совершенно другое, в топе оказались популярные языки. Вторая часть голосования была посвящена тому, что именно бесит разработчиков:
Давайте рассмотрим самые ненавистные языки и убедимся, что языки в этом совсем не виноваты.
Вне подиума: MATLAB, CoffeeScript
Классическими аргументами невозможно объяснить наличие этих языков в топе. К примеру, CoffeeScript является синтаксическим сахаром для JavaScript. Вы не найдете практически ни одной гневной статьи, где бы призывали вернуться на JS или сделать выбор в пользу TypeScript. Весь негатив, который направлен в сторону CoffeeScript – плохая поддержка и вытекающие проблемы с компиляцией и отладкой. Однако недавно вышла вторая версия языка, в которой проблемы частично были решены. Поэтому посмотрим на рейтинг CoffeeScript в следующем году.
MATLAB и вовсе язык, который существует в своём замкнутом мире, причём многие разработчики в нём даже не являются программистами. Именно здесь таится главная причина нелюбви – если до этого вы пробовали обрабатывать данные в Python, а теперь вам пришлось пересесть на MATLAB, вас наверняка отпугнёт неэффективный синтаксис, ограничения в ООП, необходимость творить в рамках одной системы. Но вряд ли подобные претензии справедливо предъявлять к языку, созданному 33 года назад для решения узконаправленных задач.
Бронза: Visual Basic
Как известно, у Visual Basic несколько ответвлений: VB6, VBA или VB.NET. Удивительно, но все три попали в топ общего рейтинга. Попробуем разобраться, в чём причина такой ненависти.
Visual Basic официально не поддерживается уже несколько лет, по современным меркам это скудный и слаборазвитый язык. Что говорить, там даже нет нормальных наследования и полиморфизма. Однако ругать язык, который уже похоронили, довольно странно.
VB.NET – другое дело. Здесь есть преимущества .NET платформы, нормальная среда разработки и возможность создать современный продукт. Явные минусы – по-прежнему имитация механизма наследования и ориентированность лишь на Windows. Синтаксис также не является сильной стороной языка, но учитывая, что VB.NET чуть изуродованная версия C#, а он даже не в топе, то это не главная причина.
А вот Visual Basic for Applications – язык, который имеет недостатки по каждому пункту из второго рейтинга. Лично я пользуюсь им лишь для написания макросов для Excel. И каждый раз открывая среду разработки, я чувствоваю, что дизайн и инструментарий застряли в начале 2000-х.
При этом VBA – мощный и полезный язык, если речь идёт о взаимодействии с Windows. Да, хочется видеть синтаксис, как у Python, разнообразие средств разработки, как у Java или JS, хорошую документацию и большое дружное сообщество. Но и без этого VBA хорошо подходит для организации взаимодействия между приложениями и создания локальных скриптов.
Серебро: Java
Моё мнение – Java попал в этот список лишь из-за огромной популярности. Из тысячи случайно выбранных разработчиков Stack Overflow большая часть окажется Java-специалистами или просто людьми, знакомыми с языком. Даже если вспомнить все минусы Java, трудно представить, что у C#, JavaScript или COBOL их меньше.
Одна из главных претензий – будучи столь востребованным и развитым языком, Java базируется на синтаксисе 25-летней давности. Если бы он обеспечивал языку высокое быстродействие, эффективное использование памяти, надёжность – мы бы всё ему простили. Но этого нет.
Множество направлений разработки тоже не добавляет плюсов. Например, в мобильной разработке вы можете сравнить создание приложений на Swift и на ограниченной Java. И вряд ли вы восхититесь крутостью последней. При этом в десктопных приложениях Java – один из самых удобных инструментов для решения комплексных задач.
Золото: Perl
Как и в других «подиумных» случаях, первое место говорит больше о людях, которые пользуются Perl, чем о самом языке. Сообщество разделено на три лагеря. Первый давно использует Perl, научился обходить все проблемные вопросы, прекрасно понимает суть синтаксиса. Второй лагерь – новички или специалисты по другим языкам. Буфер между ними заполнен людьми, кричащими о «глупом» синтаксисе, отсутствию нормального ООП, «кривой» реализации многопоточности и т. д. Отсюда рождается миф об отсутствии нормального сообщества программистов.
Кроме того, Perl уже 30 лет. По тем временам у него был достаточно простой и понятный синтаксис. Но если сравнивать с языками из 90-х – есть что улучшить. Также у него не слишком развита экосистема – почти нет профильных IDE, остальной инструментарий тоже весьма скудный. Но это не JavaScript и не Python, перед Perl не стоит столько сложных задач, а для решения своих вполне хватает существующей экосистемы.
Рейтинги Stack Overflow не подтверждают поговорку: «От любви до ненависти один шаг». Скорее они иллюстрируют понятное желание разработчиков двигаться в сторону упрощения синтаксиса, увеличения разнообразия инструментов и ускорения разработки. Правильный ли это путь – покажет время.
Если вам понравилась статья ставьте лайк и подписывайтесь на канал. Будет много интересного!
Посмотрите похожие материалы:
7 классических проблем программиста
5 тем, в которых должен разбираться каждый программист
7 языков, которые отказываются умирать
Если вы хотите почитать статьи и материалы в нашем блоге, переходите на наш сайт.