Vitaliy Zarubin | @keygenqt
461 subscribers
1.06K photos
276 videos
3 files
560 links
Привет! Я инженер-программист компании ОМП. За свою карьеру я сменил много платформ и языков, и продолжаю учить новые. На канале рассказываю о своей работе и моих pet-проектах.
Download Telegram
Ну нахер. Отец. Ну ты видел? Видел?

Rust и Koltin WebAssembly. Разница в 4 раза!

🔗 GitCode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥111
Android: Rust (JNI) и Kotlin (JVM). Kotlin в родной среде немного опережает Rust.

🔗 GitCode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍1
Aurora OS: библиотека C на Rust быстрее библиотеки С на Kotlin.

🔗 GitCode
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥132👍2
Хитрый компилятор Rust оптимизировал функцию, а Kotlin не сообразил, где можно схитрить. О чём это нам говорит? О том, что в Rust оптимизация лучше и что тесты нужно подправить и перепроверить. Разрыв остаётся, но уже не такой огромный.

Задача проекта — не проверить, насколько быстрее Rust (всем очевидно, что он быстрее, obviously). Я хочу сравнить Rust и Kotlin в удобстве использования — вот здесь не всё так очевидно. Пока Rust держится молодцом.
👍7🔥2
macOS: Rust (clib) и Kotlin (framework) - 1138ms vs 1288ms.

🔗 GitCode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2
iOS: Rust (clib) и Kotlin (framework) - 1179ms vs 1308ms.

🔗 GitCode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51
Печально, но это безумие справа g-ir-scanner не понимать... Нужно как-то извращаться для использовании Kotlin библиотеки в GJS. Но мне лень - считаю что здесь Kotlin потерпел неудачу - 0ms результат Kotlin в Linux =)
🔥4💯1
Linux (Gnome): Rust - 1498ms, Kotlin - 1743ms.

🔗 GitCode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Vitaliy Zarubin | @keygenqt
Печально, но это безумие справа g-ir-scanner не понимать... Нужно как-то извращаться для использовании Kotlin библиотеки в GJS. Но мне лень - считаю что здесь Kotlin потерпел неудачу - 0ms результат Kotlin в Linux =)
Ладно, добавим Kotlin в GJS. Это не займет много времени, все равно не спится.

Web (React): rust ~1290ms, kotlin ~5971ms.
Android (Compose): rust ~1599ms, kotlin ~1516ms.
Aurora OS (Qt/QML): rust ~1285ms, kotlin ~1472ms.
Linux (GJS): rust ~1498ms, kotlin ~1743ms.
iOS (SwiftUI): rust ~1179ms, kotlin ~1308ms.
macOS (SwiftUI): rust ~1138ms, kotlin ~1288ms.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
HarmonyOS (ArkUI): Rust ~3616ms, Kotlin - no support.

🔗 GitCode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
Windows (WPF): rust ~1147ms, kotlin ~5799ms.

🔗 GitCode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
8 платформ, нативный UI, общая бизнес-логика на Rust и Kotlin.

Проект KMP & Rust демонстрирует способы взаимодействия библиотек Rust и Kotlin с нативными платформами и тестирует разницу в производительности языков. На всех платформах тестовая функция запускается асинхронно и проверяет:

- Интенсивные вычисления в цикле
- Работу с динамической памятью
- Вычисления с плавающей запятой

Результаты:

- Web (React): Rust ~1290ms, Kotlin ~5971ms
- Android (Jetpack Compose): Rust ~1599ms, Kotlin ~1516ms
- Aurora OS (Qt/QML): Rust ~1285ms, Kotlin ~1472ms
- Linux (Gnome): Rust ~1498ms, Kotlin ~1743ms
- iOS (SwiftUI): Rust ~1179ms, Kotlin ~1308ms
- macOS (SwiftUI): Rust ~1138ms, Kotlin ~1288ms
- HarmonyOS (ArkUI): Rust ~3616ms, Kotlin — нет поддержки
- Windows (WPF): Rust ~1147ms, Kotlin ~5799ms

Rust:
- Минимальный разброс между платформами
- Предсказуемая производительность
- Широкая поддержка платформ
- Минимальный overhead
- Понятное подключение к платформам
- Отсутствие привязок к конкретным платформам

Kotlin:
- Удобство использования на некоторых платформах
- Отличная оптимизация в Android
- Ограниченная поддержка платформ
- Молодые и медленные таргеты (Wasm/MinGW)
- Замедляющие абстракции и runtime
- Сложности работы с C-библиотеками

Итог:
Rust — отличный кандидат для создания библиотеки с общей бизнес-логикой. Он стабилен, прост и поддерживает широкий выбор платформ. KMP хорош в Android и iOS/macOS благодаря генерации привязок к платформе — в Rust это нужно делать руками. С другой стороны, C-библиотеки в KMP — это ужасно. В общем: Rust — blazing fast 🚀, Kotlin — как получится.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥9👍3