HTML Diff
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>&amp;$!#% - за что разработчики ненавидят разные языки программирования</h2>
4 </ul><h2>&amp;$!#% - за что разработчики ненавидят разные языки программирования</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. Я считаю, что блокам нужен более понятный синтаксис, а в хэше лучше использовать другие разделители: например, &lt;&gt; вместо {}. А параметры методов можно передавать через object.method (1, {|a| a.bar}, "blah")".</p>
83 <p>Из-за сложного метапрограммирования для Ruby почти невозможно написать нормальную IDE. Блоки передаются функциям тупо. Зачем передавать их за пределы списка параметров или использовать нечётный доступ как в yield. Я считаю, что блокам нужен более понятный синтаксис, а в хэше лучше использовать другие разделители: например, &lt;&gt; вместо {}. А параметры методов можно передавать через 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>