0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>24 авг 2021</li>
2
<ul><li>24 авг 2021</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><h2>&$!#% - за что разработчики ненавидят разные языки программирования</h2>
4
</ul><h2>&$!#% - за что разработчики ненавидят разные языки программирования</h2>
5
<p>Какие языки программирования вызывают у разработчиков баттхерт и почему. Собрали самые яркие комментарии.</p>
5
<p>Какие языки программирования вызывают у разработчиков баттхерт и почему. Собрали самые яркие комментарии.</p>
6
<p>Martin Poole / Getty Images</p>
6
<p>Martin Poole / Getty Images</p>
7
<p>Журналист, коммерческий автор и редактор. Пишет про IT, цифровой маркетинг и бизнес. Сайт:<a>darovska.com</a>.</p>
7
<p>Журналист, коммерческий автор и редактор. Пишет про IT, цифровой маркетинг и бизнес. Сайт:<a>darovska.com</a>.</p>
8
<p>Мы расспросили разработчиков, собрали комментарии с Quora и Stack Overflow и выяснили, какие языки программирования и за что ненавидят в ИТ-комьюнити.</p>
8
<p>Мы расспросили разработчиков, собрали комментарии с Quora и Stack Overflow и выяснили, какие языки программирования и за что ненавидят в ИТ-комьюнити.</p>
9
<ul><li><a>Java - за раздутость</a></li>
9
<ul><li><a>Java - за раздутость</a></li>
10
<li><a>JavaScript - за кривоту</a></li>
10
<li><a>JavaScript - за кривоту</a></li>
11
<li><a>PHP - за ужасные фреймворки</a></li>
11
<li><a>PHP - за ужасные фреймворки</a></li>
12
<li><a>C++ - за раздутость и запутанность</a></li>
12
<li><a>C++ - за раздутость и запутанность</a></li>
13
<li><a>Python - за обилие плохого кода</a></li>
13
<li><a>Python - за обилие плохого кода</a></li>
14
<li><a>SQL - за неудобство</a></li>
14
<li><a>SQL - за неудобство</a></li>
15
</ul><ul><li><a>BASIC и Visual BASIC - за нумерацию строк</a></li>
15
</ul><ul><li><a>BASIC и Visual BASIC - за нумерацию строк</a></li>
16
<li><a>Perl - за синтаксис</a></li>
16
<li><a>Perl - за синтаксис</a></li>
17
<li><a>Ruby - за скорость и синтаксис</a></li>
17
<li><a>Ruby - за скорость и синтаксис</a></li>
18
<li><a>Fortran - за непредсказуемость</a></li>
18
<li><a>Fortran - за непредсказуемость</a></li>
19
<li><a>COBOL - за громоздкость</a></li>
19
<li><a>COBOL - за громоздкость</a></li>
20
</ul><p>"Enterprise-стиль Java раздут шаблонами проектирования и ненужными иерархиями классов. В основном язык неплохой, думаю, он находится где-то посередине рейтинга".</p>
20
</ul><p>"Enterprise-стиль Java раздут шаблонами проектирования и ненужными иерархиями классов. В основном язык неплохой, думаю, он находится где-то посередине рейтинга".</p>
21
<p><a><strong>Даниэль Велков</strong></a>, инженер-программист в Google</p>
21
<p><a><strong>Даниэль Велков</strong></a>, инженер-программист в Google</p>
22
<p>"Вот за что я ненавижу Java:</p>
22
<p>"Вот за что я ненавижу Java:</p>
23
<ul><li>Нет функций первого класса.</li>
23
<ul><li>Нет функций первого класса.</li>
24
<li>Нет разумных значений по умолчанию - например, на графиках.</li>
24
<li>Нет разумных значений по умолчанию - например, на графиках.</li>
25
<li>Исключение NullPointerException не содержит дополнительной информации о том, что такое null.</li>
25
<li>Исключение NullPointerException не содержит дополнительной информации о том, что такое null.</li>
26
</ul><p>А ещё за обилие бессмысленно "настраиваемых" фреймворков, интерфейсов поставщиков услуг, заводских классов, систем внедрения зависимостей. И да - возможность конфигурирования почти никогда не используется, DRY грубо нарушается, объём кода увеличивается в четыре раза, а читаемость ухудшается вдвое".</p>
26
</ul><p>А ещё за обилие бессмысленно "настраиваемых" фреймворков, интерфейсов поставщиков услуг, заводских классов, систем внедрения зависимостей. И да - возможность конфигурирования почти никогда не используется, DRY грубо нарушается, объём кода увеличивается в четыре раза, а читаемость ухудшается вдвое".</p>
27
<p><a><strong>Zarkonnen</strong></a>, разработчик на Java, Python и JavaScript</p>
27
<p><a><strong>Zarkonnen</strong></a>, разработчик на Java, Python и JavaScript</p>
28
<p>"JavaScript разработали в спешке, за 10 дней, а после этого сообщество потратило ещё 20 лет, чтобы хоть как-то его исправить. Если вы веб-разработчик, вам неизбежно придётся отлаживать интерфейсный код JavaScript в браузере. Причём у кого-то даже развивается стокгольмский синдром - им это начинает нравиться. Но всё-таки нормальные люди ненавидят JS".</p>
28
<p>"JavaScript разработали в спешке, за 10 дней, а после этого сообщество потратило ещё 20 лет, чтобы хоть как-то его исправить. Если вы веб-разработчик, вам неизбежно придётся отлаживать интерфейсный код JavaScript в браузере. Причём у кого-то даже развивается стокгольмский синдром - им это начинает нравиться. Но всё-таки нормальные люди ненавидят JS".</p>
29
<p><a><strong>Хокон Хапнес Стрэнд</strong></a>, инженер по машинному обучению</p>
29
<p><a><strong>Хокон Хапнес Стрэнд</strong></a>, инженер по машинному обучению</p>
30
<p>"JavaScript ужасен. У него ужасный синтаксис, ужасное прототипирование и ужасная интеграция. Он медленный, ненадёжный, непоследовательный. Очень жаль, что такой ужасный язык де-факто стал стандартом для браузеров и интерфейсов веб-приложений".</p>
30
<p>"JavaScript ужасен. У него ужасный синтаксис, ужасное прототипирование и ужасная интеграция. Он медленный, ненадёжный, непоследовательный. Очень жаль, что такой ужасный язык де-факто стал стандартом для браузеров и интерфейсов веб-приложений".</p>
31
<p><a><strong>Джефф Нельсон</strong></a>, разработчик Chromebook</p>
31
<p><a><strong>Джефф Нельсон</strong></a>, разработчик Chromebook</p>
32
<p>"JavaScript притворяется C-подобным языком, пока вы не погрузитесь чуть глубже и не поймёте, что это какое-то причудливое творение, которое просто косплеит C".</p>
32
<p>"JavaScript притворяется C-подобным языком, пока вы не погрузитесь чуть глубже и не поймёте, что это какое-то причудливое творение, которое просто косплеит C".</p>
33
<p><a><strong>Стив Лейси</strong></a>, программист</p>
33
<p><a><strong>Стив Лейси</strong></a>, программист</p>
34
<p>"PHP просто ужасен, и в JavaScript тоже полно плохих моментов. На мой взгляд, они оба становятся только хуже из-за "новомодных" стилей программирования.</p>
34
<p>"PHP просто ужасен, и в JavaScript тоже полно плохих моментов. На мой взгляд, они оба становятся только хуже из-за "новомодных" стилей программирования.</p>
35
<p>В основном потому, что сейчас это два самых популярных и легкодоступных языка. Они доминируют в интернете на протяжении многих лет. Да что там, похоже, в наши дни большинство программистов - веб-разработчики.</p>
35
<p>В основном потому, что сейчас это два самых популярных и легкодоступных языка. Они доминируют в интернете на протяжении многих лет. Да что там, похоже, в наши дни большинство программистов - веб-разработчики.</p>
36
<p>В итоге и для PHP, и для JS наклепали множество дерьмовых фреймворков и библиотек. Люди расстраиваются, пытаясь использовать "простуюFообиблиотеку3000" в рабочих задачах, а потом винят язык - хотя надо бы ругать "ребёнка", который "нагадил в спальне".</p>
36
<p>В итоге и для PHP, и для JS наклепали множество дерьмовых фреймворков и библиотек. Люди расстраиваются, пытаясь использовать "простуюFообиблиотеку3000" в рабочих задачах, а потом винят язык - хотя надо бы ругать "ребёнка", который "нагадил в спальне".</p>
37
<p>А сколько там дублирующих друг друга библиотек! И в конце концов вы создаёте продукт, в котором 30 000 строк кода дублируют что-то созданное до вас, и даже не подозреваете об этом. Да и потом такой код практически нереально отлаживать - вот почему люди ненавидят эти языки".</p>
37
<p>А сколько там дублирующих друг друга библиотек! И в конце концов вы создаёте продукт, в котором 30 000 строк кода дублируют что-то созданное до вас, и даже не подозреваете об этом. Да и потом такой код практически нереально отлаживать - вот почему люди ненавидят эти языки".</p>
38
<p><a><strong>Бен Синклер</strong></a>, разработчик</p>
38
<p><a><strong>Бен Синклер</strong></a>, разработчик</p>
39
<p>"Ненавижу PHP за непонятный синтаксис классов. Почему бы просто не сделать для него импорт, который превращает все глобальные переменные в классы, а функции - в методы?"</p>
39
<p>"Ненавижу PHP за непонятный синтаксис классов. Почему бы просто не сделать для него импорт, который превращает все глобальные переменные в классы, а функции - в методы?"</p>
40
<p><a><strong>Саймон Джексон</strong></a>, программист</p>
40
<p><a><strong>Саймон Джексон</strong></a>, программист</p>
41
<em>Кадр: фильм "Механик"</em><p>"Я не смог найти ничего, что бы мне нравилось в этом языке. Меня раздражает даже его базовая функциональность, связанная с классами".</p>
41
<em>Кадр: фильм "Механик"</em><p>"Я не смог найти ничего, что бы мне нравилось в этом языке. Меня раздражает даже его базовая функциональность, связанная с классами".</p>
42
<p><a><strong>Лейф Уолш</strong></a>, разработчик</p>
42
<p><a><strong>Лейф Уолш</strong></a>, разработчик</p>
43
<p>"Слишком большой набор функций, ручное управление памятью, низкая скорость компиляции, да ещё и невозможно нормально переключаться между объектно-ориентированным и процедурным кодом внутри одной и той же программы".</p>
43
<p>"Слишком большой набор функций, ручное управление памятью, низкая скорость компиляции, да ещё и невозможно нормально переключаться между объектно-ориентированным и процедурным кодом внутри одной и той же программы".</p>
44
<p><a><strong>Амар Кумар</strong></a>, старший веб-разработчик в Internshala</p>
44
<p><a><strong>Амар Кумар</strong></a>, старший веб-разработчик в Internshala</p>
45
<p>"При использовании шаблонов приходится включать всё в один файл, а на выходе получается какое-то нереальное время компиляции. А стандартная библиотека C++ - вообще какой-то нелепый анахронизм (по дефолту нет потоков или инструментов для работы с сетью)".</p>
45
<p>"При использовании шаблонов приходится включать всё в один файл, а на выходе получается какое-то нереальное время компиляции. А стандартная библиотека C++ - вообще какой-то нелепый анахронизм (по дефолту нет потоков или инструментов для работы с сетью)".</p>
46
<p><a><strong>Крис Джефферсон</strong></a>, программист</p>
46
<p><a><strong>Крис Джефферсон</strong></a>, программист</p>
47
<p> "C++ - ужасный язык. И со временем он становится только хуже - ведь его используют множество плохих программистов, потому что на нём намного легче генерировать говнокод. Откровенно говоря, я бы предпочёл C просто за то, что в твой код не будут вмешиваться программисты на C++".</p>
47
<p> "C++ - ужасный язык. И со временем он становится только хуже - ведь его используют множество плохих программистов, потому что на нём намного легче генерировать говнокод. Откровенно говоря, я бы предпочёл C просто за то, что в твой код не будут вмешиваться программисты на C++".</p>
48
<p><a><strong>Линус Торвальдс</strong></a>, создатель Linux</p>
48
<p><a><strong>Линус Торвальдс</strong></a>, создатель Linux</p>
49
<p>"На Python написана куча программ отвратительного качества, потому что люди, освоив базовый синтаксис, начинают считать себя разработчиками. Но синтаксис - это даже не десятая часть. Да и компании очень любят нанимать питонистов - ведь их много и им легче найти замену. Хотя для многих решений продакшн приложений на Python, мягко говоря, не подходит. Он хорош для небольших автоматизаций и всякого ML. Для высоконагруженных или сложных приложений Python не годится. Easy to start, hard to master".</p>
49
<p>"На Python написана куча программ отвратительного качества, потому что люди, освоив базовый синтаксис, начинают считать себя разработчиками. Но синтаксис - это даже не десятая часть. Да и компании очень любят нанимать питонистов - ведь их много и им легче найти замену. Хотя для многих решений продакшн приложений на Python, мягко говоря, не подходит. Он хорош для небольших автоматизаций и всякого ML. Для высоконагруженных или сложных приложений Python не годится. Easy to start, hard to master".</p>
50
<p><strong>Kira 2pizza</strong>Lead software engineer, автор Telegram-канала<a>@</a><a>dead2pizza</a>. Комментарий для Skillbox Media</p>
50
<p><strong>Kira 2pizza</strong>Lead software engineer, автор Telegram-канала<a>@</a><a>dead2pizza</a>. Комментарий для Skillbox Media</p>
51
<p>"Вместо круглых или фигурных скобок в Python для обозначения блоков используют отступы. Кроме того, мне не нравится обилие двоеточий и подчёркиваний, а также постоянные конфликты имён модулей и переменных".</p>
51
<p>"Вместо круглых или фигурных скобок в Python для обозначения блоков используют отступы. Кроме того, мне не нравится обилие двоеточий и подчёркиваний, а также постоянные конфликты имён модулей и переменных".</p>
52
<p><a><strong>Амар Кумар</strong></a>, старший веб-разработчик в Internshala</p>
52
<p><a><strong>Амар Кумар</strong></a>, старший веб-разработчик в Internshala</p>
53
<p>"Я ненавижу Python, потому что гладиолус. Да пошёл ты, чёртов Python. Что за бред: невидимый пробел - часть синтаксиса, а self - не ключевое слово. Кажется, Гвидо фон Россумбургер - просто придурок. Преподавать Python в школах - глупая идея. C++ или Java куда лучше. В Python нет ключевого слова для объявления переменных. Вы просто вводите имена переменных, а потом с трудом находите, где их объявляли. Создатели не учли уроки прошлого: не объявлять переменные и функции - это ошибка из 1950-х".</p>
53
<p>"Я ненавижу Python, потому что гладиолус. Да пошёл ты, чёртов Python. Что за бред: невидимый пробел - часть синтаксиса, а self - не ключевое слово. Кажется, Гвидо фон Россумбургер - просто придурок. Преподавать Python в школах - глупая идея. C++ или Java куда лучше. В Python нет ключевого слова для объявления переменных. Вы просто вводите имена переменных, а потом с трудом находите, где их объявляли. Создатели не учли уроки прошлого: не объявлять переменные и функции - это ошибка из 1950-х".</p>
54
<p><a><strong>Олегзандр фон Денман</strong></a>, программист</p>
54
<p><a><strong>Олегзандр фон Денман</strong></a>, программист</p>
55
<p>"Я не умею пользоваться Python - да и мои коллеги, судя по всему, тоже не умеют: всё сделано через жопу - то пакет какой-нибудь сломается, то ещё что-то".</p>
55
<p>"Я не умею пользоваться Python - да и мои коллеги, судя по всему, тоже не умеют: всё сделано через жопу - то пакет какой-нибудь сломается, то ещё что-то".</p>
56
<p><a><strong>Batate_courier</strong></a><strong>,</strong>программистка на Kotlin</p>
56
<p><a><strong>Batate_courier</strong></a><strong>,</strong>программистка на Kotlin</p>
57
<p>"Удивительно, почему никто ещё не вспомнил SQL. А ведь за ним много грешков:</p>
57
<p>"Удивительно, почему никто ещё не вспомнил SQL. А ведь за ним много грешков:</p>
58
<ul><li>Непоследовательный синтаксис в разных реализациях.</li>
58
<ul><li>Непоследовательный синтаксис в разных реализациях.</li>
59
<li>Тонкие различия в коде снижают производительность по неясным причинам.</li>
59
<li>Тонкие различия в коде снижают производительность по неясным причинам.</li>
60
<li>Плохая поддержка текстовых манипуляций.</li>
60
<li>Плохая поддержка текстовых манипуляций.</li>
61
<li>Простой вход, но очень крутая кривая обучения на пути к мастерству.</li>
61
<li>Простой вход, но очень крутая кривая обучения на пути к мастерству.</li>
62
<li>Минимум стандартов и best practices в сообществе, включая стиль.</li>
62
<li>Минимум стандартов и best practices в сообществе, включая стиль.</li>
63
</ul><p>И ещё несколько причин - бонусом:</p>
63
</ul><p>И ещё несколько причин - бонусом:</p>
64
<ul><li>Предложение WHERE идёт последним, что упрощает преждевременное выполнение UPDATE или DELETE, уничтожая всю таблицу. По логике, WHERE должен стоять перед ними.</li>
64
<ul><li>Предложение WHERE идёт последним, что упрощает преждевременное выполнение UPDATE или DELETE, уничтожая всю таблицу. По логике, WHERE должен стоять перед ними.</li>
65
<li>Реляционное деление реализовать сложно.</li>
65
<li>Реляционное деление реализовать сложно.</li>
66
<li>Я могу установить значение NULL, но не могу проверить его на равенство с NULL. Конечно, можно запустить проверку IS NULL, но это только усложняет код.</li>
66
<li>Я могу установить значение NULL, но не могу проверить его на равенство с NULL. Конечно, можно запустить проверку IS NULL, но это только усложняет код.</li>
67
<li>И вообще, почему нам нужно полностью переопределять формулу для столбцов, к которым была применена команда GROUP, вместо того чтобы просто установить для него алиас и только после этого GROUP BY алиаса (или индекса столбца, как в случае SORT)?"</li>
67
<li>И вообще, почему нам нужно полностью переопределять формулу для столбцов, к которым была применена команда GROUP, вместо того чтобы просто установить для него алиас и только после этого GROUP BY алиаса (или индекса столбца, как в случае SORT)?"</li>
68
</ul><p><a><strong>Крис Вестефельд</strong></a>, пользователь Stack Overflow</p>
68
</ul><p><a><strong>Крис Вестефельд</strong></a>, пользователь Stack Overflow</p>
69
<em>Кадр: фильм "День сурка"</em><p>"В классическом BASIC программы переполнены номерами строк, а вы должны зарезервировать строки заранее. И плевать, что вы не знаете, сколько строк вам понадобится. Представьте, что написали программу на тысячу строк и решили вставить ещё 11 где-то между 20-й и 30-й. Это катастрофа.</p>
69
<em>Кадр: фильм "День сурка"</em><p>"В классическом BASIC программы переполнены номерами строк, а вы должны зарезервировать строки заранее. И плевать, что вы не знаете, сколько строк вам понадобится. Представьте, что написали программу на тысячу строк и решили вставить ещё 11 где-то между 20-й и 30-й. Это катастрофа.</p>
70
<p>Тяжело следить за логикой программы, потому что нет блоков кода, как в нормальных языках. Переменные нельзя инициализировать, а нужно явно назначать после объявления.</p>
70
<p>Тяжело следить за логикой программы, потому что нет блоков кода, как в нормальных языках. Переменные нельзя инициализировать, а нужно явно назначать после объявления.</p>
71
<p>…Ещё в BASIC массивы индексируются круглыми скобками, из-за чего их не отличишь от функций. Я не знаю, почему в XXI веке нельзя использовать {} и []. С другими символами то же самое - вместо них слова, с которыми код становится длиннее".</p>
71
<p>…Ещё в BASIC массивы индексируются круглыми скобками, из-за чего их не отличишь от функций. Я не знаю, почему в XXI веке нельзя использовать {} и []. С другими символами то же самое - вместо них слова, с которыми код становится длиннее".</p>
72
<p><a><strong>Лу Винь Фук</strong></a>, программист</p>
72
<p><a><strong>Лу Винь Фук</strong></a>, программист</p>
73
<p>"BASIC, GW-BASIC, Borland Turbo BASIC и QuickBASIC. Я не ненавижу сами языки, они были продуктом своего времени. Мне обидно, что я потратил на них кучу времени, когда только начинал программировать для MS-DOS и Windows. Если бы у меня тогда был интернет, и я бы узнал о Linux, то кодил бы на C".</p>
73
<p>"BASIC, GW-BASIC, Borland Turbo BASIC и QuickBASIC. Я не ненавижу сами языки, они были продуктом своего времени. Мне обидно, что я потратил на них кучу времени, когда только начинал программировать для MS-DOS и Windows. Если бы у меня тогда был интернет, и я бы узнал о Linux, то кодил бы на C".</p>
74
<p><a><strong>Мигель Параз</strong></a>, разработчик</p>
74
<p><a><strong>Мигель Параз</strong></a>, разработчик</p>
75
<p>"У Perl сложный синтаксис, а имена переменных хрен разберёшь. Неявная переменная $ _ часто вводит в ступор. Нельзя передавать кортежи и массивы в качестве параметров функций. Вместо этого создатели просто добавили указатели. Это просто боль".</p>
75
<p>"У Perl сложный синтаксис, а имена переменных хрен разберёшь. Неявная переменная $ _ часто вводит в ступор. Нельзя передавать кортежи и массивы в качестве параметров функций. Вместо этого создатели просто добавили указатели. Это просто боль".</p>
76
<p><a><strong>Лу Винь Фук</strong></a>, программист</p>
76
<p><a><strong>Лу Винь Фук</strong></a>, программист</p>
77
<p>"Каждый раз, когда я возвращаюсь к Perl, мне кажется, что я изучаю его заново, в отличие от Python, Ruby, JavaScript, C, C++, Objective-C и так далее. Одну и ту же задачу в Perl можно решить миллионом способов, поэтому чужой код невозможно читать. А его маниакальная "лаконичность" превращает даже самую простую вещь в тарабарщину.</p>
77
<p>"Каждый раз, когда я возвращаюсь к Perl, мне кажется, что я изучаю его заново, в отличие от Python, Ruby, JavaScript, C, C++, Objective-C и так далее. Одну и ту же задачу в Perl можно решить миллионом способов, поэтому чужой код невозможно читать. А его маниакальная "лаконичность" превращает даже самую простую вещь в тарабарщину.</p>
78
<p>На Perl невозможно написать читаемый код. Поверьте, я псих в вопросах элегантности и порядка, но все мои попытки структурировать код потерпели неудачу. Рано или поздно он превращается в беспорядочную кучу мусора, потому что приходится бороться с синтаксисом и вносить кучу изменений. Но даже когда у вас что-то заработает, это не будет иметь никакого отношения к исходному замыслу".</p>
78
<p>На Perl невозможно написать читаемый код. Поверьте, я псих в вопросах элегантности и порядка, но все мои попытки структурировать код потерпели неудачу. Рано или поздно он превращается в беспорядочную кучу мусора, потому что приходится бороться с синтаксисом и вносить кучу изменений. Но даже когда у вас что-то заработает, это не будет иметь никакого отношения к исходному замыслу".</p>
79
<p><a><strong>Ян Питерс-Кэмпбелл</strong></a>, президент Stickbuilt</p>
79
<p><a><strong>Ян Питерс-Кэмпбелл</strong></a>, президент Stickbuilt</p>
80
<p>"Читать код Perl практически невозможно, потому что любую операцию в нём можно сделать несколькими способами. Дайте мне лучше Python с его "фашистскими“ пробелами. Они хотя бы улучшают читаемость".</p>
80
<p>"Читать код Perl практически невозможно, потому что любую операцию в нём можно сделать несколькими способами. Дайте мне лучше Python с его "фашистскими“ пробелами. Они хотя бы улучшают читаемость".</p>
81
<p><a><strong>Зубин Джатиндар Тику</strong></a>, фронтенд-разработчик</p>
81
<p><a><strong>Зубин Джатиндар Тику</strong></a>, фронтенд-разработчик</p>
82
<p>"В Ruby есть 4 разных синтаксиса для создания блока, и все они корявые. "Элегантный" синтаксис c хешами неполон и неоднозначен, а "полный" - уродлив. Комьюнити напрочь отказывается читать документацию и вместо этого "читает код". Это же какое-то ребячество.</p>
82
<p>"В Ruby есть 4 разных синтаксиса для создания блока, и все они корявые. "Элегантный" синтаксис c хешами неполон и неоднозначен, а "полный" - уродлив. Комьюнити напрочь отказывается читать документацию и вместо этого "читает код". Это же какое-то ребячество.</p>
83
<p>Из-за сложного метапрограммирования для Ruby почти невозможно написать нормальную IDE. Блоки передаются функциям тупо. Зачем передавать их за пределы списка параметров или использовать нечётный доступ как в yield. Я считаю, что блокам нужен более понятный синтаксис, а в хэше лучше использовать другие разделители: например, <> вместо {}. А параметры методов можно передавать через object.method (1, {|a| a.bar}, "blah")".</p>
83
<p>Из-за сложного метапрограммирования для Ruby почти невозможно написать нормальную IDE. Блоки передаются функциям тупо. Зачем передавать их за пределы списка параметров или использовать нечётный доступ как в yield. Я считаю, что блокам нужен более понятный синтаксис, а в хэше лучше использовать другие разделители: например, <> вместо {}. А параметры методов можно передавать через object.method (1, {|a| a.bar}, "blah")".</p>
84
<p><a><strong>Мирддин Эмрис</strong></a>, пользователь Stack Overflow</p>
84
<p><a><strong>Мирддин Эмрис</strong></a>, пользователь Stack Overflow</p>
85
Кадр: мультфильм "Зима в Простоквашино"<p>"Ненавижу старые версии Fortran за произвольную индексацию, произвольные правила форматирования, нечувствительность к регистру, загадочные 8-символьные имена переменных и неявные типы, основанные на первом символе имени переменной.</p>
85
Кадр: мультфильм "Зима в Простоквашино"<p>"Ненавижу старые версии Fortran за произвольную индексацию, произвольные правила форматирования, нечувствительность к регистру, загадочные 8-символьные имена переменных и неявные типы, основанные на первом символе имени переменной.</p>
86
<p>Часто приходится работать с устаревшими системами, код для которых писали ещё в 1977 году и не подозревали, что их кто-то будет обслуживать. Fortran трудно читать, трудно поддерживать, но им, к несчастью, всё ещё пользуются в моём окружении".</p>
86
<p>Часто приходится работать с устаревшими системами, код для которых писали ещё в 1977 году и не подозревали, что их кто-то будет обслуживать. Fortran трудно читать, трудно поддерживать, но им, к несчастью, всё ещё пользуются в моём окружении".</p>
87
<p><a><strong>Марк Милстоун</strong></a>, разработчик из IBM</p>
87
<p><a><strong>Марк Милстоун</strong></a>, разработчик из IBM</p>
88
<p>"Не люблю COBOL за многословность. Программисты пользуются справочниками, чтобы разобраться в его синтаксисе. Код нельзя аккуратно вложить, поэтому приходится писать целые абзацы.</p>
88
<p>"Не люблю COBOL за многословность. Программисты пользуются справочниками, чтобы разобраться в его синтаксисе. Код нельзя аккуратно вложить, поэтому приходится писать целые абзацы.</p>
89
<p>В COBOL куча зарезервированных ключевых слов, неудобный и негибкий синтаксис, арифметические выражения можно передать не во все функции. Нет рекурсии. Вообще, это ограниченный и очень уродливый язык".</p>
89
<p>В COBOL куча зарезервированных ключевых слов, неудобный и негибкий синтаксис, арифметические выражения можно передать не во все функции. Нет рекурсии. Вообще, это ограниченный и очень уродливый язык".</p>
90
<p><a><strong>Сезар Гил</strong></a>, программист</p>
90
<p><a><strong>Сезар Гил</strong></a>, программист</p>
91
<p>Эдсгер Дейкстра и вовсе<a>утверждает</a>, что "использование COBOL калечит ум, поэтому обучение ему следует рассматривать как уголовное преступление".</p>
91
<p>Эдсгер Дейкстра и вовсе<a>утверждает</a>, что "использование COBOL калечит ум, поэтому обучение ему следует рассматривать как уголовное преступление".</p>
92
<p>Чем популярнее язык программирования, тем больше у него ненавистников. Хейтеры найдутся для чего угодно. Поэтому, как бы горячо ни спорили разработчики, они продолжают кодить на "корявых", "запутанных" и "кривых" языках.</p>
92
<p>Чем популярнее язык программирования, тем больше у него ненавистников. Хейтеры найдутся для чего угодно. Поэтому, как бы горячо ни спорили разработчики, они продолжают кодить на "корявых", "запутанных" и "кривых" языках.</p>
93
<p>Эту мысль подтверждает создатель C++ Бьёрн Страуструп:</p>
93
<p>Эту мысль подтверждает создатель C++ Бьёрн Страуструп:</p>
94
<p>"Есть два типа языков программирования: те, на которые все жалуются, и те, которыми никто не пользуется".</p>
94
<p>"Есть два типа языков программирования: те, на которые все жалуются, и те, которыми никто не пользуется".</p>
95
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
95
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>