Python 3.10 - ЛУЧШИЙ релиз после 3.7! Pattern matching, новинки и при чём здесь Rust

Поделиться
HTML-код
  • Опубликовано: 4 окт 2021
  • Мой курс «Хардкорная веб-разработка» - course.to.digital
    Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: botanim.to.digital/
    Telegram: t0digital.t.me
    Вчера вышел Python 3.10 - и это лучший релиз Python за последние годы. Поговорим о новинках и подробно рассмотрим новое выразительное средство языка - Pattern Matching, а также узнаем, при чём здесь Rust, откуда вообще ноги растут, и, главное, куда:)!.
    Стрим Core разработчиков Python о релизе 3.10 • Python 3.10 Release St...
    /****************** about ******************/
    Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
    - Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
    - Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
    Telegram канал - t.me/t0digital
    ВК - digitalize.team
    RuTube - rutube.ru/channel/24802975/ab...
    Дзен - dzen.ru/id/6235d32cb64df01e6e...

Комментарии • 497

  • @t0digital
    @t0digital  2 года назад +26

    Опчки-опчки! Мой курс «Хардкорная веб-разработка» - course.to.digital
    Вжух!

    • @user-uc5vw8kx4o
      @user-uc5vw8kx4o 2 года назад +2

      Здравствуйте. Сделайте пожалуйста видео про Kivy🙏🏻

    • @mk-wq6ns
      @mk-wq6ns 2 года назад

      Алексей, как с вами связаться?

    • @t0digital
      @t0digital  2 года назад

      @@mk-wq6ns если по вопросам курса, то course@to.digital

    • @cicik57
      @cicik57 2 года назад +1

      когда перешёл в Python после C++ с нереальной загаженностью синтаксиса, а смотрю из твоего любимого питона тот же С++ делают!

    • @Uni-Coder
      @Uni-Coder 2 года назад

      @@cicik57 Плюсы хоть и загажены, но неизбежны для кода, критичного по времени :)
      Кстати, тот же Rust позиционируется как альтернатива C++ для системной или критичной разработки, но серьёзных примеров пока нет.
      Но в целом язык интересный и перспективный, занимался им лет 5 назад

  • @user-vb3vr7um1y
    @user-vb3vr7um1y 2 года назад +161

    При написании Helo world, ожидал, что выдаст ошибку - expected 'l'...

    • @MIIIG
      @MIIIG 2 года назад +7

      Halo world - expected 'a' )))

  • @slikeiv4477
    @slikeiv4477 2 года назад +137

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

    • @t0digital
      @t0digital  2 года назад +17

      Спасибооо! Мне тоже нравится:)))

    • @snatvb
      @snatvb 2 года назад

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

    • @user-gf7fr8qw2e
      @user-gf7fr8qw2e 2 года назад

      @@snatvb на жс пишете?

    • @t0digital
      @t0digital  2 года назад +4

      @@user-sn3mg8wk7v конечно, хейтерочкам пуканы подрывать

    • @snatvb
      @snatvb 2 года назад

      @@user-gf7fr8qw2e основа - да(ts), на расте для души)
      ну и еще на rescript (в js компилится)

  • @S.YOU.L
    @S.YOU.L 2 года назад +3

    Спасибо! Очень доступно и познавательно!

  • @ZhdanParfenov
    @ZhdanParfenov Год назад +2

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

  • @jamalzeynalov2196
    @jamalzeynalov2196 2 года назад +2

    Шикарные примеры🙌

  • @user-ug5zj2tc1u
    @user-ug5zj2tc1u 2 года назад

    Очень понятно и красиво всё подаёшь, спасибо!

  • @limonred5283
    @limonred5283 2 года назад +4

    Доходчиво и внятно, спасибо!

  • @SergeiSustavov
    @SergeiSustavov 2 года назад +1

    Спасибо за видео, очень интересно! :)

  • @sergeykapshuchenko5695
    @sergeykapshuchenko5695 2 года назад +2

    Круто, спасибо за видео !

  • @lucky_user
    @lucky_user 2 года назад +1

    Очень полезно! Спасибо Вам!

  • @bbaby9946
    @bbaby9946 2 года назад

    Классный выпуск! всем офисом Вас смотрим)

  • @user-lz3ez3nn4j
    @user-lz3ez3nn4j 2 года назад

    Спасибо за видео, удачи тебе!!!

  • @denissrjabov
    @denissrjabov 2 года назад +1

    Спасибо! Очень интересно!

  • @ValeryKhamenya
    @ValeryKhamenya 2 года назад +22

    Pattern matching используется с 1957г)
    Представьте, несколько медленно важные концепты входят в жизнь.
    Мир юн.

  • @nickolayyegorov4755
    @nickolayyegorov4755 2 года назад +2

    Около месяца учу Скалу. Там паттерн матчинг очень понравился, понял что в Питоне его реально не хватает. И тут такой подарок!

  • @ruslanykushev
    @ruslanykushev 2 года назад

    Спасибо за видосы! Как на счет розыгрыша курса на новый год? думаю, подарочек что нужно!

  • @sweetpeach1138
    @sweetpeach1138 2 года назад

    Только недавно начала изучать питон, с такими подсказками и правда приятнее 😅 Спасибо Вам за видео, очень познавательно и интересно!

    • @t0digital
      @t0digital  2 года назад

      Отлично, рад, что полезно!

  • @Jackson-mn3oj
    @Jackson-mn3oj 2 года назад

    Спасибо за обзор, очень понравился =)

  • @gapchannelAi
    @gapchannelAi 2 года назад +1

    Спасибо было очень интересно

  • @snatvb
    @snatvb 2 года назад +10

    Я, как человек который программировал в ФП стиле, безмерно рад тому, что в языках появляется эта крайне удобная штука, а еще что монады потихоньку проникают в другие языки, Result и Option тому примеры)

    • @mikhailpinchukov9384
      @mikhailpinchukov9384 2 года назад +2

      Только, к сожалению, не Result из примера, не питоновский Optional не являются монадами

    • @snatvb
      @snatvb 2 года назад

      @@mikhailpinchukov9384 это жаль :с

    • @alekseylebedev6278
      @alekseylebedev6278 2 года назад

      Да и паттерн матичинг стейтмент а не выражение

  • @user-ee1lx1pe7n
    @user-ee1lx1pe7n 2 года назад

    Спасибо! Это гениально!!

  • @TheFunkogolik
    @TheFunkogolik 2 года назад +4

    Спасибо! Крутой канал, почему я только сейчас его нашел???? Удачи

    • @t0digital
      @t0digital  2 года назад +3

      Лучше сейчас, чем никогда:) СПАСИБО!

  • @MrPavelFrolov
    @MrPavelFrolov 2 года назад +1

    Хороший разбор Pattern matching, спасибо!

    • @ArquitectoR
      @ArquitectoR Год назад

      Удобная штука, 7 лет уже в Elixir им пользуюсь)
      Жаль в Python не завезли пока pattern matching в сигнатурах функций, тоже мегаудобная тема.

  • @LermanMax
    @LermanMax 2 года назад

    Обзор обновлений языка - очень интересно

  • @user-ht6tu6ks3u
    @user-ht6tu6ks3u 2 года назад

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

  • @eagold
    @eagold 2 года назад

    15:17 а, просто условие поставить с регекспом, отлично!

  • @BogdanKozlovskyi
    @BogdanKozlovskyi 2 года назад +4

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

    • @t0digital
      @t0digital  2 года назад +1

      Спасибооо, приятно! Буду продолжать:)

  • @chu_ri5470
    @chu_ri5470 2 года назад +72

    Обзоры новых фич - топчег.

    • @ural-site
      @ural-site 2 года назад +2

      А с примерами кода ваще самолёт!

  • @RuzhelovichVladimir
    @RuzhelovichVladimir 2 года назад

    Не новость, а Бомба!!! Спасибо.

  • @oleholeynikov8659
    @oleholeynikov8659 2 года назад +1

    Это шедевр!!!

  • @howl3440
    @howl3440 2 года назад +2

    Новый питон действительно хорош! Ждем 3.11

  • @vladimirpolyakov8224
    @vladimirpolyakov8224 2 года назад

    Спасибо за видео!
    Подскажите, пожалуйста, в чем ролики делаете? (фича со спикером в уголке и кодом посередине просто шикарная)

    • @t0digital
      @t0digital  2 года назад +1

      Спасибо! Запись экрана - маковская родная программа Quicktime, и потом на монтаже накладываю обрезанную картинку из камеры на запись с экрана. Монтирую в Davinci Resolve, но так можно сделать вероятнее всего в любой монтажке

  • @scadeline805
    @scadeline805 2 года назад +1

    Вы такой крутой, спасибо большое за все ваши видео, очень познавательно! Сделайте пожалуйста видео о том как делать высоконагруженные системы. Чтобы приложение выдерживало огромный трафик пользователей. ОООЧЕНЬ НАДО!

    • @t0digital
      @t0digital  2 года назад

      Спасибо!
      Уже есть такой видос ruclips.net/video/kclYmb47LTg/видео.html

  • @AleksandrK51228ruswi
    @AleksandrK51228ruswi 2 года назад

    Очень нравится картинка видео, голос, дикция 👍👍👍

  • @heisenberg6874
    @heisenberg6874 2 года назад

    лучший обзор) спасибо!

    • @t0digital
      @t0digital  2 года назад +1

      Спасибооо!

  • @iteospace
    @iteospace Год назад +1

    есть же Pydantic для классов и typeguard для функций чтобы были проверки типизации в рантайме, без всяких isinstance.
    Вообще выглядит кстати костылем что разработчику на питоне приходится делать что то кроме аннотации типов для проверок типов.
    Если есть аннотация типа то всё остальное должен делать сам питон.
    Динамическая типизация должна быть дополнительной и опциональной.

  • @Morhunov
    @Morhunov 2 года назад

    Алексей, спасибо. Подписался

  • @svhanz
    @svhanz 2 года назад +14

    За "Привет катаны!" отдельный огромный лайк!!!
    Эта прекрасная фраза почему-то куда-то пропала на некоторое время, что лично меня огорчило.
    Да, мне нравится и сама фраза, и как Алексей ее произносит!
    Видео как всегда огонь!
    Кратко и содержательно.

    • @t0digital
      @t0digital  2 года назад +2

      Спасибооо:)!

  • @user-bb6ms1jx8c
    @user-bb6ms1jx8c 2 года назад

    спасибо за видео

  • @ntvisigoth
    @ntvisigoth Год назад

    Алексей забыл упомянуть, что какой паттерн быстрее найдется, такой и будет результатом. А паттернов подходящих может быть несколько. К примеру:
    conf = {
    'field1': 12,
    'field2': '100500',
    'field3': ['abc', 'def', 'ghi']
    }
    match conf:
    case {'field2': str(field2_), 'field3': list(field3_)}:
    print(f'conf: field2: {field2_} ; field3: {field3_}')
    case {'field1': int(field1_)}:
    print(f'conf: field1: {field1_}')
    case _:
    print('conf: HZ')

  • @user-lv7dq8jq9o
    @user-lv7dq8jq9o 2 года назад

    В typescript те же тайпхидднги
    В java тоже надо всё что может выбрасывать throwable обрабатывать явно оборачивая в try либо указываем что метод может что-то выбрасывать и тогда уже его заставляют оборачивать в try)

  • @owlscatcher
    @owlscatcher 2 года назад +4

    Добрый день, Алексей! Приятно удивлен, что с последнего ролика прошло меньше недели!
    Я сам не пишу на python, но на каждый подобный обзор я завариваю чаёк, сажусь и великолепно провожу 20-40 минут, что бы быть в курсе "чево там нового у питонистов случалось".
    Любое видео у вас, Алексей, очень... как бы выразиться точнее... уютное! Вы даёте исчерпывающую информацию по материалу без какого-то надменного снобизма и всегда с оглядкой на тех, кто может только начинать. Чувствуется, что от человека и для людей. Лучи добра и благодарности вам!

    • @t0digital
      @t0digital  2 года назад

      Большое вам спасибо за приятные слова!

  • @PurpleDaemon_
    @PurpleDaemon_ 2 года назад +3

    Сравнение с растом почему-то напомнило dry-python/returns, хотя возможно это немного не про то.

  • @user-zn5nr1cr4b
    @user-zn5nr1cr4b 2 года назад +1

    Почти визуальный оргазм, давно хотелось чего-то подобного в пайтоне :) Спасибо за обзор!

    • @user-lv7dq8jq9o
      @user-lv7dq8jq9o 2 года назад

      У меня тут тоже визуальный оргазм хотя и не питонист, в java 17 так же ввели pattern matching, не заметил релиза но тут автор подсказал :)

  • @unstope
    @unstope 2 года назад +2

    Ok | Err - это не enum, а discriminated union. Enum - это набор констант все-таки, а тут некоторое дерево подклассов. В некоторых языках он встроен, в некоторых (в Котлине, например) его можно сделать на базе sealed классов. В Питоне же только сымитировать (нет механизма, позволяющего статически проверить, все ли случаи покрыты pattern matching'ом).

    • @t0digital
      @t0digital  2 года назад

      Я и не называю это enum, конечно, это не enum. Это некоторый аналог растовского енама для демонстрации идеи на питон коде.

  • @valter7331
    @valter7331 Год назад

    8:43 isinstance(user_input,list) сработает только если на вход лист, а не любой iterable

  • @bonafilmo
    @bonafilmo 2 года назад

    Когда начинал изучать Rust мне там очень понравился именно Pattern matching.
    Я тогда подумал - как жалко что в такого нет в Python.
    Но, интересен ещё вопрос, как использование Pattern matching в Python 3.10 сказывается на скорости исполнения кода?
    Понятно, что Pattern matching упрощает написание и чтение кода, но хочется понять как это реализуется на низком уровне и как влияет на скорость исполнения кода в сравнении с алтернативными вариантами.
    Это может быть интересно ещё и по тому, что, насколько я знаю, часто при добавлении новых возможностей (например в язык программирования), в первых версиях разработчики концентрируются на стабильности, а не на скорости реализации, и в дальнейших версиях продукта начинают постепенную оптимизацию по скорости. (Например, такой подход применяется разработчиками того же Rust).

  • @exorciste2007
    @exorciste2007 2 года назад +12

    Огненно!🔥
    То чувство, когда в твоей компании все еще python3.7, просто потому шта некогда обновиться и всякие дикие либы посыпятся😔

  • @dimakof
    @dimakof 2 года назад +1

    спасибо

  • @jvpt8285
    @jvpt8285 2 года назад +1

    какой же хороший канал

  • @zymanch
    @zymanch 2 года назад

    последний кусок видео отлично подводит к использованию библиотеки dry-python/returns =) знакомы с ней? было бы любопытно послушать мнение

  • @Bupyc2006
    @Bupyc2006 2 года назад

    :) улыбнул в начале с очками...

  • @arucrsov4495
    @arucrsov4495 2 года назад

    0:46, шестой особенно красив)

  • @antonvorobiev9507
    @antonvorobiev9507 2 года назад

    Бро, что с тобой? Сильно поправился) Хорош) Я тебя аж не сразу узнал...

    • @t0digital
      @t0digital  2 года назад +1

      Это все очки и подлинневшие волосы)))

  • @user-fx6yu5ss8n
    @user-fx6yu5ss8n 2 года назад +3

    шикарная подача материала, прекрасное качество звука и видео!!!

  • @dmitriyobidin6049
    @dmitriyobidin6049 2 года назад +5

    13:10 Можно тут использовать enum классы вместо явного перечисления? Например, указать просто что мы хотим получить пару case Movement, value:, где Movement это class Movement(Enum): LEFT = 1 RIGHT = 2 TOP = 3 BOTTOM = 4 ?
    p.s. 7:20 Подходил к концу 2021 год, люди использующие интерпретируемые языки с динамической типизацией продолжали для себя переоткрывать плюсы статической типизации :)

    • @user-tu4ze5dc9b
      @user-tu4ze5dc9b 2 года назад +2

      Зачем спрашиваешь если можешь попробовать сам?

    • @cardinalerror1
      @cardinalerror1 2 года назад

      @@user-tu4ze5dc9b для дискуссии. Попробовать самому можно, но хочется и поделиться.

    • @user-tu4ze5dc9b
      @user-tu4ze5dc9b 2 года назад

      @@cardinalerror1 Понял вас ну я тоже часть дискуссии только выходить плохой)

    • @Uni-Coder
      @Uni-Coder 2 года назад

      Вспоминаю фразу [одного случайного мэна] со stackoverflow про интерпретацию/компиляцию/блаблабла.
      "Welcome to the world of computer programming. We decided to make it extremely complicated, then attach non-descriptive names to everything.
      The purpose is to create flamewars over the definition of words which have no practical meaning." (с) John Moser
      "Добро пожаловать в мир компьютерного программирования. Мы сделали его как можно сложнее, а потом дали всем вещам непонятные, не говорящие названия, и всё это лишь для того, чтобы разжечь войны насчет определения тех терминов, которые даже не имеют практической ценности".
      Впрочем, на своём канале обязательно об этом расскажу. Наверное, через несколько месяцев.
      Но насчёт статической/динамической типизации несомненно согласен :)

  • @anton2810
    @anton2810 2 года назад +1

    Замечательно? Замечательно)))
    Спасибо за обзор.

  • @ac130kz
    @ac130kz 2 года назад

    а вот фишка с Result это круто, типа внутреннего не хватает

  • @4arus
    @4arus 2 года назад +4

    Блин... Я нихрена не понимаю в этом, но подача материала заставила меня залипнуть на 33 минуты 👍

    • @t0digital
      @t0digital  2 года назад

      Спасибо:))) Надеюсь, что-то полезного вынесли для себя:)

    • @4arus
      @4arus 2 года назад +1

      @@t0digital Да, давно хочу начать изучать какой нибудь язык программирования. Мозги и желание есть, но никак не могу определиться с чего начать. Больше склоняюсь к языкам С. Так как большее время приходится работать с микроконтроллерами.
      Есть MicroPython, но он ещё не так развит.
      Вам Алексей спасибо. С удовольствием смотрю иногда ваши видео, подписан на ваш канал.
      Вы не хотите сделать курс по изучению Python?
      Я знаю, что у вас есть курс, но это не совсем то.
      Я честно не понимаю, зачем делать платные курсы, ведь их тут же сольют.
      Может сделать новый канал и включить донат. Я знаю, что все привыкли к халяве и я в том числе.
      Но если мне помогает это и нравится, то я с удовольствием помогаю "поддержать штаны".
      В общем: желаю вам всех благополучий, здоровья и конечно много подписчиков, коим являюсь и я.

  • @user-oh8oq4oz7d
    @user-oh8oq4oz7d 2 года назад

    Каждый день выходит, не успеваю обновлять

  • @Lov3Catch
    @Lov3Catch 2 года назад

    Расскажи плс какие языки еще щупал и что взял бы на замену пайтона? В качестве ЯП общего назначения.
    Спасибо

    • @t0digital
      @t0digital  2 года назад +1

      Да питон в общем-то ЯП как раз общего назначения. JS в какой-то степени им стал. PHP так и остался в вебе. Я не ищу именно замену питону, хочу просто добавить один быстрый язык в свою базу. Скорее всего им станет Rust

  • @valarg5756
    @valarg5756 2 года назад

    Спасибо, очень интересно. Очки тебе идут, похож на ленивого котана)

  • @user-db8ny4nk8l
    @user-db8ny4nk8l 2 года назад

    Хороший ролик) Скажите, пожалуйста, а как вы запускаете скрипт через вим?

    • @t0digital
      @t0digital  2 года назад +1

      сейчас висит на CTRL+R, но перевешу на какое-то другое сочетание. Сейчас так:
      autocmd FileType python map :w:exec '!python3' shellescape(@%, 1)
      autocmd FileType python imap :w:exec '!python3' shellescape(@%, 1)

  • @Morhunov
    @Morhunov 2 года назад

    Алексей, упустил комментарий Ваш в обсуждениях. Спрошу здесь.
    Очень интересно: какую прикладную задачу Вы хотите решить с помощью Rust lang?
    (Меня впечатлил доклад Александра Сербула из Битрикс про push-уведомления.
    Когда они с помощью смены языка программирования заменили 8 мощных железяк на всего 1. И, как я понял, менее мощную чем были раньше.
    Более того, больше к коду не возвращались и работает как часы.)

    • @t0digital
      @t0digital  2 года назад

      Да, видел этот доклад. У нас тоже есть ряд задач, которые хочется решить - ускорить работу API и сократить расходы на железо. Большинство веб-приложений не имеет такой уж сложной логики, которую сложно переписать на другой язык. Вся логика там достать данные из БД или кеша, малость пересобрать их и отдать результат. А если так, то почему бы те места, в которых важна скорость и которые жрут много железок, не переписать на Rust, тем самым решив свои задачи. Да, погружение в язык дольше, чем в скриптовые, это понятно, но результат себя должен оправдать.

  • @maksim-surov
    @maksim-surov Год назад

    Не хватает ещё when конструкции из Эрланга. Очень удобная.

  • @MechanicalFreaks
    @MechanicalFreaks Год назад

    >> такие фп с паттерн-матчингом как scala, erlang и rust
    haskell и ocaml как ярчайших представителей типизированных ФЯ с паттерн-матчингом стоило в первую очередь упомянуть, ну уж никак не скалу и эрланг

  • @kalashnikovsystem
    @kalashnikovsystem 2 года назад +32

    Хотел спросить ещё с прошлого видоса, а что с Go и откуда появился Rust в твоём скилсете

    • @nitroflap
      @nitroflap 2 года назад +1

      Такой же вопрос если честно

  • @couragic
    @couragic 2 года назад

    2:35 новый синтаксис для union утащили из Typescript похоже

  • @user-iw3mz9rv3t
    @user-iw3mz9rv3t 2 года назад +1

    "ЭТО НЕ ТО, ЭТО ДРУГОЕ"
    @
    ...
    @
    ТО
    Имею в виду, что приблизительно похожее - "switch true", просто здесь свитчится не тру, а отсутствие/наличие эксепшона

  • @AlexandrSpirit
    @AlexandrSpirit 2 года назад

    Отлично. Осталось дождаться подтверждения что FastAPI работает на 3.10
    И можно переписать if else

  • @sidorovich21101986
    @sidorovich21101986 2 года назад +2

    Наконец-то дождались! В сраном PHP всё это появилось уже давно, причём входные типы не нужно проверять - они проверяются в ходе выполнения программы. Проверка входных типов в python - это убогий костыль.

    • @t0digital
      @t0digital  2 года назад

      Речь о том, что указанные типы в пхп проверяются интерпретатором?

    • @sidorovich21101986
      @sidorovich21101986 2 года назад

      @@t0digital Да

  • @doomymax577
    @doomymax577 2 года назад

    Лех давай курс по виму сделай, очень хочется его от тебя увидеть

  • @viacheslav90
    @viacheslav90 2 года назад +1

    PHP год назад для 8 версии утащил синтаксис аннотаций из Rust , как и оператор match.

    • @indigoram89
      @indigoram89 2 года назад +1

      Пхп тоже молодцом

  • @MrDiamondPavel
    @MrDiamondPavel 2 года назад

    На счет тайпингов, мидл пайтона тут:
    Передавать в функцию с типизацией значение, которое не соответствует запрашиваемому типу это плохой тон, и делая так нужно понимать, что может произойти что угодно. Так что, как минимум в моих последних двух компаниях, делать дополнительные проверки в рантайме на тип не нужно. Опять же, может быть на просто list, который можно проверить в isinstance, а может быть что-то вроде dict[str, list[dict[int, int]]] и проверять весь этот объект на правильность типа - может быть очень затратной задачей.

    • @t0digital
      @t0digital  2 года назад

      mypy обычно настраивают для проверки корректности использования типов и встраивают эту проверку вместе с другими тестами в CI процесс, чтобы быть уверенным, что этим «плохим тоном» никто не пользуется. Проверки в рантайме затратны, да, а при подготовке билда отдельным инструментом - норм:)

  • @im_a_hater
    @im_a_hater 2 года назад +1

    Хороший компилятор и синтаксисы интересные

  • @rusonya
    @rusonya 2 года назад +1

    крутое видео

  • @dmb0709
    @dmb0709 2 года назад +3

    Спасибо, а то нормальных обзоров ещё нет, а на термуксе сегодня прилетел 3.10.

    • @dmb0709
      @dmb0709 2 года назад

      @Pathetic {ОЧП} возможно. Но с моим английским я там на половину дня зависнуть могу, и не пойму половину. А автоперевод можно не предлагать.

  • @KirillKlenov
    @KirillKlenov 2 года назад +1

    Полезное видео, спасибо! Поделись конфигом nvim :)

    • @KirillKlenov
      @KirillKlenov 2 года назад

      Всё сорян, увидел предыдущее видео.

  • @user-hz5gw1tj3r
    @user-hz5gw1tj3r 2 года назад

    на каком моменте в видео ты сравнивал pattern matching and switch case?

    • @t0digital
      @t0digital  2 года назад

      Сравнения не было

  • @ananasios
    @ananasios 2 года назад

    Дядичка подскажи как грамотно настроить zsh чтобы подсветка автодополнение и прочее было ?

    • @t0digital
      @t0digital  2 года назад

      Если уверены, что вопрос по zsh, то вам нужен плагин oh-my-zsh.
      Если вопрос про nvim - см предыдущее видео на канале, там полная настройка показана.

  • @olegmlavets5216
    @olegmlavets5216 2 года назад +1

    Привет, что вообще думаешь про цель питона через 4-5 версий достичь x5 ускорения?)

    • @t0digital
      @t0digital  2 года назад

      Привет, а где такая цель озвучена/поставлена? Я не слышал

    • @joly3122
      @joly3122 2 года назад

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

    • @t0digital
      @t0digital  2 года назад +1

      @UCeGW91LTIfdSemh6OSKiOBw ютуб твою ссылку почикал, вот она, надеюсь мой коммент не почикает:)
      github.com/markshannon/faster-cpython/blob/master/plan.md
      Спасибо! Наполеоновские планы. Но в 5 раз - не верю:) Питон по моим тестам самый медленный из троицы php/js/python, отстает сильно, но не в 5 раз. Вот прям с последнего места на первое - ну не уверен. Если честно, я и не уверен, что это прям настолько важная задача ускорять питон. Он скриптовый, он выше своей скриптовой головы не прыгнет всё равно, ну станет чуть быстрее, ну сравняется с условным php, мир от этого не перевернётся.

    • @olegmlavets5216
      @olegmlavets5216 2 года назад +2

      @@t0digital Самому мало вериться, ну и тоже считаю что в питоне скорость не главное. Но если JS c его то слабой типизацией и костылями смог в скорость то надеюсь и у питончика получиться :)

  • @user-ep3or2eg1j
    @user-ep3or2eg1j 2 года назад

    Ржу с динамической типизации питона, ведь по итогу ты все равно для устойчивого кода расставляешь линты и проверяешь является ли обьект тем самым типом, что тебе нужен. (классный язык, но дырявый)
    Еще прям ооочень хочу тайп линты на самого себя!
    ну когда тип может возвращать из метода обьект своего типа

    • @Eugensson
      @Eugensson 2 года назад

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

  • @a43b541d
    @a43b541d 2 года назад

    Привет))) твоё обращение "здорово, котаны" что значит?

  • @fantastickck
    @fantastickck 2 года назад

    psycopg2-binary Нормально используете?

  • @GladSpiR
    @GladSpiR 2 года назад

    я правильно понимаю что в питоне нет возможности явно указать тип принимаемых данных переменной или его приведение
    function ([int]$q, [sting]$b) { foo ; bar ; return [uint64] bazz; }
    ?

    • @t0digital
      @t0digital  2 года назад +1

      В питоне есть только подсказки типов. Подсказки не проверяются интерпретатором. Они для читающего код разработчика, а также для IDE и систем анализа кода вроде mypy.

  • @Mytest437
    @Mytest437 2 года назад +2

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

  • @DanilLukyanenko-qc8sf
    @DanilLukyanenko-qc8sf 2 года назад

    Магия с типами чем-то напоминает синтаксис больше TypeScript ;D

  • @ClosiusBeg
    @ClosiusBeg 2 года назад

    А сравнения по производительности есть?

  • @eamarc
    @eamarc 2 года назад +1

    Нужно больше Rust'а 😊

  • @amigo4884
    @amigo4884 2 года назад +85

    Я думаю, что строку "Явное лучше неявного" можно смело вычёркивать из дзена пайтон.

    • @v01d_yt
      @v01d_yt 2 года назад +4

      If the implementation is hard to explain, it's a bad idea.

    • @Nabokka
      @Nabokka 2 года назад

      А где конкретно эта строка была послана к чëрту?

    • @qwerty2609
      @qwerty2609 2 года назад +1

      Это дзен писался ещё для 2го питонп

    • @_4ado
      @_4ado 2 года назад +12

      Эмм, а что тут неявного? По-моему, все супер очевидно и этого давно не хватало. Намного лучше, чем непонятные схемы зефирок или пидантика костылить или вермишель из isinstance городить для элементарных проверок уровня "Тут число или строка?"

    • @daniilpopkov4176
      @daniilpopkov4176 2 года назад

      @@_4ado чем зефирка то не устроила?))

  • @user-jn4cq9dy3f
    @user-jn4cq9dy3f 2 года назад

    Интересно... Куда к своим проектам паттерн матчинг прикрутить я уже буквально вижу. Если руки и голова до рефакторинга дойдут... Хоть и сахарок, но в данном случае - полезный! ;) Более конкретное указание на место ошибки тоже однозначно облегчит жизнь. Ну а на счёт исключений - предусмотреть всё невозможно без влияния на производительность. Тут некоторый баланс, на мой взгляд, нужен. Впрочем, если мне доведётся что-то на rust писать, тогда, может быть, точка зрения несколько изменится...

  • @zzshek
    @zzshek 2 года назад +1

    Алексей, а есть курс как научиться работать в виме также как вы?

    • @wickeddubz
      @wickeddubz 2 года назад

      А зачем? Просто выберите редактор, который вам удобен.

  • @feoktant
    @feoktant 2 года назад +1

    Как скалист, радуюсь, что в языки завозят фп фичи) рад за питонистов, посмотрим как приживется

    • @ValeryKhamenya
      @ValeryKhamenya 2 года назад

      Да, pattern matching существует в Clean, в Haskell и прочих уже почти полвека

  • @VLS_NL
    @VLS_NL 2 года назад

    а что творится с pypi? через pip практически ничего не могу установить? вернее очень долго все происходит?

  • @daniil-shamraev
    @daniil-shamraev 2 года назад +1

    Будут ли ещё разборы Open Source библиотек или какие-нибудь разборы кода Senior разработчиков?

    • @t0digital
      @t0digital  2 года назад

      Разбор опен сорса будет. Какие либо было бы интересно посмотреть?

    • @ssatskov
      @ssatskov 2 года назад +1

      @@t0digital привет! было бы интересно что-нибудь трендовое, по типу aiohttp или sanic

    • @user-xt6si6ve4v
      @user-xt6si6ve4v 2 года назад +1

      @@t0digital было бы здорово сделать разбор coconut или hylang

    • @t0digital
      @t0digital  2 года назад

      @@ssatskov ой, aiohttp сразу в пень, ноль желания в нём ковыряться:) sanic можно

    • @t0digital
      @t0digital  2 года назад

      @@user-xt6si6ve4v спасибо!

  • @doniyordjon_pro
    @doniyordjon_pro 10 месяцев назад

    Про то что Quit, -- это распаковка как найти эту тему по подробнее

  • @joly3122
    @joly3122 2 года назад +8

    Rust + python = good toolkit

  • @jamalzeynalov2196
    @jamalzeynalov2196 2 года назад

    Я под бокальчик вина прекрасно провёл 33 минуты)))
    Вовремя выпуск вышел 😋

    • @t0digital
      @t0digital  2 года назад

      Хахахах:) отлично!

  • @Johniooooo
    @Johniooooo 2 года назад

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

    • @t0digital
      @t0digital  2 года назад

      знаю, что есть такие инструменты, но мне удобнее для этого браузер