Python — отстой: разочарованный разработчик обрушился с критикой на популярный язык программирования
Разработчику программного обеспечения Майклу Морено не угодил Python. Чем именно, специалист написал в блоге на Medium, чем привлек внимание более 6,5 тысяч пользователей. Что, по мнению разработчика, такого плохого в детище Гвидо ван Россума — узнаете далее.
«Повторю еще раз: Python — плохой язык программирования», — с таких слов начал свой пост возмущенный разработчик. Главная причина, по которой язык настолько популярен, в том, что Google сильно продвигала его в первой декаде «нулевых», уверен Майкл Морено. Вот что он написал.
Создатель Python работал в Google с 2005 по 2012 год. Таких языков, как Go и Dart, тогда еще не было, или, по крайней мере, они не были широко известны, а с учетом того, что C# набирал популярность, в Google, вероятно, поняли, что им нужен собственный язык. По сути, можно было использовать Java, но тогда бы они не миновали очередных юридических проблем с Oracle. Тогда, по неизвестным причинам, боссы компании выбрали Python.
Пруф, что Гвидо ван Россум работал на Google
Позвольте объяснить, почему Python — отстой. Да, будет трудно, учитывая его популярность, но постараюсь. Я расскажу не о самом языке, не о его производительности или возможностях реализации, в основном моя цель — сравнить его с Java и C#. Почему? Потому что эти два известных, зрелых языка программирования уже более 15 лет находят широкое применение в мире разработки программного обеспечения.
В течение очень долгого времени у Python было две основные версии — Python 2 и 3, которые, к слову, несовместимы друг с другом. Таким образом, разработчики попадали в странную ситуацию. В Google призывали всех изучать Python, потому что это «круто». Кто-то скачивал вторую версию, кто-то третью, и только потом выяснялось, что, например, у Python 3 почти нет совместимых библиотек, и никто не использует эту версию. Единственная причина, зачем ее разрабатывали, — это добавление круглых скобок в функцию print()
и поддержка эмодзи. Что до Python 2, то из-за множества ошибок (около 3300), в Ubuntu, например, вообще решили отказаться от его использования.
Класс в Python выглядит так:
self
. Оно в Python везде! Это способ обращения к переменным экземпляра класса. Чем-то похоже на this
в Java и С#, только в Python оно обязательно. class Car: def __init__(self): self.color = "red" self.wheels = 4 def get_wheels(self): return f"{self.wheels}!"
Почему? Потому что Python тупой.
color
и wheels
. Чтобы работать с ними, разработчик должен объявить их и инициализировать в конструкторе! Это очень глупо.self.__color = "red"
. private
.Кстати, если спросить об этом Python-разработчика, он лишь ухмыльнется и посоветует не обращаться к переменным экземпляра другого класса. Будьте готовы, разработчики Python враждебны и беспощадны к тем, кто указывает на недостатки их «родного» языка программирования.
Еще одна причина, по которой Python — это мусор. В нормальном языке для разграничения области видимости используются фигурные скобки или ключевые слова BEGIN
и END
. Но не в Python! Создатели языка решили, что было бы здорово придать пробельным символам семантическое значение. Но с какой стати они придали семантическое значение тому, чего нельзя увидеть? Кто решил, что это хорошая идея?
Ок. Уговорили!
Динамическая типизация — это плохо. Любой, кто со мной не согласен, вероятно, написал еще недостаточно программного обеспечения, чтобы это понять. При динамической типизации, чем больше программа, тем выше вероятность, что она необслуживаемая. Вангую, в будущем все основные языки программирования будут статически типизированными, а использование динамически типизированного языка будет похоже на использование лука и стрел. Не удивлюсь, если видео, как люди программируют на динамических типизированных языках, есть на YouTube-канале Primitive Technology. Языки, появившиеся совсем недавно, такие как TypeScript, вселяют в меня надежду.
Кодинг на Python равен процессу создания первобытного орудия, уверен автор
Некоторые питонисты поняли, что динамическая типизация — это плохо, следствием чего стало создание модуля mypy. Но! Если вы собираетесь добавить аннотации типов в Python, почему бы вам просто не использовать Java или C#?
В Python нет констант. А чего вы еще ожидали, дочитав до этого места? Кстати, вопрос о том, как сделать переменную постоянной, задали на Stack Overflow, и совет разработчика Python был «просто не меняйте ее».
Python — это пример того, как люди пытаются жить с чем-то, приспособиться и заставить себя полюбить что-то, вместо того, чтобы избавиться от этого и перейти на что-то лучшее. Может быть, это все история про любовь, надежду или что-то еще? Каким-то образом этот некачественный язык превзошел несколько более современных языков, и, возможно, уже слишком поздно что-то с этим делать.
В 2014 году Python стал самым популярным вводным учебным языком в университетах. Так что в ближайшее время мы начнем видеть все больше детей, приходящих в индустрию с Python в качестве основного языка, и его популярность будет только расти по мере того, как на нем будет писаться все больше и больше программ. На момент написания материала он занимает второе место в индексе TIOBE, и эта компания назвала Python «языком программирования 2020 года».
Рейтинг TIOBE
Да, если хотите заниматься машинным обучением и наукой о данных в 2021-м, используйте Python, поскольку это язык с наибольшим количеством библиотек. По крайней мере, мы можем быть благодарны Google за то, что они не стали продвигать Brainfuck.
Синтаксис Brainfuck
Насколько конструктивна критика автора? Согласны с его словами? Пишите об этом в комментариях.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…