Очень круто, подача материала на высшем уровне. Всегда приятно слушать. Было бы здорово увидеть сравнение производительности для Python 3.11. Спасибо за ваш труд
Ещё забыли рассказать про изменения в регулярных выражениях. В регулярных выражениях добавлена возможность использования атомарной группировки ((?>…)) и ревнивых (possessive) квантификаторов (*+, ++, ?+, {m,n}+).
ключевая фишка TaskGroup в том, что исключение, возникшее в одной из задач, отменяет все остальные задачи и вылетает из блока with. то есть, мы точно знаем, что если вышли из блока with, значит, все задачи либо успешно завершены, либо завершены с ошибкой, либо отменены и мы дождались их остановки.
@@vladyan01 транзакция в СУБД - или всё успешно выполнено, или всё откатилось. Здесь не так. Надо будет поразбираться глубже с TaskGroup и сделать материал
В телеге выложил тесты производительности 3.11 против 3.10: t.me/t0digital/383 И ещё: в nvim в видео у меня подсвечивается новый синтаксис как незнакомый - надо просто обновить pyright и всё будет красиво:)
Когда нибудь определенно наступит этот момент) Я где то год-полтора назад смотрел видео с обновлениями пайтона примерно с такими же мыслями)) А теперь просто в восторге)
Один из немногих рускоязычных источников информации в Айти (для меня по крайней мере), который я смотрю всегда с интересом и узнаю много нового) Спасибо большое за контент)
Я не совсем понял по поводу групп исключений, для чего нужны звёздочки при отлове исключений, я предполагаю что это для обхода наследования классов исключений, да?
Здравствуйте, спасибо за ваши видео. Пожалуйста, найдите возможность рассказать как использовать несколько версий Python, в одной системе для разных проектов. Заранее спасибо.
Для этого виртуальные окружения в том числе работают. Ставьте разные версии, создавайте от них виртуальные окружения для конкретных проектов и работайте в этих виртуальных окружениях. python3.10 -m venv env source ./env/bin/activate python3.11 -m venv env source ./env/bin/activate
@@t0digital спасибо за ответ, не давно попал на ваш канал, до этого немного писал на php/laravel, но посмотрев ваше видео решил сменить стек на питон джанго. Вы тоже раньше писали на php и перешли на питон
В последнее время, когда еще некогда почитать пефы к очередной версии чудо-языка, смотрю Диджитализируй. Сразу в курсе основных новшеств релиза. Ускоряемся, ускоряемся, ускоряемся... Самая нужная фича - ускорение. Но и группы исключений, как новая языковая конструкция, тоже прокатит. Не так много по синтаксису в сравнении с 3.10, и это хорошо. Главное сейчас - ускорение. Мощное ускорение даст Питону ту самую долгожданную власть над Миром. Будем дожидаться дальше. Но нас услышали. Главное, чтобы не забросили под сукно самую важную проблему Питона.
Пробовал ли ты Helix или kakoune? Helix выглядит хайповым, написан на расте, имеет кучу встроенного функционала, который предоставляют популярные вим плагины. И бинды диктуют немного другую философию - если в виме ты объявляешь действие, потом объект (Delete Around Word), то в Helix/kakoune ты сначала выбираешь объект, а потом применяешь к нему действие. Сами редакторы мне не зашли, но необычная система биндов нравится
helix пробовал немного, интересный проект, как будет время повтыкаю подробнее. Так-то vim старичок уже, может быть действительно сейчас можно сделать что-то лучшее
Круто! Достал с полки свой очень медленный покер с "ИИ", который считает вероятность выигрыша простым перебором вариантов оставшихся карт, и запустил на 3.10 и 3.11. Один круг игры из двух ИИ на 3.10 бегает 54-58 сек. В 3.11 то же самое происходит за 33-38. Всё ещё долго и требует переписывания всего проекта на норм комбинаторику, но разница с обновления заметна и приятна.
протестировать надо готовность библиотек вашего фреймворка с новой версией, в общем случае нельзя гарантировать, что ничего не отвалится пока. Celery на моей памяти под новые версии обновлялись оч долго, например
Pydantic для работы с json хорош. Там не dataclass, там их собственные модели, но суть та же. Хотя можно и сами dataclass'ы заставить работать с JSON, конечно
Почему на 11:30 исключения не по порядку вызвались(подряд два ValueError и т.д., хотя должно вроде как было быть ValueError, TypeError и т.д.-как в списке)?
Круто. Но пока на 3.11.0 не ставятся некоторые пакеты через pip. Например gmpy2 или pygame. А для конкретных задач чтобы ускориться можно написать библиотеку функций на C или C++ и откомпилировать в dll или so. А затем подключить через ctypes.
@@Taorinio Ты не правильно понял. Набор функций пишется под конкретную задачу. Например операции с точками на эллиптической кривой secp256k1, блумфильтр, да что угодно.
Стало интересно сравнить скорости. Поставил 3.11, написал простенький скрипт на поиск простых чисел, замерил время исполнения с помощью встроенного модуля time. Подряд запускал один и тот же скрипт интерпретаторами 3.10.5 и 3.11 и для 100 000 чисел результат был примерно одинаков: ~11 секунд для 3.10.5 и ~13 секунд для 3.11.
Взял первый попавшийся алгоритм поиска простых чисел и сравнил 3.10 и 3.11, результат 16.5с и 11.5с соответственно, прирост скорости 30.3%. Код: import time def print_simples(limit: int): for num in range(1, limit): count = 0 divider = 2 while divider < num: if num % divider == 0: count += 1 divider += 1 if count == 0: print (f'{num} простое число') start = time.monotonic() print_simples(limit=20_000) end = time.monotonic() print(end-start)
@@t0digital Мой код: import time as t def isPrime(n): for i in range(2,n//2): if not n%i: return False return True dt = t.time() primes = [] for x in range(1,100000): if isPrime(x): primes.append(primes) dt -= t.time() print(f"Found {len(primes)} Primes in {-dt} seconds") Может быть результат не в пользу повой версии из-за использования списков.
У меня программка, которая решает с десяток другой диф уравнений на vb решалась в лёт. Переписал на пайтон и она просто "встала" и на м1 и на 4Гц проце. А тут оказалось вот оно что. Действительно, в моем случае стало намного шустрее работать.
у меня в виме в конфиге, запуск по CTRL+H: autocmd FileType python map :w:exec '!python3.11' shellescape(@%, 1) autocmd FileType python imap :w:exec '!python3.11' shellescape(@%, 1)
Асинхронность. Почему до сих пор нельзя сделать просто: tasks = [(sleep, 1), (sleep, 2), (sleep, 3)] run_async(tasks) ? Какие-то у них всё сахары синтаксические не сладкие :)
@@t0digital Ну да, это я понял. Я просто ни разу не слышал чтобы его так называли. Хотя в сфере программирования я отсутствовал чуть больше года, может поэтому.
@@t0digital c# же, а с тех пор, как вышла core, то и вопросов про мультиплатформенность нет. Не все поймут суть Вашего "и это прикольно". Но мы-то понимаем, что это и есть суть - прикалываться, играть, IDE настраивать. Все, кроме того, чтобы работать
из python cделали pythonjit? пока не будет компилятора пайтона, не будет скорости. походу из luajit понатырили идей для ускорения и назвали по своему - адаптивный интерпретатор
Мой курс «Хардкорная веб-разработка» - course.to.digital
Вжух!
Уважаемый автор, у вас такое миловидное лицо что я думал это про себя вы так написали на превью "скоростной горячий пирожочек" )))
ох спасибо )))
Очень круто, подача материала на высшем уровне. Всегда приятно слушать. Было бы здорово увидеть сравнение производительности для Python 3.11. Спасибо за ваш труд
t.me/t0digital/383
Алексей, спасибо! Кайфово, что ты со своими подписчиками постоянно в контакте. Ждем курс:)
спасибо, такие примеры в обзорах хорошо смотрятся!
Ещё забыли рассказать про изменения в регулярных выражениях. В регулярных выражениях добавлена возможность использования атомарной группировки ((?>…)) и ревнивых (possessive) квантификаторов (*+, ++, ?+, {m,n}+).
Подача, картинка и звук на высшем уровне
Спасибо, Алексей, как всегда познавательно!
Спасибооо!
ключевая фишка TaskGroup в том, что исключение, возникшее в одной из задач, отменяет все остальные задачи и вылетает из блока with. то есть, мы точно знаем, что если вышли из блока with, значит, все задачи либо успешно завершены, либо завершены с ошибкой, либо отменены и мы дождались их остановки.
Это получается как транзакция в СУБД?
@@vladyan01 транзакция в СУБД - или всё успешно выполнено, или всё откатилось. Здесь не так. Надо будет поразбираться глубже с TaskGroup и сделать материал
Осталось все остальные фишки из curio перенести и async станет конфеткой)))))
@@ЖеняОмен в целом молодцы они, что дёргают подходы из внешних либ:)
ЛعنОоооогооо7оглл о6о6оО7о656
В телеге выложил тесты производительности 3.11 против 3.10: t.me/t0digital/383
И ещё: в nvim в видео у меня подсвечивается новый синтаксис как незнакомый - надо просто обновить pyright и всё будет красиво:)
Спасибо! Надеюсь, когда нибудь я буду также радоваться подобным изменениям в языке, а пока "ничего не понятно, но очень интересно"
Когда нибудь определенно наступит этот момент) Я где то год-полтора назад смотрел видео с обновлениями пайтона примерно с такими же мыслями)) А теперь просто в восторге)
Лучший! Подача на высоте, Однозначно подписка)
Нет предела совершенству, уже скоро 3.12 выкатят!!!
Какой же вы всё таки классный!
Алексей, спасибо за обзор. Позволю себе сделать небольшое замечание про блок с asyncio: sleep - неправильный глагол.
Спасибо! Большое!
Класс, спасибо за годный контент!
Какое же большое достижение, очень хорошее, скоро они изобретут полноценную типизацию! Спасибо за обзор.
Один из немногих рускоязычных источников информации в Айти (для меня по крайней мере), который я смотрю всегда с интересом и узнаю много нового) Спасибо большое за контент)
Спасибооо!
Зашел, поставил палец вверх, а потом смотрю))
Быстро растешь в качестве контента, молодца и спасибо за видос!
Спасибооо!
Спасибо за обзор! Скажите, а можно ли обновить интерпретатор не удаляя Анаконду и установленные пакеты?
Мне уже нравится
Очень вовремя вышел обзор))
Не хочу основы, хочу курс по питону от нуля и до джуна/мидла хотя бы :)))
Спасибо за видео)
Я не совсем понял по поводу групп исключений, для чего нужны звёздочки при отлове исключений, я предполагаю что это для обхода наследования классов исключений, да?
Алексей, благодарю!!! Оч круто!!! 👍👍🔥🔥🔥🔥 Радость. Ура! Обожаю большое количество лошадок под капотом!!!! 🏇 Поехали!
И это прикольно!
В php есть opcashe, у пайтона он есть? И если есть, то хранится ли он в постоянной памяти?
Спасибо за разбор и информирование нововведений в версии
Спасибо 🤝
Вау, как ты сделал это движение кистью на 5:09? :D
Годы тренировок!
классная новость! )
Спасибо за обзор! Очень легко смотрится, и воспринимается подача материала.
Полностью согласен! Топчик, С++ пайтон уже конкурент в скорости
Кайфово и воодушивляюще😋
Спасибо, Алексей!
Pythoша прекрасный и вы тоже!
А между тем продолжаем пилить😄
Здравствуйте, спасибо за ваши видео.
Пожалуйста, найдите возможность рассказать как использовать несколько версий Python, в одной системе для разных проектов. Заранее спасибо.
Для этого виртуальные окружения в том числе работают. Ставьте разные версии, создавайте от них виртуальные окружения для конкретных проектов и работайте в этих виртуальных окружениях.
python3.10 -m venv env
source ./env/bin/activate
python3.11 -m venv env
source ./env/bin/activate
Попробовал сейчас 3.11 почти ни одна библиотека не встала на винде по крайней мере(
Хорошее видео, хорошее видео. Спасибо, спасибо.
Ура ура!
Занятно.
Спасибо, Леша. Что думаешь про Python/GraalVM?
не смотрел на него ещё
Расскажи про 3.12a
Классный контент. Желаю успехов! Стараюсь получить похожее качество видео.
Автолайк! Спасибо за все, что делаешь!!! Огромное спасибо!
Спасибооо!
Вопрос про асинкио. gather может коллектить результаты тасков, если они что-то возвращают. С TaskGroup это как-то можно делать?
И, чуть не забыл, спасибо за видео)
А пишут ли на питон/django простые web приложения? Или только крупные средние?
Пишут
@@t0digital спасибо за ответ, не давно попал на ваш канал, до этого немного писал на php/laravel, но посмотрев ваше видео решил сменить стек на питон джанго. Вы тоже раньше писали на php и перешли на питон
да, было дело
В последнее время, когда еще некогда почитать пефы к очередной версии чудо-языка, смотрю Диджитализируй. Сразу в курсе основных новшеств релиза. Ускоряемся, ускоряемся, ускоряемся... Самая нужная фича - ускорение. Но и группы исключений, как новая языковая конструкция, тоже прокатит. Не так много по синтаксису в сравнении с 3.10, и это хорошо. Главное сейчас - ускорение. Мощное ускорение даст Питону ту самую долгожданную власть над Миром. Будем дожидаться дальше. Но нас услышали. Главное, чтобы не забросили под сукно самую важную проблему Питона.
Прозвучит конечно, может, с не очень приятным Юморком, но пирожочка-то на видосе оказалось два))
А так, как обычно, спасибо за обзор!
о пасиба за свежак
круто круто 😏
*Respect* #Python, *Respect* #Диджитализируй!
Круть. Надеюсь ускорит запуск скомпилированного pyQt приложения.
Извините за вопрос не по теме, но что за уютное место, в котором снималось это видео, это ваш офис?
Пробовал ли ты Helix или kakoune? Helix выглядит хайповым, написан на расте, имеет кучу встроенного функционала, который предоставляют популярные вим плагины. И бинды диктуют немного другую философию - если в виме ты объявляешь действие, потом объект (Delete Around Word), то в Helix/kakoune ты сначала выбираешь объект, а потом применяешь к нему действие. Сами редакторы мне не зашли, но необычная система биндов нравится
helix пробовал немного, интересный проект, как будет время повтыкаю подробнее. Так-то vim старичок уже, может быть действительно сейчас можно сделать что-то лучшее
Blazingly fast?
12:44
Интересно, как swagger будет это всё поддерживать
Люблю 🐍
Круто! Достал с полки свой очень медленный покер с "ИИ", который считает вероятность выигрыша простым перебором вариантов оставшихся карт, и запустил на 3.10 и 3.11.
Один круг игры из двух ИИ на 3.10 бегает 54-58 сек.
В 3.11 то же самое происходит за 33-38.
Всё ещё долго и требует переписывания всего проекта на норм комбинаторику, но разница с обновления заметна и приятна.
С такой любовью написано "горячий пирожочек", словно отношение к python как котяткам и щеняткам.
Та не, всего лишь инструмент, которым с удовольствием пользуешься почти каждый день на протяжении многих лет:)
Отличные новости! И круто с разными планами в съемке получаеться❤
Стоит ли сейчас начать им уже пользоваться или подождать немного?
протестировать надо готовность библиотек вашего фреймворка с новой версией, в общем случае нельзя гарантировать, что ничего не отвалится пока. Celery на моей памяти под новые версии обновлялись оч долго, например
А что с замерами? Ты говоришь проводил замеры скорости в сравнении на своих кейсах. Любопытно было бы посмотреть на это дело
замеры разных ЯП не сохранились. Замеры 3.10 vs 3.11 тут t.me/t0digital/383
@@t0digital очень интересно было бы глянуть на сравнение производительности Питона 3.11 и других ЯП , все в одном видео)
Четко прям, подача материала на высшем уровне. А можно попросить рассказать по SQL инъекциям)?
Для SQL-торчков? )
Единогласно самая лучшая подача материала.
А как в пайтоне сериализуются/десериализуются json dataclass?
Pydantic для работы с json хорош. Там не dataclass, там их собственные модели, но суть та же. Хотя можно и сами dataclass'ы заставить работать с JSON, конечно
@@t0digital
Основной рабочий язык С#
там только классы и мапы в/из json
Хочется аналогичной строгой типизации и в пайтоне.
@@andrewbondaryuk pydantic. Типизация строгая в любом случае реализована будет через внешний проверятор корректности типов (mypy, pyright)
@@t0digital
Не, строгая типизация для входящего json, а не dict с его строковыми ключами :)
Пощупаю пидантик, спасибо.
Как всегда годно, хочу делать примерно такой же контент по качеству)
Дело хорошее, успехов с контентом!
Добавили конструкцию по типу switch case
В питоне это match case
Очень удобная штука
Это добавили в 3.10. Тут новости про 3.11.
TaskGroup стартует задачи на моменте выхода из with?
он добавляет их в очередь, сам момент старта управляется event loop'ом, думаю
Люблю пухлощеких
Спасибо за обзор Мэд.
Только не sleeped, а slept)
спасибо, да
Почему на 11:30 исключения не по порядку вызвались(подряд два ValueError и т.д., хотя должно вроде как было быть ValueError, TypeError и т.д.-как в списке)?
Потому что они в группе как раз. Есть ветка, обрабатывающая все ValueError, вот пока она не отработает, другие ветки (для TypeError) не включаются
Круто. Но пока на 3.11.0 не ставятся некоторые пакеты через pip. Например gmpy2 или pygame. А для конкретных задач чтобы ускориться можно написать библиотеку функций на C или C++ и откомпилировать в dll или so. А затем подключить через ctypes.
Потом скинешь библиотеку?
@@Taorinio Ты не правильно понял. Набор функций пишется под конкретную задачу. Например операции с точками на эллиптической кривой secp256k1, блумфильтр, да что угодно.
@@alexandercurl4805 жаль, я просто сейчас ищу, как изменять базовые команды питона, по типу print, хочется изменить на pr, или например wl
@@Taorinio зачем
Стало интересно сравнить скорости. Поставил 3.11, написал простенький скрипт на поиск простых чисел, замерил время исполнения с помощью встроенного модуля time. Подряд запускал один и тот же скрипт интерпретаторами 3.10.5 и 3.11 и для 100 000 чисел результат был примерно одинаков:
~11 секунд для 3.10.5 и ~13 секунд для 3.11.
Взял первый попавшийся алгоритм поиска простых чисел и сравнил 3.10 и 3.11, результат 16.5с и 11.5с соответственно, прирост скорости 30.3%.
Код:
import time
def print_simples(limit: int):
for num in range(1, limit):
count = 0
divider = 2
while divider < num:
if num % divider == 0:
count += 1
divider += 1
if count == 0:
print (f'{num} простое число')
start = time.monotonic()
print_simples(limit=20_000)
end = time.monotonic()
print(end-start)
@@t0digital У меня 32(3.10) и 27(3.11)
@@t0digital Мой код:
import time as t
def isPrime(n):
for i in range(2,n//2):
if not n%i:
return False
return True
dt = t.time()
primes = []
for x in range(1,100000):
if isPrime(x):
primes.append(primes)
dt -= t.time()
print(f"Found {len(primes)} Primes in {-dt} seconds")
Может быть результат не в пользу повой версии из-за использования списков.
А что там по новым квантификаторам и регекспам? *+, ++, ?+
А можно будет запилить видео про ускорение? Прогнать какие-нибудь бенчмарки и померить)))
Догонит по скорости Яву?
налил кофеёк, сажусь за комп, думаю новости почитаю... бац - нотифакшен.
О, кофеёк это хорошо:) Надо тоже налить!
Алексей, Спасибо за видео.
У тебя в чашке точно чай? :)
Вроде да:)!
У меня программка, которая решает с десяток другой диф уравнений на vb решалась в лёт. Переписал на пайтон и она просто "встала" и на м1 и на 4Гц проце. А тут оказалось вот оно что. Действительно, в моем случае стало намного шустрее работать.
Я посмотрел описание курса, для начинающих прям топчик.
Мне же такое уже не подходит. Я уже как год или 2 пишу на пайтон
Как ранить скрипты прямо в виме?
у меня в виме в конфиге, запуск по CTRL+H:
autocmd FileType python map :w:exec '!python3.11' shellescape(@%, 1)
autocmd FileType python imap :w:exec '!python3.11' shellescape(@%, 1)
Котаны? Нижний Новгород :)
смотрел твое видео про сервер аналитики, сделай видос про golang
С тех пор не писал на го. Но возможно сделаю с кем-нибудь
@@t0digital круто, буду ждать!
Асинхронность. Почему до сих пор нельзя сделать просто:
tasks = [(sleep, 1), (sleep, 2), (sleep, 3)]
run_async(tasks)
?
Какие-то у них всё сахары синтаксические не сладкие :)
Ну ты и зверюга. Свой фейс снимать да в 4к. Любишь себя, молодца)
На 4к мониторе 1080 смотрится уже стрёмно
@@t0digital не могу не согласиться.
@@t0digital чё, купить HD-ready не можешь? :))))))))))))))
используй библиотеку, и скорость будет выше чем у С++
Ивана Грозного?
@@t0digital Отличная шутка)
@@t0digital Называется numba
спасибо, потыкаю:)
Здорово, что разрабы python core работают над ускорением языка.
Лепота то какая?) Лепота!
15:18 ахахахах
Какой клевый фон на ноуте
Спасибо! to.digital/wlp/peizazh-priroda-rastitelnost-vodoem-gory.jpeg
Не понял, что за Си Python такой?
CPython
@@t0digital Ну да, это я понял. Я просто ни разу не слышал чтобы его так называли. Хотя в сфере программирования я отсутствовал чуть больше года, может поэтому.
Ежики кололись, плакали, но продолжали писать на питоне. И это прикольно? И это прикольно!
Просветите нас тупеньких об идеальном ЯП, в котором не колется)?
@@t0digital c# же, а с тех пор, как вышла core, то и вопросов про мультиплатформенность нет. Не все поймут суть Вашего "и это прикольно". Но мы-то понимаем, что это и есть суть - прикалываться, играть, IDE настраивать. Все, кроме того, чтобы работать
@@hhlkhmdgkmbfhnk микрософт ушел
@@leosv0 От такого, как ты - любая уйдёт
@@hhlkhmdgkmbfhnk нет аргументов - пиши гадость. Понятно
А как же тесты скорости 3.11 vs 3.10?
t.me/t0digital/383
Посмотрели, насладились, пошли поддерживать легаси на 2.7
Нужно сравнение нового пайтона с другими языками по скорости
из python cделали pythonjit? пока не будет компилятора пайтона, не будет скорости.
походу из luajit понатырили идей для ускорения и назвали по своему - адаптивный интерпретатор
поздравляю! в php это давно сделали👍ускорение
Taichi в деле, не?
+ для продвижения
Твои новости отвлекают от прекрасного монтажа
Да экспериментирую:)
Delphi 7 всё равно лучше. Окошек понакидал и красота. И работает быстрее.
Лучше всего топор! Безальтернативный инструмент, орудие и даже оружие:)))
@@t0digital только классический топор, каменный, а не новомодные железки эти все! )
Ты прав. До тох пор, пока заказчик продолжает платить за результат. Если задачу эффективнее решать топором, то какие могут быть аргументы против?
питонисты изобрели jit