logoalt Hacker News

wonklebonklelast Sunday at 10:12 PM3 repliesview on HN

Iced is a wonderful dead-simple framework. I hope it forever maintains the simplicity which combines nicely with Rust’s features.

One thing I love about Iced and miss in Qt is writing the software in a single language. Qt has chosen to introduce multiple languages into their framework which makes the entire codebase a huge learning curve. In Qt you write your display layer in QML then your UI logic in Javascript and any backend advanced logic in C++. It is frankly exhausting.

In Iced you write in Rust and use Cargo packages. This gives the developer ultimate composability and clarity of their application as well as powerful tools from an established ecosystem. If Qt wanted to provide a powerful Qml tool, they have to write it and build all of the IDE integration.

For the record Qt used to be moving in a pure C++ direction but that changed when Qml came onto the scene.


Replies

rubymamislast Sunday at 10:37 PM

I actually love that separation. QML is a great language for writing beautiful, responsive, modern UI with animations easily. C++ is great for performance and logic. I don't like Javascript but I don't need to write a whole lot of it. I wrote my note-taking app's block editor in QML and C++ if some people are curious[1].

[1] https://rubymamistvalove.com/block-editor

show 3 replies
ktpsnslast Sunday at 10:22 PM

Haven't used Qt for a few years, but back then QML, QtQuick, etc have been optional features. You absolutely could write all your Qt logic in C++ only, in a somewhat similar way like the code shown in the iced READMEs. It is the same in any other classic GUI toolkit such as GTK+.

Biggest drawback in qt/c++ used to be the MOC. I guess they still have not gone rid of it, haven't they?

dotancohenlast Sunday at 10:14 PM

I write all my Qt in Python. I've never used the C++ bindings. But in Python you don't need to deal with QML or JavaScript.

show 2 replies