Если что, слайды с презентации этого PEP можно найти в посте в блоге PSF: https://pyfound.blogspot.com/2021/05/the-2021-python-language-summit-pep-654.html
В мире браузерных языков транспиляция является очень распространенным явлением. Это довольно полезное действие, которое переводит код программы с одного языка на другой (зачастую, в JavaScript). Существуют множество языков, для которых единственным способом запуска является транспиляция в JavaScript. А еще часто код с более новых версий JS переводят в более старые, чтобы поддержать как можно больше браузеров.
В мире Python особой нужды в транспиляции нет, но, тем не менее, существуют проекты, которые её используют. Например, Coconut — надмножество языка Python, расширенное в сторону поддержки функционального программирования. Пишешь код на Coconut с красивыми лямбдами, пайплайнами и паттерн-матчингом, затем он транспилируется в обычный код на Python и запускается дальше как обычно. Код в итоге получается очень похожим на Haskell.
Вот что умеет Coconut по сравнению с Python:
* пайплайны (это когда результат работы предыдущей функции передаётся в следующую по цепочке) при помощи оператора
* сокращенный синтаксис для лямбда-функций;
* частичное применение функций;
* паттерн-матчинг (не совсем такой, как будет в 3.10, но он тоже поддерживается);
* присваивания с распаковками;
* расширенный синтаксис для тайп-аннотаций, интеграция с
* и многое другое (см. список на сайте проекта).
Даже если вы не собираетесь использовать функциональные расширения языка, можно просто писать код на обычном Python 3, а Coconut затем сделает ваш код универсальным, т.е. обеспечит его работу на предыдущих версиях языка, в том числе и на Python 2 (надеюсь, вы уже давно его не используете).
Это офигенно! Определенно стоит того, чтобы поиграться.
Узнал про Coconut вот из этой статьи на Хабре.
В мире Python особой нужды в транспиляции нет, но, тем не менее, существуют проекты, которые её используют. Например, Coconut — надмножество языка Python, расширенное в сторону поддержки функционального программирования. Пишешь код на Coconut с красивыми лямбдами, пайплайнами и паттерн-матчингом, затем он транспилируется в обычный код на Python и запускается дальше как обычно. Код в итоге получается очень похожим на Haskell.
Вот что умеет Coconut по сравнению с Python:
* пайплайны (это когда результат работы предыдущей функции передаётся в следующую по цепочке) при помощи оператора
|>
;* сокращенный синтаксис для лямбда-функций;
* частичное применение функций;
* паттерн-матчинг (не совсем такой, как будет в 3.10, но он тоже поддерживается);
* присваивания с распаковками;
* расширенный синтаксис для тайп-аннотаций, интеграция с
mypy
;* и многое другое (см. список на сайте проекта).
Даже если вы не собираетесь использовать функциональные расширения языка, можно просто писать код на обычном Python 3, а Coconut затем сделает ваш код универсальным, т.е. обеспечит его работу на предыдущих версиях языка, в том числе и на Python 2 (надеюсь, вы уже давно его не используете).
Это офигенно! Определенно стоит того, чтобы поиграться.
Узнал про Coconut вот из этой статьи на Хабре.
coconut-lang.org
Coconut Programming Language
Simple, elegant, Pythonic functional programming.
Известно ли вам про какие-нибудь другие языки, которые компилируются/транспилируются в Python?
Забавная статья, много безумных внутрянок питона затронуто. Сеттинг вот такой:
"Сложить два целых числа (от 1 до 99) без использования оператора 'плюс'. Дайте пять разных ответов"
https://habr.com/ru/post/555488/
"Сложить два целых числа (от 1 до 99) без использования оператора 'плюс'. Дайте пять разных ответов"
https://habr.com/ru/post/555488/
Хабр
Если у вас нет плюсов
Мой друг Алексей ищет работу и ходит на собеседования. После которых интересуется, как бы я ответил на некоторые из заданных вопросов. Отвечая на один такой вопрос, я слегка увлёкся, и материала...
Факт дня сомнительной полезности
А знали ли вы, что Hello World — программу, выводящую два этих слова — на Python можно записать в два слова?
Удачного дня сомнительной полезности!
А знали ли вы, что Hello World — программу, выводящую два этих слова — на Python можно записать в два слова?
>>> import __hello__Поздравляю, теперь вы профессиональный хелловорлд-разработчик! Идиоматично, кратко, лаконично, красиво! Обязательно щегольните этим скиллом на собеседовании или удивите коллег.
Hello world!
Удачного дня сомнительной полезности!
Кстати, неделю назад открылся ежегодный опросник за 2021 год от StackOverflow! Я уже сдал про себя всю подноготную. Предлагаю и вам пойти сделать то же самое. Через несколько месяцев, надеюсь, получим какие-нибудь интересные результаты. Каждый год их жду.
Пост в блоге StackOverflow: https://stackoverflow.blog/2021/05/25/the-2021-developer-survey-is-now-open/
Ссылка на опросник: https://stackoverflow.az1.qualtrics.com/jfe/form/SV_7arimtzVFf8ipfM?utm_source=twitter&utm_medium=social&utm_campaign=dev-survey-2021&utm_content=post-1
Пост в блоге StackOverflow: https://stackoverflow.blog/2021/05/25/the-2021-developer-survey-is-now-open/
Ссылка на опросник: https://stackoverflow.az1.qualtrics.com/jfe/form/SV_7arimtzVFf8ipfM?utm_source=twitter&utm_medium=social&utm_campaign=dev-survey-2021&utm_content=post-1
Stack Overflow Blog
The 2021 Developer Survey is now open!
The 2021 Developer Survey is ready for your input.
Записи выступлений с PyCon US 2021 выложили.
https://youtube.com/playlist?list=PL2Uw4_HvXqvYk1Y5P8kryoyd83L_0Uk5K
https://youtube.com/playlist?list=PL2Uw4_HvXqvYk1Y5P8kryoyd83L_0Uk5K
YouTube
PyCon US 2021
Share your videos with friends, family, and the world
Вопрос-поднаброс. А сможете ли без Википедии объяснить разницу между компилируемыми и интерпретируемыми языками?
Например, посмотрим как работает Java с высоты птичьего полёта. Исходный код на Java преобразуется в некое промежуточное представление (байткод), а затем некая виртуальная машина (JVM) выполняет этот байткод, преобразуя его в настоящие машинные инструкции.
А теперь с высоты птичьего помёта посмотрим как работает Python (конкретнее, CPython). Исходный код на Python преобразуется в некое промежуточное представление (байткод), а затем некая виртуальная машина (PVM) выполняет этот байткод, преобразуя его в настоящие машинные инструкции.
Если принцип один и тот же, то почему Java — компилируемый, а Python — интерпретируемый?
Например, посмотрим как работает Java с высоты птичьего полёта. Исходный код на Java преобразуется в некое промежуточное представление (байткод), а затем некая виртуальная машина (JVM) выполняет этот байткод, преобразуя его в настоящие машинные инструкции.
А теперь с высоты птичьего помёта посмотрим как работает Python (конкретнее, CPython). Исходный код на Python преобразуется в некое промежуточное представление (байткод), а затем некая виртуальная машина (PVM) выполняет этот байткод, преобразуя его в настоящие машинные инструкции.
Если принцип один и тот же, то почему Java — компилируемый, а Python — интерпретируемый?
Интересный и забавный пост, где некий сеньёр-разработчик под винцо подытоживает уроки, полученные за 10 лет карьеры в IT.
https://www.reddit.com/r/ExperiencedDevs/comments/nmodyl/drunk_post_things_ive_learned_as_a_sr_engineer/
https://www.reddit.com/r/ExperiencedDevs/comments/nmodyl/drunk_post_things_ive_learned_as_a_sr_engineer/
Reddit
From the ExperiencedDevs community on Reddit
Explore this post and more from the ExperiencedDevs community
Как же приятно наблюдать за настоящим профессионалом за работой. Тоже иногда хочется взять и распечатать на принтере весь проект на 20к строк в виде скриншотов IDE с тёмной темой.
Кстати, вроде похоже на питон, да ведь?
via Reddit
Кстати, вроде похоже на питон, да ведь?
via Reddit
Чему Мстители могут научить нас о Git?
Интересная статья, где сюжетные повороты с путешествиями во времени из Мстителей объясняются с точки зрения Git. Содержит спойлеры!
https://ljvmiranda921.github.io/notebook/2021/06/05/avengers-git/
#git
Интересная статья, где сюжетные повороты с путешествиями во времени из Мстителей объясняются с точки зрения Git. Содержит спойлеры!
https://ljvmiranda921.github.io/notebook/2021/06/05/avengers-git/
#git
ljvmiranda921.github.io
What can Avengers: Endgame teach us about Git?
Avengers and Git? The most ambitious crossover event in history. In this blog post, I will explain crucial plot points in Avengers: Endgame in five Git conce...
Интересное интервью с Гвидо ван Россумом, на основе которого в последнее время порождается много новостей в инфополе вокруг Python.
Мне в целом понравилось, но можете не смотреть, потому что вот ключевые моменты:
* Во время работы над ОС Amoeba Гвидо столкнулся с непреодолимой прокрастинацией, потому что приходилось писать много кода на C и шелл-скриптах. Так и появился Python, какое-то время он применялся в разработке этой ОС, но в итоге она загнулась, а Python внезапно обрёл популярность.
* Код с
* Гвидо никогда не увлекался ФП.
* Генераторы и list comprehensions сильно поменяли язык, дали ещё один толчок к росту популярности в Python.
* Некоторые идеи в плане типизации Python тащит из TypeScript, потому что языки в некотором смысле похожи.
* Гвидо не слишком оптимистичен по поводу запуска Python в браузере или на смартфонах. Слишком другое окружение, а язык изначально рассчитан для работы на мейнфреймах/ПК.
* Скорее всего Python 4.0 никогда не наступит, если только не случится какое-то фатально ломающее изменение (например, на уровне совместимости с нативными расширениями, изменение механизмов работы сборщика мусора или выпиливание GIL), чего разработчики сильно стараются избегать. Переход со второй на третью версию был слишком болезненным.
* Гвидо предполагает, что под-интерпретаторы (sub-interpreters) помогут решить проблему GIL. Его не придётся удалять, но мешать он больше не будет.
* Гвидо любит кататься на велосипеде, но не больше пары часов за заезд.
Прикольно, что у Гвидо очень понятный акцент. Возможно, это потому что английский — не его родной язык?
https://www.youtube.com/watch?v=aYbNh3NS7jA
#конспект
Мне в целом понравилось, но можете не смотреть, потому что вот ключевые моменты:
* Во время работы над ОС Amoeba Гвидо столкнулся с непреодолимой прокрастинацией, потому что приходилось писать много кода на C и шелл-скриптах. Так и появился Python, какое-то время он применялся в разработке этой ОС, но в итоге она загнулась, а Python внезапно обрёл популярность.
* Код с
reduce()
сложно понимать, поэтому Гвидо убрал эту функцию из built-ins. map()
и filter()
— норм, но в языке есть для них более приятные альтернативы.* Гвидо никогда не увлекался ФП.
* Генераторы и list comprehensions сильно поменяли язык, дали ещё один толчок к росту популярности в Python.
* Некоторые идеи в плане типизации Python тащит из TypeScript, потому что языки в некотором смысле похожи.
* Гвидо не слишком оптимистичен по поводу запуска Python в браузере или на смартфонах. Слишком другое окружение, а язык изначально рассчитан для работы на мейнфреймах/ПК.
* Скорее всего Python 4.0 никогда не наступит, если только не случится какое-то фатально ломающее изменение (например, на уровне совместимости с нативными расширениями, изменение механизмов работы сборщика мусора или выпиливание GIL), чего разработчики сильно стараются избегать. Переход со второй на третью версию был слишком болезненным.
* Гвидо предполагает, что под-интерпретаторы (sub-interpreters) помогут решить проблему GIL. Его не придётся удалять, но мешать он больше не будет.
* Гвидо любит кататься на велосипеде, но не больше пары часов за заезд.
Прикольно, что у Гвидо очень понятный акцент. Возможно, это потому что английский — не его родной язык?
https://www.youtube.com/watch?v=aYbNh3NS7jA
#конспект
YouTube
Q&A with Guido van Rossum, Inventor of Python
Guido van Rossum is a Dutch programmer best known as the creator of the Python programming language, for which he was the "Benevolent dictator for life" (BDFL) . Come join us for an open Q/A "Ask me Anything" to get to know how PyCon was born and Guido's…
Результаты опроса аудитории Telegram от TGStat за 2021 подъехали.
https://tgstat.ru/research-2021
Типичный пользователь телеграма — это мужчина 25-34 лет, проживающий в Москве, айтишник с высшим образованием и зарплатой 16-30 тыс. рублей. Держись, чувак, всё будет хорошо! 💪
https://tgstat.ru/research-2021
Типичный пользователь телеграма — это мужчина 25-34 лет, проживающий в Москве, айтишник с высшим образованием и зарплатой 16-30 тыс. рублей. Держись, чувак, всё будет хорошо! 💪
TGStat.ru
Исследование аудитории Telegram 2021.
Кто же он — пользователь Telegram 2021 года?
Вероятно, во всём виноват Fastly CDN, который испытывает некоторые трудности.
https://techcrunch.com/2021/06/08/numerous-popular-websites-are-facing-an-outage/
https://techcrunch.com/2021/06/08/numerous-popular-websites-are-facing-an-outage/
TechCrunch
Twitch, Pinterest, Reddit and more go down in Fastly CDN outage (Update: Outage resolved after 1 hour)
Countless popular websites including Reddit, Spotify, Twitch, Stack Overflow, GitHub, gov.uk, Hulu, HBO Max, Quora, PayPal, Vimeo, Shopify, Stripe, and news outlets CNN, The Guardian, The New York Times, BBC and Financial Times are currently facing an outage.…
Полезная ссылка для мониторинга ситуации вокруг инфраструктуры Python: https://status.python.org/
Спасибо @zotho!
Спасибо @zotho!
status.python.org
Python Infrastructure Status
Welcome to Python Infrastructure's home for real-time and historical data on system performance.
Forwarded from Python etc
Some operators in Python have special names.
Many Pythonistas know about the notorious "walrus" operator (
ones like the diamond operator (
The diamond operator was suggested in PEP 401 as one of
the first actions of the new leader of the language Barry Warsaw after Guido went climbing Mount Everest.
Luckily, it was just an April Fool joke and the operator was never really a part of the language.
Yet, it's still available but hidden behind the "import from future" flag.
Usually you compare for non-equality using
But if you enable the "Barry as FLUFL" feature the behavior changes:
Unfortunately, this easter egg is only working in interactive mode (REPL), but not in usual
By the way, it's interesting that this feature is marked as becoming mandatory in Python 4.0.
Many Pythonistas know about the notorious "walrus" operator (
:=
), but there are less famousones like the diamond operator (
<>
) — it's similar to the "not equals" operator but written in SQL style.The diamond operator was suggested in PEP 401 as one of
the first actions of the new leader of the language Barry Warsaw after Guido went climbing Mount Everest.
Luckily, it was just an April Fool joke and the operator was never really a part of the language.
Yet, it's still available but hidden behind the "import from future" flag.
Usually you compare for non-equality using
!=
:>>> "bdfl" != "flufl"
True
But if you enable the "Barry as FLUFL" feature the behavior changes:
>>> from __future__ import barry_as_FLUFL
>>> "bdfl" != "flufl"
File "<stdin>", line 1
"bdfl" != "flufl"
^
SyntaxError: with Barry as BDFL, use '<>' instead of '!='
>>> "bdfl" <> "flufl"
True
Unfortunately, this easter egg is only working in interactive mode (REPL), but not in usual
*.py
scripts.By the way, it's interesting that this feature is marked as becoming mandatory in Python 4.0.