Rust and QML: a timely example
vandenoever.info
Rust and QML: a timely example
1–10 of 22 posts
Re: Rust and QML: a timely example
#2Re: Rust and QML: a timely example
#3I understand the trade offs and why this makes sense. But it hearkens back to some of extremely ugly parts of older Java frameworks.
Re: Rust and QML: a timely example
#4Is it just me or it feels way too ugly? Multiple opaque layers of abstraction plus Rust kind of feels shoehorned when it's called from C++. Something tells me it's terribly difficult to write, debug and deploy. I don't exactly see the benefit of adding Rust here.
From that perspective, there isn't any. Dyed-in-the-wool "QT app-devs", if there is such a category (KDE devs?) already have access to Rust libraries, in the same way they have access to most stuff in weird compiled languages: you wrap the library in a C ABI and call that. It's a well-understood process in QT land.
I think this project is more an effort to give Rust projects access to a native graphics toolkit (that happens to be QT) for adding a GUI to a previously CLI application. I could see, for example, the Parity Ethereum client (written in Rust) getting a native system-tray/notification-area widget written in QT.
Re: Rust and QML: a timely example
#5Is it just me or it feels way too ugly? Multiple opaque layers of abstraction plus Rust kind of feels shoehorned when it's called from C++. Something tells me it's terribly difficult to write, debug and deploy. I don't exactly see the benefit of adding Rust here.
Re: Rust and QML: a timely example
#6Is it just me or it feels way too ugly? Multiple opaque layers of abstraction plus Rust kind of feels shoehorned when it's called from C++. Something tells me it's terribly difficult to write, debug and deploy. I don't exactly see the benefit of adding Rust here.
> I don't exactly see the benefit of adding Rust here. From that perspective, there isn't any. Dyed-in-the-wool "QT app-devs", if there is such a category (KDE devs?) already have access to Rust libraries, in the same way they have access to most stuff in weird compiled languages: you wrap the library in a C ABI and call that. It's a well-understood process in QT land. I think this project is more an effort to give R…
The author hand-edits a C++ file, autogenerated by CMake. In that sense it still needs a C++ compiler as part of a build step.
A binding relying only on Rust and QML might replace the C++ boilerplate with a Rust equivalent.
Re: Rust and QML: a timely example
#7Is it just me or it feels way too ugly? Multiple opaque layers of abstraction plus Rust kind of feels shoehorned when it's called from C++. Something tells me it's terribly difficult to write, debug and deploy. I don't exactly see the benefit of adding Rust here.
https://fosdem.org/2018/schedule/event/rust_qt_binding_gener...
Re: Rust and QML: a timely example
#8Earlier quoted context omitted.
> I don't exactly see the benefit of adding Rust here. From that perspective, there isn't any. Dyed-in-the-wool "QT app-devs", if there is such a category (KDE devs?) already have access to Rust libraries, in the same way they have access to most stuff in weird compiled languages: you wrap the library in a C ABI and call that. It's a well-understood process in QT land. I think this project is more an effort to give R…
There's a distinction between a Qt project calling Rust code via a C ABI versus a Rust program bootstrapping Qt. The author hand-edits a C++ file, autogenerated by CMake. In that sense it still needs a C++ compiler as part of a build step. A binding relying only on Rust and QML might replace the C++ boilerplate with a Rust equivalent.
At no point is there a need to edit a generated C++ file. Any other build tool with C++ support could be used instead of CMake. What it should do is call rust_qt_binding_generator when the binding description changes.
The table in this blog shows what files are generated: https://www.vandenoever.info/blog/2017/09/04/rust_qt_binding...
Re: Rust and QML: a timely example
#9Auto generated traits? Yuck. I understand the trade offs and why this makes sense. But it hearkens back to some of extremely ugly parts of older Java frameworks.
Re: Rust and QML: a timely example
#10Earlier quoted context omitted.
There's a distinction between a Qt project calling Rust code via a C ABI versus a Rust program bootstrapping Qt. The author hand-edits a C++ file, autogenerated by CMake. In that sense it still needs a C++ compiler as part of a build step. A binding relying only on Rust and QML might replace the C++ boilerplate with a Rust equivalent.
The binding generator generates a binding from a JSON file. That gives C++ and Rust code. Additionally, a default Rust implementation is generated for convenience where the programmer fills in the application logic. At no point is there a need to edit a generated C++ file. Any other build tool with C++ support could be used instead of CMake. What it should do is call rust_qt_binding_generator when the binding descrip…
Well then maybe your example should reflect that, where a change is made in the C++ file replacing 'Simple' with 'Time'