LINUX.ORG.RU
ФорумTalks

Наброс про Питон

 ,


0

3

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

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

Между тем указанные факты никаких подобных следствий не имеют, для выбора Питона для написания программ нет оснований (за исключением узкой ниши машинного обучения), а изучение Питона может скорее навредить (в особенности в качестве первого языка программирования). Разберём популярные заблуждения в деталях.

Все нижеизложенные цифры — свежие (даны по состоянию на 2023) и вряд ли заметно изменятся в пользу Питона в будущем, т. к. язык существует более 32 лет, он старше своих нынешних конкурентов (кроме Bash, Tcl и C/C++) и свой потенциал взрывного роста давно исчерпал.

http://shmat-razum.blogspot.com/2024/01/python.html


Ответ на: комментарий от u5er

в новых версиях пайтона ломается совместимость со старыми

Подробности давайте. Что сломали в 3.12 по сравнению, ну например, с 3.7? Т.е. за пять лет, что нужно переписать, и почему нельзя продолжать использовать 3.7?

vvn_black ★★★★★
()
Ответ на: комментарий от vvn_black

Я не знаю, что сломали конкретно в этих версиях, но когда я сидел на дженту, то у меня был момент, когда пайтонов в системе было установленно одновременно несколько: 2.7, 3.6, 3.7, 3.8, 3.9. Я полагаю, что этому есть более веская причина, чем «мейнтейнеры неосиляторы».

u5er ★★
()
Ответ на: комментарий от u5er

В текущей Убунту ЛТС установлен только питон 3.10. У последней Федоре питон 2.7 и 3.12. Т.е., грубо говоря, в популярных дистрибутивах в лучшем случае будет только последняя версия и 2.7 (между которыми ломали совместимость).

То что у вас там когда-то там было не имеет никакого значения. Особенно если из аргументов только «НУ НЕ МОЖЕТ ЖЕ ЭТО БЫТЬ ПРОСТО ТАК!».

MoldAndLimeHoney
()
Последнее исправление: MoldAndLimeHoney (всего исправлений: 1)
Ответ на: комментарий от u5er

Не заню, как там в дженте, но вооюще, выглядит вполне разумным не удалять старые версии интерпретаторов при обновлении системы. Будь это питон, джава, С# или что-то еще.

FishHook
()
Ответ на: комментарий от MoldAndLimeHoney

Особенно если из аргументов только «НУ НЕ МОЖЕТ ЖЕ ЭТО БЫТЬ ПРОСТО ТАК!».

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

u5er ★★
()
Ответ на: комментарий от u5er

Пайтон - это единственный яп, где приходилось держать 100500 версий интерпретаторов.

а вы ни разу не заглядывали, сколько версий .NET сордержится в винде?

версией баша, тикля, gcc, клэнга, пыха, перла и т.д

Это классный конечно подход - собрать в одну кучу gcc, клэнг и пхп

баша, перла а когда там последний раз новые мажорные версии выходили?

пыха

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

FishHook
()
Последнее исправление: FishHook (всего исправлений: 1)
Ответ на: комментарий от FishHook

а вы ни разу не заглядывали, сколько версий .NET сордержится в винде?

Заглядывал когда был виндузятником. Это было давно и неправда.

Это классный конечно подход - собрать в одну кучу gcc, клэнг и пхп

Вот! Хоть кто-то оценил!

а зачем в принципе несколько версий пыха может понадобиться?

Хз. Вот несколько версий пайтона зачем-то требуется же.

что значит «приходилось», заставлял кто-то?

Да, формулировка не очень получилась. Я имел в виду, что когда я сидел на дженту, то они все тянулись по зависимостям, кроме пайтона 2.7 - его я сам ставил.

u5er ★★
()
Ответ на: комментарий от greenman

Ага. Тот же пайтон, только ынтырпрайзный xD

u5er ★★
()
Ответ на: комментарий от u5er

Хз. Вот несколько версий пайтона зачем-то требуется же.

я же написал зачем, непонятно? Ну окей, повторю два раза. На питоне пишут прикладной софт - утилиты, гуевые программы, есть целый WM на питоне. Система не может предсказать, что нет ни одной софтины, которая зависит от конкретной версии питона, и поэтому при обновлениях не удаляет старые версии питона. Например, Убунта в своих зависимостях из коробки имеет питон 3.11, потом выходит новая Убунта, и у нее в репе ужу 3.12, что по вашему она должна сделать с уже установленным 3.11? Но Убунта не устанавливает пыхыпы, потому что он ей не нужен. Нет прикладного софта на пхп, руби или джаве, который нужен был бы Убунте для её нужд.

Вот что тут непонятного?

FishHook
()
Ответ на: комментарий от u5er

когда пайтонов в системе было установленно одновременно несколько: 2.7, 3.6, 3.7, 3.8, 3.9. Я полагаю, что этому есть более веская причина, чем «мейнтейнеры неосиляторы».

мейнтейнеры неосиляторы

Конечно нет. Неосилятор - ты, который не смог в emerge --depclean

Stil ★★★★★
()
Ответ на: комментарий от Stil

Очень смешно. Я эту команду прописывал всякий раз после обновления мира ;) Что ещё скажешь?

И да, на счёт мейнтейнеров. Я такого не говорил, не стоит выдирать из контекста.

u5er ★★
()
Ответ на: комментарий от vvn_black

Подробности давайте. Что сломали в 3.12 по сравнению, ну например, с 3.7?

Кроме 3.12 и 3.7 есть еще и другие версии питона.

А что ломают ? Да запросто:

1) Удалили метод __int__ и аналогичные. Для чего нужно, и чем чревато думаю объяснять не надо ?

2) Перешли на новый синтаксический анализатор и поломали предыдущий parser. Это вообще эпический звздц.

3) Поломали синтаксис который ранее позволял вставлять ключевое слово сразу же за числовым литералом.

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

А интересно, python 3.2 == python 3.20? :)

windows10 ★★★★★
()
Ответ на: комментарий от Stil

Конечно нет. Неосилятор - ты, который не смог в emerge --depclean

Не учи человека плохому. После этого у него пойдет по звезде четверть системы, где в cкриптоте прописан python, а не python3.6, но правильная версия (3.6) подразумевалась by default.

windows10 ★★★★★
()
Последнее исправление: windows10 (всего исправлений: 2)
Ответ на: комментарий от Stil

Довольно потешно, что одним из основных поинтов Генты фанаты заявляют «ничего лишнего». В то время как у них в системе пачка Питонов, а в бинарных дистрах 1-2 :)

MoldAndLimeHoney
()
Последнее исправление: MoldAndLimeHoney (всего исправлений: 1)
Ответ на: комментарий от u5er

Если честно, это выглядит очень странно. В генте обычно 2 (после 2.7 EoL) - 3 (до 2.7 EoL) ветки питона живы: 2.7 (до), предыдущая мажорная, текущая мажорная в процессе портирования всех пакетов. У меня прямо сейчас 2: 3.12 для всего и 3.11 для одной «забандленной» поделки.

И да, на счёт мейнтейнеров. Я такого не говорил, не стоит выдирать из контекста.

Я специально полную цитату привёл, чтобы ничего никуда не вырывать.

Stil ★★★★★
()
Ответ на: комментарий от Stil

Там в какой-то момент с этим разобрались. Я пишу про времена eselect python.

u5er ★★
()
Ответ на: комментарий от Stil

Что за прохладные истории?

Не знаю, мне лень шерстить тред ради неумеющих в цитирование.

windows10 ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)