4 ms·
KDE is pretty good for developer documentation and help offered in their IRC chats as long as you’re diligent and provide detail of your problem and can get som
by kdefanqth8er 9mo ago
KDE is pretty good for developer documentation and help offered in their IRC chats as long as you’re diligent and provide detail of your problem and can get someone’s attention.
What is a huge learning curve is C++ but even worse is Qt Qml (essentially object embedded javascript, capturing js warts and all of callback hell in single swoop) slapped on top of C++. Any serious app will need C++ and short comings of separating the ui layer to an uncontrollable compiled language engine just adds a huge hurdle. Now combine this nearly useless abstraction with attempting to dig into using a library like kdepim/akonadi and you’re entering a world of pain.
The entire experience would not be so bad if I could write my app entirely in Cpp.
Another hurdle is using kdesrc builder takes a very long time and is error prone if you don’t account for identifying which 47 of the dependencies require release/6.x branch or a framework/15.x.x branch, or whatever the branch naming convention is across applications and libraries.
- shmerl 9mo agoYou could combine it with Rust instead?
- kdefanqth8er 9mo agoYou still can’t control the Qml code via Rust or whatever interop language you use. Swapping out C++ does not fix the issue. You must use QML to be considered for a modern KDE app.
- shmerl 9mo agoOK, but not sure why QML is a bad thing.
- kdefanqth8er 9mo agoYou didn’t read my comment entirely or what? Perhaps try building a KDE app and see how far you get.
- fooker 9mo ago> The entire experience would not be so bad if I could write my app entirely in Cpp. You can. Qt + KDE libraries are really nice.
- kdefanqth8er 9mo agoYou can’t, you must use Qml. You used to be able to with QtWidgets but a modern KDE app cannot be written with QtWidgets. And QtWidgets are in life support.
- gmueckl 9mo agoWhat's the source for this? Edit: just browsed some of the docs for current KDE libs and I see a lot of QWidget-derived custom widgets in there. I don't see how this stuff couldn't be used in a pure C++ codebase.
- kdefanqth8er 9mo ago[dead]
- fooker 9mo agoWhen you say "cannot be written", what do you mean? You are free to write one, and it works. I have a few internal tools that do not touch QML or the XML ui system, and it still builds just fine with then latest libraries on Arch. Of course an upstream KDE application might not be written that way, if that's what you are complaining about.
- BrenBarn 9mo ago> The entire experience would not be so bad if I could write my app entirely in Cpp. What I wish is that I could write KDE stuff using Python (PyQt or PySide).
- kdefanqth8er 9mo ago[dead]
- Conan_Kudo 9mo agoPySide is supported. The KDE Frameworks Python bindings work on top of PySide.
- heavyset_go 9mo agoPython KDE Framework bindings are anemic: https://invent.kde.org/teams/goals/streamlined-application-development-experience/-/issues/9 https://invent.kde.org/teams/goals/streamlined-application-d...
- BrenBarn 9mo agoOk yeah that was my impression. In theory they exist but they're not kept updated to allow comprehensive access to all of KDE.
- rubymamis 9mo agoAs @ahartmetz said: > QML is absolutely not JavaScript. It's a markup language to describe user interfaces, spiced with JS for certain interactions. All heavy lifting behind the scenes is done in C++ - the QML runtime as well as the application logic and data models. How's QML useless? It's incredible language for UI. I described how I developed my Block Editor (like Notion) in Qt QML and C++: https://rubymamistvalove.com/block-editor https://rubymamistvalove.com/block-editor
- kdefanqth8er 9mo ago[dead]
- heavyset_go 9mo agoOutside of deeply integrated KDE apps, I'm shipping QML + Python apps and IMO it's a nice experience. It's not at all like you're writing JS apps a la React or jQuery, JS syntax is used for expression eval at minimum, but you don't have to use it beyond some single handlers, formatting/convenience functions, or whatever. I'm looking at a smaller app, with 5k lines of QML and 10k of Python. It's got 250 lines of JS according to tokei, and quickly poking at the QML for JS leads to an additional 200 lines, so let's double to 500 lines. That's like 3% JavaScript. That said, modern KDE is centered around QML, UI frameworks like Kirigami are built using it, but it lacks comprehensive QML, Python, Rust, etc bindings for KDE frameworks. At minimum, you will at some point be reading C++ docs and to use your bindings. If you get in the weeds with it, you will be writing your own bindings or wrappers eventually. If you want to avoid that, you will likely be writing C++ for more complicated applications. It's complex, but I figured with QML Plasmoids they were going for a QML-first approach to future development, but that's been walked back in favor of compiled Plasmoids in recent releases.
- bowsamic 9mo agoStrange that so many of our customers at Qt use Qt Quick if it’s as useless as you say it is
- kdefanqth8er 9mo ago[dead]
- utopiah 9mo ago> serious app will need C++ What does this even mean? This is not 1980 or whatever, even a device the price of a coffee (RPi Zero ~$10) can handle a LOT, like an entire OS. I'm not saying resources don't matter but for most people doing normal computing (so not weather simulation, 4K video editing of 4hrs long content, 3D modelling of high res models...) pretty much anything in any language is equivalent.
- kdefanqth8er 9mo ago[dead]