Forwarded from opennet.ru
Facebook открыл код Cinder, форка CPython, используемого в Instagram https://opennet.ru/55083/
www.opennet.ru
Facebook открыл код Cinder, форка CPython, используемого в Instagram
Компания Facebook опубликовала исходные тексты проекта Cinder, развивающего ответвление от CPython 3.8.5, основной эталонной реализации языка программирования Python. Cinder применяется в рабочей инфраструктуре Facebook для обеспечения функционирования сервиса…
opennet.ru
Facebook открыл код Cinder, форка CPython, используемого в Instagram https://opennet.ru/55083/
☝️ Это ведь уже не первый форк CPython, где корпорации пытаются допилить его под свои нужды и срезать какие-то неоптимальные углы. Вспомнить хотя бы Pyston от Dropbox, который на разных бенчмарках показывает прирост производительности от 20 до 95% по сравнению с CPython. Хотя полностью они исходники так и не открыли.
Что я могу сказать по этому поводу. Во-первых, мне странно, что если корпорацию не устраивает производительность Python, им проще сделать свой форк интерпретатора, чем переписать свои проекты на более производительные языки (например, Golang). Видимо, у них там прям очень много кода, а горизонтальное масштабирование уже себя исчерпало. Во-вторых, хотя все эти ускоряющие проекты скорее всего обречены умереть в безвестности, хочется надеяться, что ценные идеи оттуда всё-таки постепенно переползут в CPython. Количество экспериментальных форков рано или поздно должно конвертироваться в качество основного проекта.
Кстати, а вы видели вот такой документ? Это план по ускорению CPython от одного из core-контрибьюторов: https://github.com/markshannon/faster-cpython/blob/master/plan.md
Что я могу сказать по этому поводу. Во-первых, мне странно, что если корпорацию не устраивает производительность Python, им проще сделать свой форк интерпретатора, чем переписать свои проекты на более производительные языки (например, Golang). Видимо, у них там прям очень много кода, а горизонтальное масштабирование уже себя исчерпало. Во-вторых, хотя все эти ускоряющие проекты скорее всего обречены умереть в безвестности, хочется надеяться, что ценные идеи оттуда всё-таки постепенно переползут в CPython. Количество экспериментальных форков рано или поздно должно конвертироваться в качество основного проекта.
Кстати, а вы видели вот такой документ? Это план по ускорению CPython от одного из core-контрибьюторов: https://github.com/markshannon/faster-cpython/blob/master/plan.md
GitHub
GitHub - pyston/pyston: (No longer maintained) A faster and highly-compatible implementation of the Python programming language.
(No longer maintained) A faster and highly-compatible implementation of the Python programming language. - pyston/pyston
Стоило только вспомнить про Pyston, как они в тот же день выпускают новый релиз с полностью открытыми исходниками. Заявляют, что можно просто заменить бинарник
https://blog.pyston.org/2021/05/05/pyston-v2-2-faster-and-open-source/
python
на pyston
и получить ускорение на 30%. К сожалению, внесены некоторые низкоуровневые изменения, из-за чего предсобранные пакеты (wheels) для CPython не подойдут, придётся все C/Rust/…-зависимости пересобирать из исходников.https://blog.pyston.org/2021/05/05/pyston-v2-2-faster-and-open-source/
The Pyston Blog
Pyston v2.2: faster and open source
We are proud to announce Pyston v2.2, the latest version of our faster implementation of the Python programming language. This version is significantly faster than previous ones, and importantly is…
А нет ли у вас желания отвлечься от программирования на работе/учебе и ещё немного покодить для себя? Правила игры такие — я придумываю небольшую задачу (возможно даже интересную), мы все её решаем, а затем в процессе культурного перекидывания какашками без правил выясняем, чьё решение самое правильное и красивое. Язык — Python, само собой. Просто интересно понаблюдать за ходом мыслей других людей, как они подходят к решению и какими приёмами пользуются.
Было бы интересно?
Anonymous Poll
50%
Я за любой кипиш
34%
Пожалуй, но сомневаюсь, что найду время
16%
Я больше люблю просто почитать
Интересная и забавная статья про то, почему нативные расширения (это которые написаны на C/Rust/…) для Python иногда работают не так быстро, как мы ожидаем. В конце статьи получилось так, что можно и на чистом Python сделать быстро, если хорошенько разобрать задачу 😅
https://pythonspeed.com/articles/python-extension-performance/
https://pythonspeed.com/articles/python-extension-performance/
Python⇒Speed
The hidden performance overhead of Python C extensions
A compiled language like Rust or C is a lot faster than Python, with some caveats. Learn about the hidden overhead you’ll need to overcome.
Идея ускорения Python и правда как-то очень популярна в последнее время. Может оно всегда так было, а я просто не обращал внимания?
В конце прошлого года вышел .NET5, который теперь кросс-платформенный, полностью открытый и независимый от Microsoft (по крайней мере формально). Да, теперь оно работает не только на Windows. Для справки: наиболее популярными языками для .NET являются C# и F#. Предельно упрощенная схема работы в .NET вот такая:
Есть такой проект —
Звучит невероятно круто, почитайте!
https://tonybaloney.github.io/posts/running-python-on-dotnet-5-with-pyjion.html
#pyjion #jit
В конце прошлого года вышел .NET5, который теперь кросс-платформенный, полностью открытый и независимый от Microsoft (по крайней мере формально). Да, теперь оно работает не только на Windows. Для справки: наиболее популярными языками для .NET являются C# и F#. Предельно упрощенная схема работы в .NET вот такая:
Код на C# -> CIL -> машинный кодCIL — это промежуточное представление, в которое сначала компилируются все .NET-языки. Фишка в том, что .NET умеет оптимизировать этот CIL и компилировать его в машинный код, в том числе и в режиме JIT.
Есть такой проект —
pyjion
— который умеет конвертировать байт-код Python в CIL. Дальше хитрые механизмы .NET оптимизируют код и компилируют его на лету в эффективные машинные инструкции. А самая главная фишка — это не какой-то отдельный интерпретатор, это просто библиотека для ванильного CPython, так что весь ваш код должен работать точно так же. Всё, что нужно сделать — это установить на вашу машину .NET5 и добавить в начало программы (лучше даже до всех импортов) две строчки:import pyjionБабах! Дальше куски вашей программы будут в процессе выполнения компилироваться в машинные инструкции. Первый прогон кода может быть не таким быстрым из-за JIT-компиляции, зато последующие разы должны стать быстрее. На данный момент большого ускорения не обещают, но
pyjion.enable()
pyjion
продолжает обрастать оптимизациями, специфичными для Python-кода, так что со временем получаемый машинный код будет более эффективным.Звучит невероятно круто, почитайте!
https://tonybaloney.github.io/posts/running-python-on-dotnet-5-with-pyjion.html
#pyjion #jit
tonybaloney.github.io
Running Python on .NET 5
An update on the Pyjion project to plug a JIT into CPython using the .NET 5 CLR JIT compiler
Судя по расписанию, на PyCon US, который состоится уже совсем скоро в онлайне, будут выступления как минимум про
Расписание PyCon: https://us.pycon.org/2021/schedule/talks/
Собирается ли кто-нибудь его смотреть? Регистрация платная, если что.
pyjion
(JIT-компилятор на основе .NET5) и Cinder
(форк CPython с оптимизациями, используемый в Instagram). В целом, это объясняет почему такая активность в последнее время. А почему Pyston вышел из анабиоза именно сейчас — загадка. Видимо, просто совпадение.Расписание PyCon: https://us.pycon.org/2021/schedule/talks/
Собирается ли кто-нибудь его смотреть? Регистрация платная, если что.
В репо CPython переименовали главную ветку в
Это переименование затронуло 1,4 тысячи пулл-реквестов и больше 700 форков. В процессе даже немножко сломался GitHub. В итоге инженерам из GitHub пришлось завершить переименование ветки в ручном режиме.
https://github.community/t/renaming-python-master-branch-to-main-1-4k-prs-700-repositories-triggered-server-http-error-500/178090
main
. Не знаю, зачем вам это знание 😅Это переименование затронуло 1,4 тысячи пулл-реквестов и больше 700 форков. В процессе даже немножко сломался GitHub. В итоге инженерам из GitHub пришлось завершить переименование ветки в ручном режиме.
https://github.community/t/renaming-python-master-branch-to-main-1-4k-prs-700-repositories-triggered-server-http-error-500/178090
GitHub Support Community
Renaming Python "master" branch to "main" (1.4k PRs & 700 repositories) triggered server HTTP error 500
Hi, the default “master” branch of the python/cpython project was renamed to “main”. The dialog announced that 1.4k pull requests and 747 repositories will be impacted. A few minutes later, a “main” branch was created, the default remains “master”, and h…
Forwarded from Python etc
Since Python doesn't have a
This is an infinite type and you can't construct in a strictly typed language (and why would you?) because it's unclear how to construct the first instance (thing-in-itself?). For example, in Haskell:
char
type, an element of str
is always str
:'@pythonetc'[0][0][0][0][0]
# '@'
This is an infinite type and you can't construct in a strictly typed language (and why would you?) because it's unclear how to construct the first instance (thing-in-itself?). For example, in Haskell:
Prelude> str = str str
<interactive>:1:7: error:
• Occurs check: cannot construct the infinite type: t1 ~ t -> t1
Выступление пророка нашего Гвидо ван Россума, где он презентует идею тайп-аннотаций на PyCon 2015. Иногда любопытно погрузиться в историю и посмотреть, как оно всё тогда было. Кстати, выступление кроме исторической ценности имеет еще и образовательную — с тех пор не так уж и много поменялось, так что если вам нужно введение в тему, то тоже можно посмотреть.
https://youtu.be/2wDvzy6Hgxg
https://youtu.be/2wDvzy6Hgxg
YouTube
Type Hints - Guido van Rossum - PyCon 2015
Forwarded from Кисель из IT
PyCon 2016, Гвидо еще не знает, как будут объявляться переменные с типами
Спасибо, что выбрали последний вариант, остальное выглядит очень сомнительно
Спасибо, что выбрали последний вариант, остальное выглядит очень сомнительно
Как сообщают в чате, вышел мажорный релиз Flask 2.0 и других связанных с ним библиотек (Werkzeug, Jinja, Click, ItsDangerous).
https://palletsprojects.com/blog/flask-2-0-released/
* Python 2 больше не поддерживается;
* Добавлены тайп-аннотации;
* Можно делать асинхронные обработчики запросов;
* Добавлены удобные декораторы-шорткаты для объявления обработчиков запросов с разными HTTP-методами.
Пора обновляться! Ну, или хотя бы аккуратно начинать задумываться об обновлении.
#flask
https://palletsprojects.com/blog/flask-2-0-released/
* Python 2 больше не поддерживается;
* Добавлены тайп-аннотации;
* Можно делать асинхронные обработчики запросов;
* Добавлены удобные декораторы-шорткаты для объявления обработчиков запросов с разными HTTP-методами.
Пора обновляться! Ну, или хотя бы аккуратно начинать задумываться об обновлении.
#flask
Forwarded from Aleksandr Bukin
🐍 Важные новости!
🏡 Друзья, через 2 недели мы проводим Pytup в онлайне.
⏱ В среду 26 мая в 17:00 Мск обсудим, когда нейросети заменят программистов, какие возможности Python используются в реальном мире чаще всего и как понять, что Поиск работает хорошо.
📆 Участие, как обычно, бесплатное, программа и регистрация на сайте.
🏡 Друзья, через 2 недели мы проводим Pytup в онлайне.
⏱ В среду 26 мая в 17:00 Мск обсудим, когда нейросети заменят программистов, какие возможности Python используются в реальном мире чаще всего и как понять, что Поиск работает хорошо.
📆 Участие, как обычно, бесплатное, программа и регистрация на сайте.
Pytup
Приглашаем Python-разработчиков с любым опытом на Pytup Online 26 мая в 17:00 по Москве.
⚡️Ломающие новости! ⚡️
Вчера на Language Summit, проходящем в рамках PyCon US, стало известно, что Гвидо ван Россум, Марк Шеннон и Эрик Сноу работают фулл-тайм над проектом по ускорению CPython. Спонсирует работу Microsoft.
Работа пока что происходит вот в этой организации на GitHub: https://github.com/faster-cpython/. Там у них есть свой форк CPython.
Кстати, вот здесь лежит презентация Гвидо с этого Language Summit: https://github.com/faster-cpython/ideas/blob/main/FasterCPythonDark.pdf
Вчера на Language Summit, проходящем в рамках PyCon US, стало известно, что Гвидо ван Россум, Марк Шеннон и Эрик Сноу работают фулл-тайм над проектом по ускорению CPython. Спонсирует работу Microsoft.
Работа пока что происходит вот в этой организации на GitHub: https://github.com/faster-cpython/. Там у них есть свой форк CPython.
Кстати, вот здесь лежит презентация Гвидо с этого Language Summit: https://github.com/faster-cpython/ideas/blob/main/FasterCPythonDark.pdf
GitHub
faster-cpython
faster-cpython has 8 repositories available. Follow their code on GitHub.
Я пока только пытаюсь вникнуть, что всё это значит, но первые результаты работы по ускорению CPython уже можно увидеть в PEP 659: https://www.python.org/dev/peps/pep-0659/
Похоже, что в CPython хотят вкрутить какое-то подмножество полноценного JIT-компилятора.
Похоже, что в CPython хотят вкрутить какое-то подмножество полноценного JIT-компилятора.
Python.org
PEP 659 -- Specializing Adaptive Interpreter
The official home of the Python Programming Language