This media is not supported in your browser
VIEW IN TELEGRAM
Новый Function (fxn) — фреймворк, который компилирует Python-функции в нативный код с производительностью, сравнимой с Rust.
🧠 Как это работает?
- Использует символическое трассирование на CPython для анализа функций
- Генерирует промежуточное представление (IR)
- Транслирует IR в C++ или Rust, а затем компилирует в бинарный код
- Поддерживает платформы: Linux, Android, WebAssembly и др.
📦 Пример:
@compile
def fma(x: float, y: float, z: float) -> float:
return x * y + z
После компиляции вы получаете нативный бинарник, который можно запускать без интерпретатора Python.
🔗 Подробнее
🔗 Github
@pythonl
#Python #Rust #fxn #Compiler #Performance #AI #ML #Wasm
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍7🔥7
⚡️ Rust vs Python - как найти баланс между скоростью и простотой
JetBrains выпустили подробный разбор, где сравнивают Python и Rust без фанатизма — по скорости, синтаксису, памяти, экосистеме, конкурентности и даже по карьерным сценариям.
Главный вывод: Python нужен там, где важна скорость разработки и богатая экосистема, Rust, когда критична производительность, безопасность и масштабируемость. Всё чаще их используют вместе: Python для логики, Rust для самых горячих участков.
Ключевые моменты
Рост и популярность
- Python уверенно расширяет аудиторию: быстрый вход, огромная экосистема, удобство для ML, веба и автоматизации.
- Rust годами остаётся самым любимым языком разработчиков — благодаря безопасности памяти, скорости и надёжности.
Типы и управление памятью
- Python — динамическая типизация и удобный GC: легко начать, но ошибки всплывают в рантайме.
- Rust — строгая типизация, система владения и заимствований, отсутствие GC: ошибки ловятся на этапе компиляции, производительность предсказуема.
Производительность и конкурентность
- Python ограничен GIL: хорош для I/O, но CPU-параллелизм требует multiprocessing или расширений.
- Rust не имеет GIL — настоящая параллельность, «бесстрашная» конкурентность и контроль безопасности компилятором.
Экосистема
- Python — PyPI, Jupyter, зрелые фреймворки для DS/ML, веба, автоматизации.
- Rust — Cargo и crates.io, сильная база для CLI, системного софта, WebAssembly.
Комбинация Python + Rust
- Тренд — ускорять Python-проекты Rust-модулями.
- Библиотеки типа pydantic-core или Ruff показывают огромный прирост скорости.
- PyO3 делает интеграцию очень простой: Rust-код можно вызывать как обычный Python-модуль.
Карьера
- Python - широкие вакансии, огромный спрос в данных и ML.
- Rust - меньше позиций, но выше специализация в инфраструктуре, системной разработке и высоконагруженных сервисах.
Как выбирать
- Нужна скорость разработки и гибкость — Python.
- Нужна производительность и надёжность — Rust.
- Нужны и то, и другое — гибридный подход Python + Rust.
Подробный разбор - в блоге JetBrains:
https://blog.jetbrains.com/rust/2025/11/10/rust-vs-python-finding-the-right-balance-between-speed-and-simplicity/
#Rust #Python #Programming #Backend #Performance
@pythonl
JetBrains выпустили подробный разбор, где сравнивают Python и Rust без фанатизма — по скорости, синтаксису, памяти, экосистеме, конкурентности и даже по карьерным сценариям.
Главный вывод: Python нужен там, где важна скорость разработки и богатая экосистема, Rust, когда критична производительность, безопасность и масштабируемость. Всё чаще их используют вместе: Python для логики, Rust для самых горячих участков.
Ключевые моменты
Рост и популярность
- Python уверенно расширяет аудиторию: быстрый вход, огромная экосистема, удобство для ML, веба и автоматизации.
- Rust годами остаётся самым любимым языком разработчиков — благодаря безопасности памяти, скорости и надёжности.
Типы и управление памятью
- Python — динамическая типизация и удобный GC: легко начать, но ошибки всплывают в рантайме.
- Rust — строгая типизация, система владения и заимствований, отсутствие GC: ошибки ловятся на этапе компиляции, производительность предсказуема.
Производительность и конкурентность
- Python ограничен GIL: хорош для I/O, но CPU-параллелизм требует multiprocessing или расширений.
- Rust не имеет GIL — настоящая параллельность, «бесстрашная» конкурентность и контроль безопасности компилятором.
Экосистема
- Python — PyPI, Jupyter, зрелые фреймворки для DS/ML, веба, автоматизации.
- Rust — Cargo и crates.io, сильная база для CLI, системного софта, WebAssembly.
Комбинация Python + Rust
- Тренд — ускорять Python-проекты Rust-модулями.
- Библиотеки типа pydantic-core или Ruff показывают огромный прирост скорости.
- PyO3 делает интеграцию очень простой: Rust-код можно вызывать как обычный Python-модуль.
Карьера
- Python - широкие вакансии, огромный спрос в данных и ML.
- Rust - меньше позиций, но выше специализация в инфраструктуре, системной разработке и высоконагруженных сервисах.
Как выбирать
- Нужна скорость разработки и гибкость — Python.
- Нужна производительность и надёжность — Rust.
- Нужны и то, и другое — гибридный подход Python + Rust.
Подробный разбор - в блоге JetBrains:
https://blog.jetbrains.com/rust/2025/11/10/rust-vs-python-finding-the-right-balance-between-speed-and-simplicity/
#Rust #Python #Programming #Backend #Performance
@pythonl
❤24👍12😁3🔥2
XY - новая open-source библиотека визуализации от команды Reflex. Она пытается объединить удобство Matplotlib с интерактивностью браузерных графиков и производительностью Rust.
Для больших датасетов Rust-ядро XY вычисляет только то, что реально можно показать при текущем разрешении экрана. При приближении данные уточняются и появляются исходные точки.
Есть даже совместимость с привычным стилем Matplotlib:
По собственному бенчмарку разработчиков на Apple M5 Pro:
- 100 млн точек в density-режиме - ~0,081 с;
- 100 млн реальных маркеров без агрегации - ~1,34 с;
- библиотека уже использовалась для визуализации датасета OpenStreetMap примерно на 10 млрд точек.
Под капотом:
Графики интерактивные: pan, zoom, hover, selection и linked charts. Их можно использовать в Jupyter и веб-приложениях, а затем экспортировать в HTML, PNG, SVG или PDF.
Установка:
Если подход оправдает себя, XY может стать интересной альтернативой связке Matplotlib + Plotly для действительно больших датасетов.
Источник:
https://github.com/reflex-dev/xy
#Python #DataScience #Visualization #Rust
Для больших датасетов Rust-ядро XY вычисляет только то, что реально можно показать при текущем разрешении экрана. При приближении данные уточняются и появляются исходные точки.
import xy
chart = xy.line_chart(
xy.line(
[1, 2, 3, 4, 5],
[120, 180, 165, 240, 310]
)
)
chart
Есть даже совместимость с привычным стилем Matplotlib:
import xy.pyplot as plt
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()
По собственному бенчмарку разработчиков на Apple M5 Pro:
- 100 млн точек в density-режиме - ~0,081 с;
- 100 млн реальных маркеров без агрегации - ~1,34 с;
- библиотека уже использовалась для визуализации датасета OpenStreetMap примерно на 10 млрд точек.
Под капотом:
Python API
↓
ColumnStore
↓
Rust compute
↓
binary buffers
↓
WebGL2 / Canvas
Графики интерактивные: pan, zoom, hover, selection и linked charts. Их можно использовать в Jupyter и веб-приложениях, а затем экспортировать в HTML, PNG, SVG или PDF.
Установка:
pip install xy
Если подход оправдает себя, XY может стать интересной альтернативой связке Matplotlib + Plotly для действительно больших датасетов.
Источник:
https://github.com/reflex-dev/xy
#Python #DataScience #Visualization #Rust
❤5🔥3👍2