Почему Python не станет языком программирования будущего, даже если сейчас популярен

Команда Mail.ru Cloud Solutions перевела колонку Rhea Moutafis «Why Python is not the programming language of the future». Автор перевода не всегда разделяет мнение автора статьи.

Python появился в мире программирования довольно давно, но с начала 2010 годов переживает бум — он уже обогнал по популярности C, C#, Java и JavaScript. До каких пор будет сохраняться тенденция роста, когда Python заменит какой-то другой язык и почему?

Автор колонки считает, что у Python есть несколько свойств, которые помогли ему стать популярным языком. Но есть и слабые места, которые уничтожат его в будущем.

Что делает Python популярным прямо сейчас

Популярность языка программирования можно отследить по динамике количества тегов на самом востребованном у разработчиков ресурсе — Stack Overflow. Так, судя по графику, рост Python начался с 2010 года, а стремительным он стал в 2015 году. В то время как R в течение последних нескольких лет находится на плато, а многие другие языки находятся в упадке. У такой популярности Python есть причины.

Популярность языков программирования на Stack Overflow

Время существования

Python можно смело назвать довольно старым языком — он появился в 1991 году, то есть практически 30 лет назад. За это время он постепенно собрал вокруг себя большое сообщество.

Если у вас появится какая-то проблема с этим языком, то решить ее, скорее всего, получится примитивным поиском в Google — наверняка кто-то уже опубликовал мануал с алгоритмом и примером кода.

Простота

Python можно смело рекомендовать как первый язык программирования. И дело не только в том, что он существует давно и поэтому по нему есть много хороших учебников. У него понятный синтаксис, похожий на обычный, «человеческий» язык. и еще он прощает ошибки.

Например, в нем не нужно указывать тип данных, достаточно просто объявить переменную. Из контекста Python поймет, является ли она целым числом, числом с плавающей запятой, логическим значением или чем-то еще. Это огромное преимущество для начинающих.

Если вам когда-либо приходилось программировать на C++, вы знаете, как это печально, когда программа не компилируется только потому, что вы где-то поменяли число с плавающей точкой на целое число.

Код Python довольно просто читать. Просто сравните синтаксис Python и C++.

Универсальность

Python существует так долго, что разработчики смогли сделать специальные библиотеки практически для любых целей. Например:

  • Для многомерных массивов и высокоуровневых матриц используйте NumPy.
  • Для расчетов в инженерном деле подойдет SciPy.
  • Для исследования, анализа и манипулирования данными попробуйте Pandas.
  • Для работы с искусственным интеллектом изучайте Scikit-Learn.

Если вам нужно решить какую-то вычислительную задачу, вероятно, что для нее уже есть специальная библиотека Python. Это позволяет языку оставаться в тренде последние годы, что видно по всплеску его использования в машинном обучении.

Недостатки Python, которые могут уничтожить этот язык

Вот недостатки, которые могут стать критичными для развития Python как самого популярного языка в будущем.

Скорость

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

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

Конечно, вы можете возразить — кого сейчас волнует эта скорость, ведь компьютеры и серверы стали такими мощными, что в итоге «медленно» означает выбор между загрузкой приложения за 0,01 секунды или 0,001 секунды. Действительно, конечному пользователю нет разницы.

Области видимости

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

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

Питон пытался перейти к статической области видимости, но ничего не вышло. Обычно внутренние области видимости — например, функции внутри функции — могут видеть и менять внешние области видимости. В Python внутренние области могут только видеть внешние области, но не менять их. Такой подход приводит к путанице.

Лямбда-функции

Несмотря на всю гибкость, использование лямбд в Python ограничено. Они могут быть только выражениями (expressions), но не инструкциями (statements). С другой стороны, объявления переменных и statements и есть инструкции. Проще говоря, добавление statements сделает лямбду многострочной, а синтаксис Python не позволяет так сделать.

Это различие между expressions и statements довольно произвольно, и не встречается в других языках.

Пробелы

Питон хорошо подходит начинающим разработчикам — там используются пробелы и отступы для обозначения разных уровней кода. Это делает его визуально привлекательным и интуитивно понятным.

Другие языки, например C++, больше полагаются на фигурные скобки и точки с запятой. И пусть это не так визуально комфортно для новичков, зато делает код намного удобнее для поддержки. Для больших проектов это намного важнее.

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

Пробелы делают код более читаемым, но менее удобным в сопровождении Irvan Smith на Unsplash

Мобильная разработка

Сейчас мы наблюдаем массовый переход от компьютеров к смартфонам — уже понятно, что нам нужны языки, подходящие для мобильных приложений.

В Python такая возможность как бы есть — пакет под название Kivy. Но нужно учитывать, что Python не был создан для мобильных устройств. Использовать его можно, результат будет даже приемлемым, но зачем, когда можно взять более подходящий язык, созданный для разработки мобильных приложений. Например, фреймворки для кроссплатформенной мобильной разработки: React Native, Flutter, Iconic и Cordova.

Если вы планируете стать всесторонне развитым разработчиком, только знания Python недостаточно.

Ошибки во время выполнения (Runtime Errors)

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

Это приводит к низкой производительности, временным затратам и большому количеству тестов. Тесты — это замечательно, особенно для новичков. Но для опытных разработчиков такая необходимость воспринимается как минус и приводит к нехватке производительности.

Что может заменить Python в будущем

На рынке языков программирования есть несколько его конкурентов:

  • Rust — в нем так же, как и в Python, переменная не может быть случайно перезаписана. Но за счет концепции владения и заимствования в Rust решена проблема с производительностью. Кстати, именно Rust разработчики называют самым любимым языком.
  • Go стоит рассматривать начинающим разработчикам. Он довольно прост в освоении, поддерживать код тоже не трудно. Плюс разработчики на GO сейчас одни из самых высокооплачиваемых.
  • Julia подходит для крупномасштабных технических вычислений. Раньше для этого нужно было использовать Python или Matlab плюс библиотеки C++. После выхода Julia потребность в жонглировании языками отпала.

На рынке есть масса других полезных языков, но именно эти три закрывают слабые места Python. Rust, Go и Julia подходят для инновационных технологий, особенно для искусственного интеллекта. Сейчас их доля на рынке еще невелика, судя по тегам Stack Overflow, но тенденция роста уже есть.

Динамика роста на Stack Overflow

Учитывая популярность Python в настоящее время, наверняка потребуется не меньше пяти, а то и десяти лет, чтобы любой из этих новых языков заменил его.

Какой из языков это будет — Rust, Go, Julia или новый язык будущего — пока трудно сказать Но учитывая проблемы с производительностью, которые являются основополагающими в архитектуре Python, каждый из новых языков найдет свое место.

Что еще почитать по теме:

0
107 комментариев
Написать комментарий...
Kirill Nenashev

Единственная верная предъява это скорость.
Но почему проблемой являются отступы вместо скобок или динамическая типизация? Отступы в любом случае придется делать, иначе код станет не читаемым. 
Компилятора нету? А как же Numba или PyPy? Да пускай не идеальные компиляторы, но питон на скорость не претендует. 
Runtime error это вообще смех, да грех, вы два раза написали о том, что питон интерпретируемый язык? 
    Go не заменит питон, так как он строго типизированый и далеко не такой простой как python про julia уже более правдеподобно, но ближайшие года julia будет только набирать обороты. Как Rust может заменить python, если это конкурент c/c++, а не python. 
    Статья бредовая. 

Ответить
Развернуть ветку
Злой Полушубок

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

Проблема отступов для управления блоками кода:

1. На больших проектах где много разработчиков и кодовая база старая, могут встречаться разные кодовые стили что создает проблему с поддержкой. Только не надо про, то что в проекте должен быть один стиль и все должны его придерживаться. Конечно должен, но реальность такова что в больших проектах с текучкой кадров, в старых проектах, это труднодостижимо.

2. Могут быть проблемы при банальном мерже: Например у вас есть функция один разработчик вставил в начало условие - все тело +1 отступ, другой в середину функции добавил оператор - у него отступы были старые. Автоматической слияние пройдет отлично, но код работать не будет.

Ответить
Развернуть ветку
10 комментариев
Дмитрий Богданов

ох уж эти жёлтые заголовки
питон очень сильно ушёл в data science и стал чем-то вроде пыхи в плане порога вхождения
никто его уже там не заменит в виду тонн кода и библиотек и будущее питона именно за ds
одновременно сильно сдал позиции в веб, из-за чего я сам перешёл с него на java

Ответить
Развернуть ветку
A.I. Developer

D может заменить. В общем он сейчас на это и претендует.

Ответить
Развернуть ветку
Fedir Katushonok

А в чём собственно говоря приемущество отсутствия строгой типизации и нормального форматирования кода в виде фигурных скобок?
Типы в питоне и так есть, просто в нормальных яхыках, вы читаете код, вы понимаете где и какой тип возвращаеться, а в питоне пойди угадай, что возвращает функция GetVasia(). Т.е. я абсолютно не понимаю, какую проблему решает тот факт, что не надо объявлять типы? Вы всё равное не сможете совершать операции над разными типами данных, ибо это приведёт в исключению выполнения, какой тогда в этом смысл? С каких пор int x = test.GetVal() стало блин хуже чем x = test.GetVal() ???
Фигурные скобки.... серьёзно.... я конечно понимаю, что типичный код пайтон-разработчика - подключить 1000 библиотек, и написать something = DoAmazingThings(), но вы попробуйте на пайтоне написать больше 30-50 строчек кода.... у вас глаза на лоб вылезут, пока вы поймёт где какой отступ был сделан, и какая часть кода к какому "блоку" относиться. В чём сложность использования нормальных фигурных скобок для визуального разграничения блоков кода?
Ну так вообще, у пайтоне есть своя ниша, это ХэллоВорлд приложения с использованием очень богатых библиотек, т.е. как язык что бы показать своей бабушке, какой у неё умный внучек, какие нейросети делает - самое то. Но когда я вижу +- серьёзные приложения на пайтоне..... бууээээ. Понятия не имею, зачем это делают.
ах да, в качестве первого языка брать пайтон - хреновая идея. Это как учиться ездить на машине сразу с автомата - ездить уметь будешь, но посади тебя за механику, повесишься.

Ответить
Развернуть ветку
Sebastian Pereira

Лично для меня динамическая типизация - это гибкость. Если мне надо по-быстрому наваять какой-то разовый скрипт или простенький прототип, чтобы проверить работоспособность идеи, то я не буду заморачиваться с тем, чтобы на каждый чих писать тип, это лишняя работа.

Уже три года пишу на питоне, и никогда не возникало проблемы с отступами. Если уж совсем всепечально, есть прекрасные IDE (например, PyCharm), который все делает за Вас. 
С++ код не требует соблюдать отступы, чтобы код работал, но все нормальные разработчики их делают, причем стараются соблюдать конвенцию (2 или 4 пробела, например) и почему-то никто не кричит о том, что: "Ааа, это кошмар, попробуй уследи за всеми этим отступами!"

Долгое время я писал на C++ и никакого дискомфорта не испытываю от того, что в Питоне скобок нет. На мой взгляд наоборот очень классно, что блоки выделяются пробелами, и этого достаточно. Философия Питона - это практичность. Зачем тогда добавлять ещё одну сущность в виде скобок для выделения блока?

Насчёт ниши Питона... Ну тут даже комментировать нет никакого желания, просто дам реплику: Java для тех криворуких, кто не смог освоить С++ и управление памятью вручную. (Сарказм, ага)

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

Ответить
Развернуть ветку
3 комментария
Alexandr Dugin
когда я вижу +- серьёзные приложения на пайтоне..... бууээээ. Понятия не имею, зачем это делают.

Такая недалёкость, что смешно. Вы точно знаете где и как этот язык применяется? 

Ответить
Развернуть ветку
Alexander Schepanovski

Яблоко - бесперспективный фрукт потому что круглый и растёт только в Африке. Его заменят редиской, баклажаном и стульями.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alex Gurenko

Здравствуйте! Заинтересовала статья. Я не являюсь python разработчиком, однако в последнее время возникла необходимость разобраться со скриптами на этом языке (open vino). Я бы добавил существенные замечания. В плюсы: скорость прототипирования и отладки алгоритмов. В минусы: - 1) неудобный ide и полное отсутствие инфраструктуры для серьезной разработки и отладки. Хотя это, возможно, вопрос привычки.  2) нестрогие языки, тем более интерпретируемые, всегда отнимают много времени на поиск ошибок. Даже в c# часть проблем я нахожу уже на этапе дебага. В си++ большинство ошибок находиться на этапе компиляции. 

В целом python показался очень полезным нишевым языком. Что то типа power shell, только ниша гораздо шире. К тому же специальные библиотеки типа numpy сильно расширяют возможности разработчика. 

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
1 комментарий
Алексей Евтеев

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

Ответить
Развернуть ветку
Геннадий Малинин

Питон - самый худший язык для обучения программированию. Чему там обучат? Алгоритмам? Так с этим любой язык справится. Ни типы данных, ни нормальное ооп, ни чего, кроме готовых библиотек.

Ответить
Развернуть ветку
14 комментариев
Andrey Baranov

Ни когда не понимал почему python сравнивают с C++? Это абсолютно разные языки и с разными сферами применения! 
Синтаксис это конечно самое важное в ЯП! Пливать на производительность и уровни разработки(извиняюсь может не верно выразился я про низкоуровневое программирование). Да в вебе он сейчас в топ 3 залез! Но плюсов в вебе почти нет! Так как и python в десктопе и дравах( про драйвера на с++ возможно загнул). А как начсет встраиваемых систем?

Обошел в топе? А ни че что топы эти строятся на вопросах и запросах о язык, то есть сколько новичков задали вопросов? Лично я учу асм потоп с/с++ но я еще не одного вопроса не задал на форумах! Тогда получается минус % от рейтинга асм?
Мне одному кажется что это бред?

Или может возьмен выкенем си и будем оси на питоне писать ? Опытные программисты пишут такой бред это жесть

Ни чего против переводчика не имею против критика чисто к авторам))))

Ответить
Развернуть ветку
A.I. Developer

Тем не менее тот же D нынче хочет потеснить Python в области Data Science, хотя они сами признают, что без поддержки крупными компаниями это будет трудно.

Ответить
Развернуть ветку
Диас И

Да все верно производительно. Я иза этого и не выбрал питон, потому что он медленный ! Потом будут его выкидывать и заменять другим !

Насчёт поддержки почему, потому что комментировать код сложно. Добавьте работу с системой контроля версии и вуаля, закоменьировал ты код или нет, к какому begin end относится? И сиди гадай.

После пхп и джаваскрипта лучше бы чтобы питон тоже умер. Динамическая типизация просто порой ужасна. Как она мне надоела ! 

Ответить
Развернуть ветку
Диас И

Питон хорош для одного для бизнес логики и анализа данных, для другого это мастадонт. Тут уж наверное и вылезают проблемы платформы. Питон это как sql. Хорош только для одного для анализа данных. А машин лернинг могут и другие языки предоставить! Короче питоон в топку ! 

Ответить
Развернуть ветку
1 комментарий
Oleg Garvin

Если вам надо комментировать ваш код, у меня для вас плохие новости..

Ответить
Развернуть ветку
1 комментарий
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Имя Фамилия

Вот же бредятина. Только про скорость верно, да и это решим. Точки с запятой и фигурные скобки... Очередной майловский идиот, хочешь используй и в пайтоне все это. Что плюсы, что шарпы ничего в них супер сложного нет. Первый язык был Шарп. Не увидел разницы с пайтоном. Вот такие спецы и работают в майле, которых все терпеть не могут. 
Вывод тс делал по второй версии. И там нае''лся

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Геннадий Малинин

П - перевод...

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Дмитрий Зайцев

Странное мнение, что питон такой медленный только из-за динамической типизации. Возьмем, например, JavaScript (язык с динамической типизацией) и движок V8, он в 2-10 раз быстрее питона. Да даже тот же движок PHP на порядок быстрее питона.

Ответить
Развернуть ветку
Денис Сафонов

Откуда информация, что JS быстрее Py? Ссылочку, мне интересно, реально

Ответить
Развернуть ветку
1 комментарий

Комментарий удален модератором

Развернуть ветку
Alexander Stark

Нафиг питона . Я его синтаксис в гробу видал 

Ответить
Развернуть ветку
Сергей Кузнецов

a,b=b,a

А слабо написать код короче, чем этот код на Пайтоне?! 

Ответить
Развернуть ветку
Геннадий Малинин

Я могу написать программу - видеоплеер, код которой будет в 400 строк на Delphi. Программа работает на любой Винде и имеет возможность сборки под Линукс, мак и андроид. Слабо такое написать на питоне короче?
https://youtu.be/5yGNsoNEZ74

Ответить
Развернуть ветку
6 комментариев
Постирония м

std::swap(a, b);

Ответить
Развернуть ветку
Андрей Булыгин

Код на руби в среднем короче

Ответить
Развернуть ветку
Геннадий Малинин

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

Ответить
Развернуть ветку
Андрей Егоров

Жаль, так хотел на питоне программировать будущее.

Ответить
Развернуть ветку
Alexey

Статейка то желтушная. Единственное верное серьёзное замечание - проблема со скоростью работы. И та лечится cython'ом. 

Ответить
Развернуть ветку
Егор Мосеечев

Статья бредовая, написана просто чтобы написать. Единственная нормальная предъява - ошибки выявляются только после компиляции. Какой нафиг Go заменит питон? При чём тут то, что нельзя для телефонов что-то писать? А при чём здесь минус в пробелах и в том, что не надо точки с запятой(далее - точки) ставить? Вообще никогда не понимал, почему в языках программирования надо ставить точки, если тот же С# сам тебе пишет, мол, надо поставить точку с запятой, дружок.

Ответить
Развернуть ветку
Shtuintys TV

как они правду не любят))) Питон рулит))
а визуальный питон всех  в позу ставит

Ответить
Развернуть ветку
Валерий Ляховец

Python в 1991 и старый, Haskell 1990 и новый. Великолепно

Ответить
Развернуть ветку
Granvi Account

Как можно вообще сравнивать интерпретатор и компилятор?
Полнвя профанация. 
Что пайтон, что javascript, что php, что perl и т.д. Это все птичьи языки. Они всегда будут медленными в силу того, что они работают через виртуальную машину. 

Форсатирование пробелами и отступами, это вообще за гранью добра и зла. Это как ехать по многополосному автобвану с кучей развязок без разметки и знаков. Все определяется на глаз. 

Для обучения нужны именно жестко типизированные языки. Типа паскаля (он для этого и был придуман). 
Чтобы бить по рукам. Иначе получиися что и с остальными. Низкий порог входа, куча ошибок и говнокода. 

Ответить
Развернуть ветку
HemulGM

Питон пихуют в всюду, вот и сравнивают

Ответить
Развернуть ветку
Shtuintys TV

и потому    програмистов нет и не будет ,люди не разумны и ленивы, одного програмиста на всех не хватить и никто ему платить так много не станет ,потому будет    еще проще   что бы было дешевле

Ответить
Развернуть ветку
сеня петров

Не являюсь IТ-специалистом, да и вообще мало смыслю в этой теме. Но считаю, что ответ один - потому что время идёт. Когда-то Паскаль и Бертран считались самыми используемым языками. А теперь где они? Разве что в средних школах на допотопных компах. То же самое будет и с Питоном, Джавой, С и прочими. А на смену им придут новые языки. 

Ответить
Развернуть ветку
Геннадий Малинин

Паскаль до сих пор преподают как начальный язык, а Delphi (это паскаль на максималках) сейчас позволяет делать такие вещи, которые не то что питону, но и с# сложнодостижимы.

Ответить
Развернуть ветку
12 комментариев
Gabb Hack

Понимаю, что это перевод, но уверен, что тут есть люди, разбирающиеся в теме.

Объясните, почему "Python может выполнять только одну задачу за раз" и почему в этом виновата динамическая типизация? Получается статическая типизация в языке, на котором написан веб-браузер, сама по себе дает запускать десятки потоков?

"Rust — в нем так же, как и в Python, переменная не может быть случайно перезаписана"
a = 1
a = "1"
Что я делаю не так?

"Но за счет концепции владения и заимствования в Rust решена проблема с производительностью". Почему это противопоставлено предыдущему предложению? Видимо то, что переменная не может быть случайно перезаписана, понижает производительность, но замечательная концепция это компенсировала. Действительно ли концепция владения и заимствования сыграла ключевую роль в производительности? Давайте введем эту концепцию в интерпретируемый язык.

Почему корень всех зол - это динамическая типизация (- производительность, - память, - десятки потоков), но автор советует Julia (https://docs.julialang.org/en/v1/manual/types/)?

Ответить
Развернуть ветку
Геннадий Малинин

Динамическая типизация действительно корень всех зол. Выделение памяти само по себе дорогостоящая операция, которая при динамической типизации достигает максимальной цены и в добавок даёт чрезмерное потребление ресурсов.

Ответить
Развернуть ветку
1 комментарий
Ilunga Masan

1. стоит ли париться об абстрактном будущем тем, кто до него не доживёт? :)
2. не существует точных прогнозов. Чисто случайно всегда УГАДЫВАЕТ кто-то из всего спектра прогнозирующих

Ответить
Развернуть ветку
Сергей Яковлев

Доброго времени суток! Это моё мнение и не больше. Я считаю, что тот кто платит зарплату программерам. Заинтересован в конечном продукте, именно с денег полученных с реализации этого продукта, люди, получат зарплаты. А программер заинтересован в том, что бы, как можно дольше получать деньги с проекта. Но есть ещё и третья объективная причина и она является доминирующей - это успешная коммерческая реализация проекта, и тут много завит от того, что как менеджеры и програмеры, сплоченно работают в команде. Первые выберут скриптовый язык, вторые ассемблер, а третьи скриптовый язык, но там будет системное оформление программ, то есть однотипное, и никаких минусов из вышеперечисленных, в программировании не будет. А более низкое программирование, очень хорошо влияет на поддержание, умственных навыков, отдельного программиста, ведь именно из лучших команд, создаются удачные коммерческие решения. 

Ответить
Развернуть ветку
Илья Блинов

Кстати говоря про динамическое ограничение видимости... серьезно?  Вот пример прямо со страницы, куда ссылается автор https://www.geeksforgeeks.org/static-and-dynamic-scoping/ . При интерпретации его на Python (если вызывать не в main, то ничего не поменяется. это просто для наглядности) выводит... 10! То есть статическое ограничение видимости. 
—--—--—--—--—--—--—
x = 10

def f():
return x

def g():
x = 20; return f()

def main():
x = 30; print(g())

main()
—--—--—--—--—--—--—

Еще очень странным считаю "недостаток" lambda-функций. Как я видел, все остальные "недостатки" уже обговорили. lambda-функция это упрощенная функция, small anonymous function. Другими словами она позволяет записать какую-то короткую функцию в одну строку и, возможно, не придумывать ей имя. Это примерно как списочное выражение! И это преимущество. 
Это прямо как сказать — у них есть маленькие яблони для дома, как круто. Но это их "недостаток' ведь такие яблони дают меньший урожай. 

Ответить
Развернуть ветку
Николай Артемьев

какие главные преимущества языка Python?

Ответить
Развернуть ветку
mor

Смею предположить что  архитектура, продуманность, библиотеки и два очень популярных веб фреймворка.

Ответить
Развернуть ветку
mor

Товарищи, раз пошёл такой разговор.
Заранее прошу не злиться, а просто постараться дать конкретный ответ.

По вашему личному мнению, будущее веб разработки за какой технологией?
Что будет не только более востребовано но и действительно более подходяще для этой сферы?
Python с его Django и Flask или же JS с его Node.js и фронтенд фреймворками? 

Ответить
Развернуть ветку
CB Master

Бгг — больше никак нельзя прокомментировать эту статью :^) 

Ответить
Развернуть ветку
Sergey Koval

python версии 3x гораздо быстрее работает чем раньше, недостатков у java гораздо больше чем люди пишут (знаю как разработчик java), с годами хорошего мала придумывают, загромоздили и так многословный язык! 
Язык C  в частности C# активно вытесняют java.
Python довольно развитый язык и продолжает активно развиваться, так сказать народный язык программирования.
Яву пропиарили хорошо и не более того, а так зависит все от прямоты рук программиста!
Автор таким не является, а просто пишет статьи (бред)! 

Ответить
Развернуть ветку
Igor Che

| "Тесты — это замечательно, особенно для новичков. Но для опытных разработчиков такая необходимость воспринимается как минус и приводит к нехватке производительности."
Ну и бред, другого слова нет. Автор просто некомпетентен, мягко говоря.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Картохины Дети

а эт стстью вообще программист писал? к примеру, Python с библиотекой NumPy, делает просчеты, иногда в 3 раза быстрее чем такой-же код на С++. можно конечно упороться и код на С++ ускорить. но нафига?! для решение этой задачи есть Python! это просто инструмент, который удобен для решения определенных задач. тут вообще, программисты то еть? чет я сомневаюсь очень сильно что они тут есть... но статью, точно не программист писал. скорее всего писал чел с СНГ, на пендосовский рынок. раньше очень любили такое, да и сейчас любят.))))

Ответить
Развернуть ветку
Джек Воробей

Статья жёлтая. "Go заменит Python" - серьезно? Да кроме Гугла такие специалисты никому нахрен не нужны, с тем же 1С легче найти себе работу. Единственный минус - это разработка на Андроид, но скоро Диктатор придумает как её решить. Никуда Пайтон не денется когда хайп на него спадёт, как никуда не денеться JS и C++. Хотя автор топит за Go, Куда этим трём языкам до величия личного языка Гугла))

Ответить
Развернуть ветку
Сергей Подгорный

Расскажу почему питон жил, жив и будет жить.
1. Он достаточно прост и так же достаточно сложен:
- я могу написать print(1+1) и моя программа заработает. Просто - да.
- я могу писать мета классы, использовать множественное наследование, декораторы, функциональное программирование, перегрузку операторов и магических методов: легко - нет. В джаве джаваскрипте такое есть - нет. 

2. У питона прекрасный синтаксис, он очень удобен математикам, за счет того, что в нём можно перегружать операторы, прямо как в С++, но за счет динамической типизации нет необходимости в создании бредовых ооп конструкций. За счет биндинга библиотек на С, скрость вычислений, там где она действительно нужна, ничем не отличается о аналогов на С.

3. Скорость - привет асинхронный питон, где скорость хелло ворд сервисов такая же как и на ноде. Про скорость вычислений я уже говорил - если нужна действительно большая скорость обработки - пищи разширение на С, это делается очень легко.
4. Динамическая типизация - в питоне сделали аннотацию типов, которая сдорово выручает.

5. Уже были набиты шишки, когда дата сайнтистов заставляли писать на С++ - кроме кринжа ничего больше это не вызывало. Математики должны в первую очередь заниматься матиматикой, а не пытаться построить ООП модель своих формул, которая заведомо не подходит.

6. Учить программирования на питоне - не стоит. Всё таки программирование это не только про алгоритмы и логику, но ещё и инженерная дисциплина, где нужно понимать как твоя программа итерпретируется компьютером.

Ответить
Развернуть ветку
Shtuintys TV

3 язык в мире    не станет - это смешно)

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Dmitriy Gagarin

Где-то я это уже читал... На Хабре по-моему.

Ответить
Развернуть ветку
Читать все 107 комментариев
null