Graphite is a free, open source vector and raster graphics editor, available now in alpha. Get creative with a fully nondestructive editing workflow that combines layer-based compositing with node-based generative design.
https://github.com/GraphiteEditor/Graphite
https://github.com/GraphiteEditor/Graphite
Какой язык программирования имеет самый запутанный код? 🤔
Команда TIOBE проанализировала более 8 000 коммерческих проектов и 1,5 млрд строк кода, чтобы выяснить, где цикломатическая сложность (количество возможных путей выполнения функции) выше всего.
📊 Вот результаты:
1️⃣ MATLAB (6.03 пути/функция) — часто используется учёными и инженерами-доменщиками, а не разработчиками, поэтому код выходит менее структурированным.
2️⃣ C (5.74) — ручная обработка ошибок → множество
3️⃣ JavaScript (3.50) — быстрая разработка, постоянно меняющиеся требования и разный уровень фронтенд-разработчиков.
4️⃣ Go (3.39) — идиоматический паттерн обработки ошибок с множеством явных проверок.
5️⃣ Python (2.71) и TypeScript (2.51) — средняя сложность, отражающая гибкий синтаксис и широкий спектр применения.
6️⃣ C++ (2.45), Java (2.24), C# (2.08) — сравнительно ниже благодаря зрелым фичам и структурированным практикам.
7️⃣ Rust (1.32) — самая низкая сложность, подчёркивающая потенциал безопасных и простых решений.
📝 Итог: на сложность влияет не только сам язык, но и опыт разработчиков, культура кодинга и подходы к обработке ошибок.
📌 Подробности
Команда TIOBE проанализировала более 8 000 коммерческих проектов и 1,5 млрд строк кода, чтобы выяснить, где цикломатическая сложность (количество возможных путей выполнения функции) выше всего.
📊 Вот результаты:
1️⃣ MATLAB (6.03 пути/функция) — часто используется учёными и инженерами-доменщиками, а не разработчиками, поэтому код выходит менее структурированным.
2️⃣ C (5.74) — ручная обработка ошибок → множество
if/else
и условий. 3️⃣ JavaScript (3.50) — быстрая разработка, постоянно меняющиеся требования и разный уровень фронтенд-разработчиков.
4️⃣ Go (3.39) — идиоматический паттерн обработки ошибок с множеством явных проверок.
5️⃣ Python (2.71) и TypeScript (2.51) — средняя сложность, отражающая гибкий синтаксис и широкий спектр применения.
6️⃣ C++ (2.45), Java (2.24), C# (2.08) — сравнительно ниже благодаря зрелым фичам и структурированным практикам.
7️⃣ Rust (1.32) — самая низкая сложность, подчёркивающая потенциал безопасных и простых решений.
📝 Итог: на сложность влияет не только сам язык, но и опыт разработчиков, культура кодинга и подходы к обработке ошибок.
📌 Подробности
This media is not supported in your browser
VIEW IN TELEGRAM
🦀 PyApp — новый способ упаковать Python-программы
PyApp написан на Rust и превращает Python-проекты в готовые .exe или бинарники, которые работают без отдельной установки Python.
В отличие от PyInstaller или Nuitka, это не библиотека, а отдельный инструмент:
- для каждого проекта нужна своя сборка;
- зато конфигурация максимально гибкая и можно тонко настроить процесс.
🔗 Репозиторий: https://github.com/ofek/pyapp
PyApp написан на Rust и превращает Python-проекты в готовые .exe или бинарники, которые работают без отдельной установки Python.
В отличие от PyInstaller или Nuitka, это не библиотека, а отдельный инструмент:
- для каждого проекта нужна своя сборка;
- зато конфигурация максимально гибкая и можно тонко настроить процесс.
🔗 Репозиторий: https://github.com/ofek/pyapp
🦀 Rust на каждом GPU? Теперь это реальность
Команда выпустила серьезное обновление: теперь можно писать универсальный GPU-код на Rust, который работает сразу на разных платформах — без ручной настройки под каждую.
📦 Что нового:
— Поддержка *portable shader crates*
— Один и тот же шейдер можно запускать на Vulkan, WebGPU, Metal и даже CUDA
— Расширенный стандартный набор типов и функций
— Интеграция с cargo и spirv-builder стала проще
— Поддержка inline-asm и более точной отладки
💡 Почему это важно:
Раньше GPU-код приходилось писать под каждую платформу отдельно (HLSL, GLSL, CUDA). Теперь можно писать всё на Rust и использовать один и тот же код для разных бэкендов.
Это приближает нас к идее truly portable GPU programming — с безопасностью и удобством Rust.
Команда выпустила серьезное обновление: теперь можно писать универсальный GPU-код на Rust, который работает сразу на разных платформах — без ручной настройки под каждую.
📦 Что нового:
— Поддержка *portable shader crates*
— Один и тот же шейдер можно запускать на Vulkan, WebGPU, Metal и даже CUDA
— Расширенный стандартный набор типов и функций
— Интеграция с cargo и spirv-builder стала проще
— Поддержка inline-asm и более точной отладки
💡 Почему это важно:
Раньше GPU-код приходилось писать под каждую платформу отдельно (HLSL, GLSL, CUDA). Теперь можно писать всё на Rust и использовать один и тот же код для разных бэкендов.
Это приближает нас к идее truly portable GPU programming — с безопасностью и удобством Rust.