Фото Тамара Гор на Unsplash

С тех пор, как Python был выпущен в начале 1990-х годов, он вызвал много шума. Конечно, сообществу программистов потребовалось как минимум 2 десятилетия, чтобы оценить его существование, но с тех пор он намного превзошел по популярности C, C#, Java и даже Javascript.

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

Одной из главных движущих сил стремительного роста Python была простота его изучения и мощь в использовании, что делало его чрезвычайно привлекательным для начинающих и даже для тех, кто избегал программирования из-за сложного, незнакомого синтаксиса таких языков, как C. /С++.

У Python есть недостатки

Язык, по своей сути, уделял большое внимание читабельности кода. Благодаря лаконичному и выразительному синтаксису он позволял разработчикам выражать идеи и концепции без написания большого количества строк кода (как в случае языков более низкого уровня, таких как C или Java). Благодаря своей простоте Python легко интегрируется с другими языками программирования (например, переносит ресурсоемкие задачи на C/C++), что делает его дополнительным преимуществом для разработчиков-полиглотов.

Еще одной причиной универсальности Python является его интенсивное использование предприятиями (включая FAANG), а также бесчисленное множество небольших предприятий. Сегодня вы найдете пакет Python практически для всего, что только можно придумать — для научных вычислений у вас есть «Numpy», «Sklearn» для машинного обучения и «Caer» (мой пакет Computer Vision) для Computer Vision.

Фото Ника Абрамса на Unsplash

Это медленно, ужасно медленно

У него есть GIL(l)

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

Среди основных причин, почему Python «медленный», на самом деле они сводятся к двум: Python интерпретируется, а не компилируется, что в конечном итоге приводит к более медленному времени выполнения; и тот факт, что он динамически типизирован (типы данных переменных автоматически определяются Python во время выполнения).

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

Возьмем, к примеру, TensorFlow, библиотеку машинного обучения, доступную на Python. На самом деле эти библиотеки были написаны на C++ и доступны на Python, образуя своего рода «оболочку» Python вокруг реализации на C++. То же самое касается Numpy и, в некоторой степени, даже Caer.

Одной из основных причин медлительности Python является наличие GIL (Global Interpreter Lock), который позволяет одновременно выполнять только один поток. Хотя это повышает производительность однопоточной обработки, это накладывает ограничения на параллелизм, когда разработчикам приходится реализовывать многопроцессорные программы, а не многопоточные, для повышения скорости.

Не лучший вариант для задач с интенсивным использованием памяти.

Когда объекты выходят за пределы области видимости, в Python предусмотрена автоматическая сборка мусора. Он направлен на устранение многих сложностей, связанных с управлением памятью, которые возникают в C и C++. Из-за гибкости (или ее отсутствия) указания типов данных объем потребляемой Python памяти может быстро вырасти.

Слабое присутствие в мобильных вычислениях

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

Фото «Юра Фреш» на «Unsplash»

Возникновение других языков

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

За последние годы в этой области было много достижений, но эти недавно добавленные библиотеки даже близко не стоят со своими сильными конкурентами, такими как Kotlin, Swift и Java.

В последнее время на радарах появились новые языки, такие как Julia, Rust и Swift, заимствующие множество хороших концепций дизайна из Python, C/C++ и Java — «Rust»в значительной степени гарантирует безопасность памяти и параллелизм во время выполнения и предлагает первоклассную совместимость с WebAssembly; «Swift» почти так же быстр, как C, благодаря поддержке LLVM Compiler Toolchain, а «Julia»предлагает асинхронный ввод-вывод для задач с интенсивным вводом-выводом и молниеносно быстро.

Вывод

Python никогда не создавался как лучший язык программирования. Он никогда не создавался для работы с C/C++ и Java. Он создавался как язык программирования общего назначения с упором на удобочитаемый синтаксис, ориентированный на английский язык, что позволяло быстро разрабатывать программы и приложения.

«https://santaritasaude.azurewebsites.net/kcx/Livrpool-v-Leicester-Li-en-gb-fc02.html»
«https://santaritasaude.azurewebsites.net/kcx/Livrpool-v- Leicester-Li-en-gb-rc2.html»
«https://santaritasaude.azurewebsites.net/kcx/Livrpool-v-Leicester-Li-rc01.html»
«https:// santaritasaude.azurewebsites.net/kcx/Lp-v-Ep2.html»
«https://santaritasaude.azurewebsites.net/kcx/Parvina-Lpool-v-LCity-Li-Tc04.html»
«https://www.plindia.com/hub/Li-v-Ep04.html»
«https://www.plindia.com/hub/Li-v-Ep2.html»
«https://www.plindia.com/hub/nv-f01.html»
«https://www.plindia.com/hub/nfl-v-eag-rc02.html»
«https://www.plindia.com/hub/Nfl-v-Pat-rc4.html»
«https://www.plindia.com/hub/pv-g03.html»
«https://www.plindia.com/hub/pv-g2.html»
«https://www.plindia.com/hub/video-Texans-Game-v-en-gb-fc4 .html»
«https://www.plindia.com/tube/Lv-Li2.html»
«https://www.plindia.com/tube/Livrpool-v-Leicester-Li -en-gb-rc01.html»
«https://www.plin dia.com/tube/Livrpool-v-Leicester-Li-en-gb-rc4.html»
«https://santaritasaude.azurewebsites.net/jck/Afx-Lei-v-Live-t1.html »
«https://santaritasaude.azurewebsites.net/jck/Afx-Lei-v-Live.html»
«https://santaritasaude.azurewebsites.net/jck/LvL-video-en .html»
«https://santaritasaude.azurewebsites.net/jck/LvL-video-on-liv.html»
«https://santaritasaude.azurewebsites.net/jck/LvL-video -on.html»
«https://santaritasaude.azurewebsites.net/jck/LvL-video.html»
«https://santaritasaude.azurewebsites.net/jck/Lei-v-Liv -10.html»
«https://santaritasaude.azurewebsites.net/jck/Lei-v-Liv-b9.html»
«https://santaritasaude.azurewebsites.net/jck/Lei -v-Liv-c8.html»
«https://santaritasaude.azurewebsites.net/jck/Lei-v-Liv-x7.html»
«https://santaritasaude.azurewebsites.net /jck/Lei-v-Liv-z6.html»
«https://santaritasaude.azurewebsites.net/jck/Leicester-v-Liverpool-liv-on-tv.html»
«https ://santaritasaude.azurewebsites.net/jck/Leiceste rv-Liverpool-liv-on.html»
«https://santaritasaude.azurewebsites.net/jck/Leicester-v-Liverpool-liv.html»
«https://santaritasaude.azurewebsites. net/jck/Liv-v-Lei-e5.html»
«https://santaritasaude.azurewebsites.net/jck/Liv-v-Lei-g1.html»
«https:// santaritasaude.azurewebsites.net/jck/Liv-v-Lei-j4.html»
«https://santaritasaude.azurewebsites.net/jck/Liv-v-Lei-r2.html»
« https://santaritasaude.azurewebsites.net/jck/Liv-v-Lei-t3.html»
«https://santaritasaude.azurewebsites.net/jck/Liverpool-v-Leicester-df.html»< br /> «https://santaritasaude.azurewebsites.net/jck/Liverpool-v-Leicester-rty.html»
«https://santaritasaude.azurewebsites.net/jck/Liverpool-v-Leicester-xxx .html»
«https://santaritasaude.azurewebsites.net/az1/Lv-L04.html»
«https://santaritasaude.azurewebsites.net/az1/Lv-L03.html»< br /> «https://santaritasaude.azurewebsites.net/az1/Lv-L02.html.html»
«https://santaritasaude.azurewebsites.net/az1/Lv-L01.html»
> «https:/ /santaritasaude.azurewebsites.net/az1/Leicester-v-Liverpool-tv6.html»
«https://santaritasaude.azurewebsites.net/az1/Leicester-v-Liverpool-tv5.html»
«https://santaritasaude.azurewebsites.net/az1/Nv-M06.html»
«https://santaritasaude.azurewebsites.net/az1/Nv-M05.html»
«https:/ /santaritasaude.azurewebsites.net/az1/Nv-M04.html»
«https://santaritasaude.azurewebsites.net/az1/mil-v-nap-it8.html»
«https:/ /santaritasaude.azurewebsites.net/az1/mil-v-nap-it7.html»
«https://santaritasaude.azurewebsites.net/cnn/Nap-v-Mil01.html»
«https ://santaritasaude.azurewebsites.net/cnn/Nap-v-Mil02.html»
«https://santaritasaude.azurewebsites.net/cnn/Nap-v-Mil03.html»
«https ://santaritasaude.azurewebsites.net/cnn/Nap-v-Mil04.html»
«https://santaritasaude.azurewebsites.net/cnn/Nap-v-Mil05.html»
«https ://santaritasaude.azurewebsites.net/cnn/Nap-v-Mil06.html»
«https://santaritasaude.azurewebsites.net/cnn/Nap-v-Mil07.html»
«https :/ /santaritasaude.azurewebsites.net/cnn/pool-v-leis01.html»
«https://santaritasaude.azurewebsites.net/cnn/pool-v-leis02.html»
«https:/ /santaritasaude.azurewebsites.net/cnn/pool-v-leis03.html»
«https://santaritasaude.azurewebsites.net/cnn/pool-v-leis04.html»

Python, как и любой другой язык, в конце концов — это инструмент. Иногда это лучший инструмент. Иногда это не так. Чаще всего «все в порядке».

Итак, Python как язык программирования умирает?

Я вряд ли так думаю.

Он теряет свое очарование?

Ах, может быть, немного. Самую малость.

#Если вы программист Python, то это должно вас обеспокоить;!