Post AAlK3ZLXuL118DFSQi by TimSueberkrueb@mastodon.social
(DIR) More posts by TimSueberkrueb@mastodon.social
(DIR) Post #AAlK3UTW1HQ41TwFeq by be@fosstodon.org
2021-08-27T05:44:37Z
0 likes, 0 repeats
@lightweight Python bindings are now an official part of Qt upstream: https://www.qt.io/qt-for-python
(DIR) Post #AAlK3V6VgIbxyQBORE by lightweight@mastodon.nzoss.nz
2021-08-27T05:46:04Z
0 likes, 0 repeats
@be those Trolltech folks had a frickin' ambitious vision, and they bloody well delivered, on a shoestring (initially at least). They are among the few tech folks who've - in my opinion - deserved their relative success.
(DIR) Post #AAlK3VbLpdHVW4c1Vg by be@fosstodon.org
2021-08-27T05:51:59Z
0 likes, 0 repeats
@lightweight Qt is a really amazing feat. It's a shame that C++ sucks so much they had to write everything and the kitchen sink, including a code generator that needs to be integrated into the C++ build system, to make a decent GUI library.
(DIR) Post #AAlK3WHXIn1dcuLiGO by be@fosstodon.org
2021-08-27T05:54:32Z
0 likes, 0 repeats
@lightweight Both using C++ and the need for autogenerating C++ as part of the build process make it quite hard to create bindings from Qt to other languages, so basically your only choices are C++ or Python.
(DIR) Post #AAlK3WtT1lMnWY60O0 by TimSueberkrueb@mastodon.social
2021-08-27T07:58:16Z
0 likes, 0 repeats
@be @lightweight it's definitely hard to create good Qt bindings, though it's easier if you mainly want QML/QtQuick to talk with a backend in another language (which is what I do exclusively and which in my experience also fits many commercial needs). For example, there are really nice Rust bindings now (mainly for QML/QtQuick) which facilitate Rusts' built-in metaprogramming features (hygienic procedural macros) to replace MOC entirely: https://github.com/woboq/qmetaobject-rs
(DIR) Post #AAlK3XKlOHCWtCrnvs by be@fosstodon.org
2021-08-27T05:47:32Z
0 likes, 0 repeats
@lightweight Qt for Python would be a great choice for an application that doesn't need strict performance requirements, and even in that case I suppose you could implement a Python module in C or C++.
(DIR) Post #AAlK3XP18SbV6OrCYy by be@fosstodon.org
2021-08-27T07:59:40Z
0 likes, 0 repeats
@TimSueberkrueb @lightweight Haha commenting race condition :P
(DIR) Post #AAlK3YCe9wIpaK4pv6 by TimSueberkrueb@mastodon.social
2021-08-27T08:07:17Z
0 likes, 0 repeats
@be @lightweight yes, indeed :D thanks for mentioning sixtyfps - I didn't know about that one!
(DIR) Post #AAlK3YmS0owVNMpQjA by TimSueberkrueb@mastodon.social
2021-08-27T08:12:57Z
0 likes, 0 repeats
@be @lightweight GPL+Commercial though means I'm probably not going to use/contribute to it :/ LGPL+Commercial would be fine for a library for me.
(DIR) Post #AAlK3ZLXuL118DFSQi by TimSueberkrueb@mastodon.social
2021-08-27T08:17:37Z
0 likes, 0 repeats
@be @lightweight even for hobby projects - which is what I would use this for - I want some freedom to pick the FOSS license I distribute my project under. Hence, GPL for a library is a no-go for me.
(DIR) Post #AAlK3ZkiOl9GOH1Yf2 by be@fosstodon.org
2021-08-27T05:55:05Z
0 likes, 0 repeats
@lightweight and the choice of JavaScript as the language integrated into QML was unfortunate... JavaScript sucks in so many ways
(DIR) Post #AAlK3Zs9x56SlMVVGS by lightweight@mastodon.nzoss.nz
2021-08-27T11:31:27Z
0 likes, 0 repeats
@TimSueberkrueb @be for the record, Qt being available under the GPL makes it far more compelling to me. I think LGPL is an unfortunate compromise designed to appease commercial interests that want to produce (and, inevitably, exploit the power imbalance inherent with) proprietary software, and I consider that ethically dubious (more detail: https://davelane.nz/proprietary)... I respect Trolltech far more for having gone with full GPL.
(DIR) Post #AAlK3aOQ18uKNPbGXw by TimSueberkrueb@mastodon.social
2021-08-27T11:49:22Z
0 likes, 0 repeats
@lightweight @be I respect your opinion on this matter. For the record, I don't dislike the GPL but I dislike not having the freedom of choice of distributing my project under the FOSS license I see fit.
(DIR) Post #AAlK3ayDs1Y0ASLrM0 by TimSueberkrueb@mastodon.social
2021-08-27T11:51:56Z
0 likes, 0 repeats
@lightweight @be this is why I personally think GPL is a bad choice for libraries but a great choice for applications.
(DIR) Post #AAlK3bTlyimhkJ73Wy by be@fosstodon.org
2021-08-27T16:14:32Z
0 likes, 0 repeats
@TimSueberkrueb @lightweight I don't understand your perspective. If the GPL is fine for applications, why not make a GPL application using SixtyFPS?
(DIR) Post #AAlK3byy6jjpJ3hy9g by be@fosstodon.org
2021-08-27T16:30:49Z
0 likes, 0 repeats
@TimSueberkrueb @lightweight "the freedom of choice of distributing my project under the FOSS license I see fit" is not really a meaningful concept to me. What matters is that I *can* distribute it under a FOSS license and combine it with other FOSS libraries.
(DIR) Post #AAlK3cSkK1YcnPdkZM by lightweight@mastodon.nzoss.nz
2021-08-27T20:44:45Z
1 likes, 0 repeats
@be @TimSueberkrueb Indeed. To my mind, the only reason *not* to use a Copyleft license is because you want to reserve the option of making the code proprietary... which, of course, in my opinion, is an ethically dubious option.
(DIR) Post #AAlK3djRbQVajUSbEe by be@fosstodon.org
2021-08-27T07:58:57Z
0 likes, 0 repeats
@lightweight Well, there are Rust bindings to Qt written by one of the SixtyFPS developers using a clever Rust macro to autogenerate that C++ code and another Rust library he wrote (cxx) which allows embedding blocks of C++ inside Rust: https://github.com/woboq/qmetaobject-rs/But those bindings are not complete. The only real world application I know using them is Whisperfish: https://gitlab.com/whisperfish/whisperfish
(DIR) Post #AAlK3ewb60ckUZccNM by be@fosstodon.org
2021-08-27T05:59:01Z
0 likes, 0 repeats
@lightweight All these are reasons why I am excited for SixtyFPS. It is being written in Rust by people who were heavily involved in Qt for many years. They get to learn from the mistakes of Qt and don't have to write everything and the kitchen sink because Rust's standard library does not suck. The DSL for the GUI allows for dynamic expressions as properties but it's statically typed and not a Turing complete language like JS. That makes it much easier to develop tooling and optimize it.
(DIR) Post #AAlK3ha1IPLYfQ586K by be@fosstodon.org
2021-08-27T06:00:30Z
0 likes, 0 repeats
@lightweight They already wrote an implementation of the Language Server Protocol for the declarative GUI DSL so it already has IDE integration and the project is in its infancy.
(DIR) Post #AAlK3iYzdi7TiWbp8i by be@fosstodon.org
2021-08-27T06:37:24Z
0 likes, 0 repeats
@lightweight I don't know the technical details of how they are doing it, but SixtyFPS is managing to make bindings to other programming languages despite Rust's ABI instability. It can autogenerate C++ code from the declarative GUI language and somehow it binds to NodeJS too... which is probably much more appealing to JS developers than QML's use of JS inside the GUI DSL, which mostly just irritates C++ developers.