LINUX.ORG.RU

Python 3.14

 

Python 3.14

1

4

Вышел Python 3.14.

Из новшеств:

  • официальная поддержка свободной многопоточности (free-threading, PEP 779);
  • новый модуль compression.zstd для сжатия согласно Zstandard (PEP 784);
  • выражения except и except* теперь могут записываться без скобок (PEP 758);
  • многое другое.

Обзор на YouTube о производительности свежих версий Python.

Обзор изменений в диагностике ошибок на Хабре.

>>> Подробности на pythoninsider.blogspot.com

★☆

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

А ты покажи, как пишут.

Так я показывал - надо разносить на строчки. Но ты упорно продолжаешь повторять свою чушь. Можешь еще мой код почитать, например.

Это примеры из учебника, если что.

Учебник учебнику того-этого.

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

Есть у меня устойчивое ощущение, что оно подохнет само в достаточно обозримой перспективе. :-/

Впрочем, все ж знают, что в реале существует ещё один достаточно распространённый сценарий: «кое-как тошнит полу-дохлым образом».

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

Статическая типизация, костыльная, но есть (typing).

Есть pydantic и typeguard. Которые правда быстро заставляют бежать за новым процом

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

Так я показывал - надо разносить на строчки.

От этого синтаксический маразм этой конструкции меньше не становится.

Можешь еще мой код почитать, например.

Я читаю код, который пишут коллеги. И что там? Всё в одну строку. Длинную.

А знаешь, почему?

Потому что:

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

Есть ли альтернатива строчно-ориентированному синтаксису языка? Отвечает Lua:

a
=
1
if
a
<
2
then
print
(
"a"
)
else
print
(
"b"
)
end
wandrien ★★★
()
Ответ на: комментарий от wandrien

Некросивое. Не покупаем.

Тут забавно другое – снова и снова повторяющийся удивительный паттерн:

  1. Пишется динамически-типизированная фигня для мелких скриптов.
  2. Толпа начинает юзать её для больших проектов.
  3. Выясняется, что фигня динамически-типизированная. Ну кто бы мог подумать?!
dimgel ★★★★★
()
Ответ на: комментарий от dimgel

Сто процентов, каждый раз одно и тоже.

Тоже эту же мысль думал.

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

Питон разгоняют зачем-то на уровне университетов США, а руби это просто аномалия.

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

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

Плюс применений масса, от скриптинга на локалхосте и сайтиков до бизнес-логики и незатейливых десктопных приложений. Без работы выпускник не останется.

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

От этого синтаксический маразм этой конструкции меньше не становится.

Синтаксический маразм - это твоя субъективная метрика.

Я читаю код, который пишут коллеги. И что там? Всё в одну строку. Длинную.

Ну чо я могу сказать, твои колеги - ламеры.

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

И опенсорные коды на гитхабе тоже пишут ламеры.

Сплошное ламерьё кругом.

Короче: язык с высоким порогом входа, не для лошков. Есть чем гордиться.

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

Синтаксический маразм - это твоя субъективная метрика.

Разумеется, что тебе нечем возразить по существу насчёт того, что синтаксис конструкции - шиворот на выворот.

Не получится написать, «нет, это логично, потому что…».

Никого «потому что» тут нет. Просто нужно писать всё наизнанку, не задаваясь вопросами.

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

а я использовал без конкретики

    try:
        response = requests.get(url_more, headers=headers)
        print(response.status_code)
        print(response.content)
        print(response.json())
    except json.JSONDecodeError as e:
        print(f"JSONDecodeError: {e}\nResponse text: {response.text}")  #
        continue

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

И опенсорные коды на гитхабе тоже пишут ламеры.

Какие-то да, какие-то нет. Как и везде, впрочем.

язык с высоким порогом входа

Нет. Порог входа низкий, а дальше всё зависит от тебя.

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

Просто пересказываю вероятные мысли авторов кавайной картинки.

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

тебе нечем возразить по существу насчёт того

Не ври, мы с тобой уже выяснили, что тебе просто не нравятся мои ответы, потому что не вписываются в твой манямирок.

Не получится написать, «нет, это логично, потому что…».

Это логично в рамках концепции, которая выбрана: сначала операция, потом множество.

liksys ★★★★
()

Парни, не ссорьтесь. Питухоний нас всех переживёт! Надо как-то жить дальше с этим.

Desmond_Hume ★★★★★
()

Новая эпоха производительности

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

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

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от wandrien

Неудобный для работы с кодом синтаксис языка.

А почему бы не рассматривать все эти около LAMP-овые ЯП как таргеты (рантаймы) для нормального транспайлерного ЯП типа Haxe? Он ведь может делать и пятонячий выхлоп и PHP-шный, жаль Perl туда пока не добавили. Но например, плюсики и JVM там есть в качестве таргетов.

IMHO в Haxe не хватает таких таргетов:

  • Perl
  • Golang
  • Rust
  • Free Pascal
  • Crystal
  • .NET и C# (в новом Haxe v5.x)
sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 5)
Ответ на: комментарий от Chiffchaff

Ну вот тут ты вообще не прав. Жаву на лоре исторически хейтят во все поля. Здесь принято обожать перл, потому что Ъ, и пополам облизывать/хейтить сишечку и раст.

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

Он ведь может делать и пятонячий выхлоп и PHP-шный

пустите_я_ему_втащу.jpeg

НА. ХРЕ. НА. НАХРЕНА ВООБЩЕ выгонять на тормозные платформы?

Но например, плюсики и JVM там есть в качестве таргетов.

Вот на этом можно было бы и остановиться. А, дотнетчики ж ещё есть. Наверное.

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

НА. ХРЕ. НА. НАХРЕНА ВООБЩЕ выгонять на тормозные платформы?

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

Мы же не виноваты, кто корпы спонсируют огромное количество разработчиков кодить на петоне?

Но при этом сами не хотим страдать от его синтаксиса (я не только про отступы).

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

Подавляющее большинство жрут, чо дали

Ну зря вы так про питончик. Как минимум для своего времени Питон был крайне читабелен на фоне конкурентов (вспоминаем PHP) и был удобен как ЯП для прототипирования, дескать сейчас проверю идею на питоне, а потом реализовать «по-человечески» на условном C++

По сей день питон сохранил читабельность, только теперь к этому добавлся факт того, что нет такой области, для которой не написаны библиотеки для Питона. Да и к тому же благодаря NumPy он завоевал популярность в рядах аналитиков данных/ученых, потому что при приемлимой скорости он позволяет производить операции как Matlab, графики чертит, синтаксически проще. Возможно, скоро его в этом плане потеснит Julia, но, насколько мне известно, у нее еще все оч плохо в плане рисования графиков

Undeadguy
()
Ответ на: комментарий от dimgel

Подумаешь. Тут у меня техлид-архитектор на жаве ровно такое же делает.

Исключения есть всегда и везде. Тут вот один комментатор, например, берёт и намеренно пишет говнокод на Python, и потом сам же говорит: «Вот видите, можно написать говнокод. Значит, язык плохой». И в упор не понимает, что не так в этой логике. Если ему говоришь, что такой код не пройдёт ревью, он говорит, что ему «навязывают корпоративные линтеры». И что. Я просто поставил в голове зарубку, что с человеком бесполезно спорить, и всё.

Сам в Польше живёт.

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

Как у более простых людей, например, ничего не щёлкает, когда они у своего работодателя воруют материалы, товар или оборудование, или саботируют работу: «За такую зарплату я не обязан что-то делать». Да, не обязан, но это не означает, что работу надо саботировать. Если недоволен, надо обсуждать это с руководством словами, или уходить. А не саботировать. Но для многих это слишком сложная логика.

И меня как своего подчинённого заставляет.

Что мешает уйти? Вакансий сейчас мало, но всё же выше нуля. Для мидлов-сеньоров пока ещё вакансий хватает.

Chiffchaff
()
Ответ на: комментарий от leave

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

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

Chiffchaff
()
Ответ на: комментарий от Undeadguy

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

Да Питон вытяснил Матлаб потому что на Питоне проще писать проги среднего размера и потому что вокруг Питона опенсорс сообщество, которое быстро эти библиотеки написало (в отличие от проприетарного сообщества Матлаба). Но во всём остальном Питон не замена Матлабу. Матлаб - это IDE, с редактором, отладчиком построением графиков в одной коробке. Питон - ЯП общего назначения. И синтаксис в Матлабе DSL’ный, заточенный на матричные операции, а вовсе не сложнее питоновского.

И именно поэтому пилят Октаву как замену Матлабу. Питон здесь вообще никаким боком.

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

Осознанная или неосознанная диверсия.

Конкретно про SQL-инъекцию – пару раз было, при динамически генерирующихся запросах; в основном всё конечно на JPA-репозитариях. Но у этого товарища и других закидонов хватает, например соглашается что микросервисов в системе сильно больше чем нужно, и тут же создаёт новый, копипастя прорву инфраструктурного кода ради от силы 200 строк собственно логики: валидация SQL-запроса путём оборачивания его в select * from(query) limit 0 и передачи в JDBC на исполнение + выковыривание списка столбцов из ResultSetMetadata – и это блин не шутка, а реальный отдельный сервис.

Что мешает уйти?

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

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

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

Свой проект?

sanyo1234
()
Ответ на: комментарий от Chiffchaff

Тут вот один комментатор, например, берёт и намеренно пишет говнокод на Python, и потом сам же говорит: «Вот видите, можно написать говнокод. Значит, язык плохой». И в упор не понимает, что не так в этой логике. Если ему говоришь, что такой код не пройдёт ревью, он говорит, что ему «навязывают корпоративные линтеры». И что. Я просто поставил в голове зарубку, что с человеком бесполезно спорить, и всё.

  1. С чего ты решил, что это мой код?
  2. Так ты покажи, как правильно-то. Напиши эту проверку по феншую.
wandrien ★★★
()
Ответ на: комментарий от Undeadguy

Возможно, скоро его в этом плане потеснит Julia, но, насколько мне известно, у нее еще все оч плохо в плане рисования графиков

В julia с рисованием графиков всё отлично. Да и сам язык гораздо более адекватный, чем питон. В julia один недостаток - жирный рантайм, от которого сложно избавиться, если хочется статической компиляции в компактный бинарник, но над этим разрабы плотно работают.

yvv1
()
Ответ на: комментарий от wandrien

Давно заметил, что топишь за Ruby,

а что думаешь про JRuby?

IMHO другие рантаймы кроме JVM и .NET не так удачны и функциональны.

sanyo1234
()

новый модуль compression.zstd для сжатия согласно Zstandard (PEP 784);

Насколько увеличился объём инсталляции?

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

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

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

Если бы все писали на эффективных ЯП, правильно выбранных под задачу, то доходы облачных провайдеров и производителей оборудования для них резко бы упали?

sanyo1234
()
Ответ на: комментарий от qulinxao3

python обычный язык repl с «батарейками» по сути Паскаль современности

Pascal REPL ? Pascal AOT compilation ? пятон тормоз … !

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

И именно поэтому пилят Октаву как замену Матлабу. Питон здесь вообще никаким боком.

Ну да. Октаву пилят как замену Матлабу аж с 1988 года, то есть 37 лет в обед и все никак не заменят этот Матлаб. А пока пилят Октаву как замену Матлабу до приемлемого уровня, а не просто как тренажер для студентов, народ работает в Python и R.

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

MichIs
()
Ответ на: комментарий от Undeadguy

был удобен как ЯП для прототипирования, дескать сейчас проверю идею на питоне, а потом реализовать «по-человечески» на условном C++

А потом заказчик/начальник смотрит на прототип и говорит: о, зашибись, денег на «по-человечески» всё равно нет, так что продожай допиливать этот прототип до продукта.

И выхода тут три:

  • Ты – прогнувшийся говнокодер.
  • Ты – с гордой головой безработный.
  • Ты вообще и никогда не пишешь на питоне и прототипы на выброс, а сразу пилишь под целевой платформу. А начальству втираешь, что это прототип. Безо всякого стыда, потому что дураку, лезущему в твою зону ответственности, проще наврать, чем объяснить. И кстати, при наличии хоть какого-то опыта и наработок, получится не дольше, чем питоновский прототип.
dimgel ★★★★★
()
Последнее исправление: dimgel (всего исправлений: 2)
Ответ на: комментарий от dimgel

И выхода тут три

На практике победил другой подход: ты говнокодишь свой прототип на питоне, а потом используешь костыли типа cython или numba, чтоб ускорить только самые тормозные части. Подход рабочий, но не оптимальй. Если критична производительность, лучше сразу использовать для этого быстрый язык. Быстрый язык не обязательно должен быть низкоуровневым, как си. Или наоборот, высокоуровневый язык не обязательно тормозной, как питон.

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

На практике победил другой подход: ты говнокодишь свой прототип на питоне, а потом используешь костыли типа cython или numba, чтоб ускорить только самые тормозные части.

Это мой п.1. Костыли останутся костылями, а говнокод на питоне – говнокодом на питоне.

На самом деле, это один из механизмов реализации удивительного паттерна. Впрочем, не основной.

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

начальник первый охренеет, когда поймет, что мы попали в бутылочное горлышко просто потому что это питон, у него рантайм страшный, как следствие надо покупать более мощные сервера (условно). и тут либо

  1. Делаем по-человечески, переписывая на более низкоуровневый ЯП
  2. Ресурсоемкие вещи выносим в C/C++/Rust и тд

И нет, факт того, что мой скрипт медленный просто потому что он на Питоне не делает меня говнокодером

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

и тут либо

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

  2. Таки-выкидываем.

На этом этапе решение принимает начальство, от тебя уже ничего не зависит. Раньше надо было думать.

И нет, факт того, что мой скрипт медленный просто потому что он на Питоне не делает меня говнокодером

В обсуждаемом контексте, говнокодером человека делает тот факт, что он взялся делать БОЛЬШОЙ продукт на питоне – не важно, сам дурак или прогнулся под начальство.

Единственный рабочий способ не прогнуться я выше изложил. Да и то… рабочий он весьма условно. Если начальство говорит просто «хочу прототип» – руки развязаны. А если оно считает себя технически подкованным не хуже тебя, говорит «хочу прототип на питоне», и следит, чтобы было на питоне – увы, только увольнение. Потому что с начальством, лезующим в твою зону ответственности, дальше будет только хуже. В качестве последней попытки можно пойти на жёсткий конфликт: «вот сам и пиши на питоне, а меня работать не учи».

dimgel ★★★★★
()
Последнее исправление: dimgel (всего исправлений: 5)
Ответ на: комментарий от Chiffchaff

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

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

Синтаксис ЯП/конфига должен позволять полностью восстановить логику, даже если форматирование полностью сбито и вся программа теперь представляет одну строку. В Питоне это невозможно. Эта особенность его синтаксиса – говно. Какой смысл защищать говно?

Ладно бы эта особенность давала какие-то преимущества, но так нет, только вред.

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

Я понял о чем они. В питоне какой то блок цикла или функции обозначается отступом. Если этот отступ завершить не там, что это будет корректный код, но работать будет неверно. Никаких enddef или endfor в языке нет

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Undeadguy

и тут либо

  1. Делаем по-человечески, переписывая на более низкоуровневый ЯП

К слову сказать, в моей практике за 30 лет такого не встречалось. Объяснить начальству, что вот это уже-готовое-работающее-хоть-сейчас-продавай надо выкинуть и потратить ЕЩЁ СТОЛЬКО ЖЕ времени и денег на получение ТОЧНО ТАКОЙ ЖЕ морды – НЕВОЗМОЖНО. Даже если перед этим 10 раз это проговорили.

Да и сам я, если честно, нихрена не понимаю эту логику. Работать на выброс? Бред собачий.

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

Это невалидный код?

i = (
     1,
             2,
                     3,
                             4,
         )

Это потрясающе! Сам того не подозревая ты одним вопросом показал почему блоки кода должны быть явно ограничены. Эту конструкцию с полностью сбитым форматированием можно закинуть в интерпретатор/редактор python и a) она будет корректно работать; b) ее логику и форматирование можно однозначно восстановить.

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

А теперь сделай вот так:

t1 = 1, 2,
    3,
        4,
            5
In [7]: t1 = 1, 2,
   ...:     3,
   ...:         4,
   ...:             5
  Cell In[7], line 2
    3,
    ^
IndentationError: unexpected indent
MoldAndLimeHoney ★★
()
Последнее исправление: MoldAndLimeHoney (всего исправлений: 1)
Ответ на: комментарий от dimgel

Объяснить начальству, что вот это уже-готовое-работающее-хоть-сейчас-продавай надо выкинуть и потратить ЕЩЁ СТОЛЬКО ЖЕ времени и денег на получение ТОЧНО ТАКОЙ ЖЕ морды – НЕВОЗМОЖНО.

В питоне, переписывание 1% кода на быстром языке, может дать прирост производительности в сотни, а то и тысячи раз. Сам так делал неоднократно. Для ускорения процесса переписывания как раз и придумали костыли в виде cython, numba, f2py, чё там ещё? Т.е., никто дважды время не тратит. Сначала быстро говнокодится прототип, потом делается профайлинг, и расширяется самое узкое очко, тоже достаточно быстро. Многих такой подход устраивает.

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

Ни разу здесь не встречал, чтобы облизывали Rust.

Было такое, когда раст ещё только начинался. Тут даже был модератор фанбой, который малейшую критику тёр.

bread
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.