LINUX.ORG.RU

Python 3.14

 

Python 3.14

1

5

Вышел Python 3.14.

Из новшеств:

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

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

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

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

★☆

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 7)

https://habr.com/ru/articles/953410/

Кто-нибудь может объяснить, почему нельзя комбинировать префиксы стрингов f и u? Учитывая, что все стринги и так юникодные.

https://www.youtube.com/watch?v=77H5c8g2S3g

А в виде текста это есть? Желательно на незаблокированном сайте, который грузит текст сразу целиком, а не подгружает построчно.

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

Кстати, уже чёрт знает сколько лет существует PyPy. Если прямо сейчас нужен JIT и скорость, можно его брать. Я брал. Скорость сравнима с компилируемыми языками.

Сколько библиотек при этом отваливается?

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

Особенно учитывая, что u: No effect (allowed for backwards compatibility)

wandrien ★★★
()

Я знаю, в чëм разница между PHP и Python: на последнем не пытались писать DE целиком :)

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

А чего это они двух змей изображают?

Питоны.

А та, которая слева, язык проглотила.

Наоборот, правая вывалила в предвкушении. Хочет попробовать вкусный «pi/pie».

А справа - спит на ходу.

Жмурится от удовольствия.

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

Кто-нибудь может объяснить, почему нельзя комбинировать префиксы стрингов f и u? Учитывая, что все стринги и так юникодные.

u - в Python 3 устаревший префикс. Его не нужно использовать, и никто не использует. Можно найти только в legacy коде, который не рефактроили со времён Python 2.

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

Сколько библиотек при этом отваливается?

Какое-то количество не поддерживается. Какое точно - не знаю. Для веб-бэкенда средней руки, скрипта, обычно хватает поддерживаемых библиотек.

Тем более, что отваливаются библиотеки, написанные на C для скорости. Что в случае PyPy не очень актуально.

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

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

Допустим, сейчас это может быть так, по ряду причин.

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

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

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

Удобно жи!

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

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

Python набирал популярность, потому что его выбрали в качестве учебного ЯП в ВУЗах США.

Соответственно вылупилось много джунов со знанием этого ЯП.

из-за читаемого синтаксиса

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

Уже на третьем уровне вложенности конструкций кажущаяся читаемость синтаксиса превращается в шляпу.

Примеры языков, дружественных к человеческому, а не машинному, воприятию текста: Ruby, Lua, Ada.

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

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

«исполняемый псевдокод» - это уже клиника само по себе.

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

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

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

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

Python набирал популярность, потому что его выбрали в качестве учебного ЯП в ВУЗах США.

Путаешь причину со следствием. Его выбрали в ВУЗах, потому что он вдруг стал очень популярен. То есть, инициатива шла снизу, а не сверху.

«исполняемый псевдокод» - это уже клиника само по себе.

Нет. Вся индустрия, за редким исключением (Java, Go), идёт по пути того, чтобы повышать плотность смысла в коде. Чтобы одна строка кода понятным образом выражала абстракцию как можно более высокого уровня.

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

Да, Python со статическими типами - де-факто, уже другой язык.

Оптимизация здесь только в смысле того, что: а) появляется возможность отслеживать ошибки раньше и более надёжно, б) становится легче ориентироваться в очень большом проекте.

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

Путаешь причину со следствием. Его выбрали в ВУЗах, потому что он вдруг стал очень популярен. То есть, инициатива шла снизу, а не сверху.

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

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

Гугл начал вкладываться в Python (да и то, ограниченно) уже гораздо позже, чем Python стал популярным и его преподавание начали в ВУЗах.

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

Для статической типизации нужно язык заново проектировать. Можно было бы даже синтаксис питоний оставить, правда непонятно зачем

Ну есть такой язык уже, называется mojo - синтаксис питонячий, есть типы, компилируется в исполняемый код

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

К тому же, поддержка корпорастов ещё не определяет судьбу и популярность языка. AOL и Sun вкладывались в Tcl, и где сейчас Tcl?

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

Конечно не определяет. Но в случае с питоном это ключевой фактор.

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

yvv1 пипон оказался для фортран_зависимых убобной щелью

в 97-99(хз точнее) его уже форсили на сайте вальядолида -

https://en.wikipedia.org/wiki/UVa_Online_Judge

если нырнуть в историю то Python|Lua это более(относительно [ε|c|k|ba|..{|*}*..|z]sh ) правильные языки интерактивности с опцией скриптованния сессии в файл недопрограммы

так вот Python стал взлетать когда его Numeric на супер и прочих массовых вычислениях - был такой химик Дюбуа - ваще лол что @ как операция матричного умножение «занято» с ~1995/96

Python это реально repl структурный с «тяжёлым» наследием из Modula-3 и Icon :)

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

Я пишу на Python где-то года с 1999. Отлично помню историю развития, день начинал с чтения comp.lang.python.

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

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

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

Это независимые категории оценки.

Если же оценивать по плотности, то синтаксис блоков в Ruby обеспечивает более плотную и при этом более понятную запись выражений, чем Питон.

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

Алан Перлис форсил лесенку (бГ слава что без булитов)

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

Субъективное мнение, и неверное.

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

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

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

Я пишу на Python где-то года с 1999

Python развивался во многом благодаря стараниям энтузиастов

А массово взлетел он в конце 2000х, в связи с появлением numeric/numpy/scipy и кучи основанных на них пакетах, и это отнюдь не благодаря голому энтузиазму.

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

Добавлю

  1. Кроме PyPy есть и другие инструменты, как я раньше писал - Numba, Cython, Nuitka и т.д.

  2. Oracle объявил в сентябре, что преращает разработку технологии Graal для языка Java и передает все наработки в Open JDK. Но при этом, команда Graal сосредотачивается на разработке GraalPy для ускорения работы кода на Python на JavaVM и GraalJS (для JavaScript). Так как применение Python и Javascript в Oracle DB или около - один из приоритетов

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

А массово взлетел он в крнце 2000х, в связи с появлением numeric/numpy/scipy и кучи основанных на них пакетах, и это отнюдь не благодаря голому энтузиазму.

Это смотря где. В начале 2000-х он уже был дико популярен в США, возможно, в Европе.

Это на постсоветском пространстве он начал раскручиваться где-то с десятилетним отставанием.

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

Примеры языков, дружественных к человеческому, а не машинному, воприятию текста: Ruby, Lua, Ada.

Честно говоря, когда много работаешь с таким, начинает раздражать этот закос под команды на английском языке: начать/кончать и т.п. Но это конечно намного лучше питона, все-таки блоки кода явно размечены.

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

теперь опционально - типо само в тьюпл(кортеж) подобно

for i in 1,2,3:

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

В начале 2000-х он уже был дико популярен в США

Я в это время как раз в США работал, поэтому знаю о чём говорю. Питоном головного мозга все поголовно начали болеть в 2010х. А до этого он был одним из язычков для игрушечных скриптов. И исторические графики популярности языка отыскать не сложно.

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

В Python сразу видно начало и конец блока.

Везде видно. Но синтаксис питона очень хрупкий и затрудняет автоформатирование.

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

Пиндосия вынуждена быть по разнообразию широкой как и весь обьект управления Её

на суперкомпах python был в достатчном почёте

дюБуа numeric из 1995 то что после ипотечного хлопка 8 года хомяков не стали мучить scheme не вина питухона а беда

qulinxao3 ★☆
() автор топика
Ответ на: комментарий от yvv1

К середине 2000-х уже умер относительно популярный сервер приложений на Python Zope. К началу 2010-х фактически начала умирать одна из самых непревзойдённых до сих пор CMS - Plone. Которая была дико популярна, потому что ничто из существующего тогда даже близко к ней не приближалось. Просто у уймы западных корпораций сайты были сделаны на Plone, у западных универов - практически каждый второй был на Plone.

Это такое отражение ситуации в реальном мире. К 2010-му уже было кладбище legacy питонопроектов, он был уже вполне зрелым языком, тогда уже из-за популярности назрело решение о Python 3, чтобы исправить те недостатки, которые начали мешать большим проектам на Python 2.

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

В Python сразу видно начало и конец блока.

Правда?

def validation(previousFilms, films, xchgrate):
    wrongDataCount = 0
    for film in films:
        for prev in previousFilms:
            if (prev.extId == film.extId) and (prev.days == film.days) and ((film.valueCurrent  * 10000 / xchgrate.cny) < prev.valueCurrent):
                wrongDataCount += 1
                if (wrongDataCount >= 2):
                    return False

Сколько блоков закрылось после return False?

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

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

Это именно то, что я писал выше. Ты подтверждаешь мой тезис:

«Не из-за читаемости синтаксиса, а из-за кажущейся простоты синтаксиса в хеллоу ворлдах для первокурсников

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

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

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

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

После осознания этого факта, всё идёт как по маслу.

У людей, которые уже программировали, вообще нет никаких проблем с этим. Это надуманная проблема.

Для всех остальных - никаких проблем. Автоформатирование - тоже давно решённая проблема.

Люди, которые давно варятся в Python, в курсе проблем автоформатирования, и они связаны вовсе не с отступами, а с совершенно другими особенностями Python.

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

сила python в repl (особенно благо Испанцу ipython в котором из коробки было распараллеливание на кластер)

+

import модулей (а теперь и пакетов «Ада» )

+

ща отсохло reload

теперь

from importlib import reload

интерактивная разработка :)

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

Это плохой код по любым стандартам. Я тебе могу плохой код написать на C, C++, Java, Go. И начать «доказывать», что язык плохой, потому что на нём можно написать плохой код.

Вот конкретно этот кусок кода сейчас даже хорошо настроенный линтер не пропустит.

А человек на ревью - тем более.

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

Не говоря уж о том, что скобочки вокруг условия в if - 100% знак, что писал не питонист, а кто-то, кто прям вчера писал на C или Java.

В идиоматическом Python - скобки вокруг условия в if - жуткий моветон.

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

Ты на вопрос не ответил.

Сколько блоков закрылось в языке, где «сразу видно начало и конец блока».

Сначала ответь на вопрос, а потом можешь рассказать, как этот код переписать под ваши корпоративные стандарты.

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

Чтобы не быть голословным:

https://cdn-blog.scalablepath.com/uploads/2023/03/python-popularity-tiobe-index.png

Как видим, один скачок популярности в середине 2000х (это как раз благодаря гуглу), и экспоненциальный рост с середины 2010х. Не нравится тиобе - любой другой индекс показывает похожую картину.

И прекращаем фантазировать.

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

У них в голове не укладывается, что whitespace может иметь значение

У меня тоже. В IT много упоринов, это один из самых забористых.

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

Ага. Чел на голубом глазу чешет про «У людей, которые уже программировали, вообще нет никаких проблем с этим. Это надуманная проблема.», и при этом делает вид, что людей с 20-летним опытом в IT, которые критикуют синтаксис Питона, не существует.

А они буквально с ним в одной ветке форума.

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

Люди, которые давно варятся в Python, в курсе проблем автоформатирования, и они связаны вовсе не с отступами, а с совершенно другими особенностями Python.

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

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

как есть люди которые до питона тож ни одно десятилетие примусы починяли

и отс(той)тупы(х) питона удобней чем закрывающие скобки на отдельных строках в иных языках где гирлянда }}}} очень информативна

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

Критиковать можно что угодно за что угодно. Идеала нет ни в ЯП, ни в чём-либо другом, созданном человеческими руками.

Критиков всегда вагон. Любая вещь под Луной, книга, язык, фреймворк, процессор, компьютер, клавиатура, спортивный снаряд, методика - всё будет иметь своих критиков всегда.

Иногда их критика объективна и обоснована. И в Python есть вполне объективные недостатки. Только когда @bread ищет недостатки, он выискивает что-то на поверхности, что сразу выдаёт, что глубоко он не погружался, и реальных недостатков (которых много) не знает. А цепляется за первое, что увидел.

Критка за whitespace - скорее субъективная критика тех, кто и не пытался писать на Python и даже не затруднился хотя бы немного погрузиться в тему.

Когда я критикую PHP, например, то делаю это из опыта. Я и сам на нём писал, и в чужих проектах много копался. Давно, где-то ещё до 2010 года понял, что это тупик. Но до 2010 был погружен довольно плотно.

А слушать критику от тех, кто по-быстрому нагуглил «пример плохого синтаксиса в Python» - ну что толку? Что вы тут нового сказали, что каждый питонист уже не слышал 100500 раз ровно теми же словами, которые вы друг у друга копируете?

Chiffchaff
()

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

Как это у вас уживаются лова «пайтон» и «производительность» на одной строке :)

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

Да нет у него проблем с автоформатированием. Вообще никаких. И никогда не было.

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

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