![]() WPF also uses code generators and it's not plagued with long build times. > Yes, perhaps optimizing the compilers would be nicer. Using Qt UI form files forces UIC into the picture, which also fails to be cached. > I don't have numbers to cite, but I think the attempts at replacing the moc with newer C++ lang features also usually didn't exactly hit the compiler fast paths. It's ok to claim that Qt's MOC optimizes for developer experience,and all other tradeoffs are acceptable. > You have to compare those drawbacks directly to the alternatives, though. Yes, it's a whatboutism (which I hope to have compensated for with many other detailed comments in the thread), but this double standard tends to irk me. There's a lot of "If you're using Qt you're not using C++!!1" FUD to confuse newbies, while it's much easier to inadvertently write non-portable C++ with many other frameworks. Or look at C++/CX (since phased out, thankfully). compiler-backed extended and different behavior. What I'm saying is that MS has made much more invasive changes to C++ as a language than Qt has in its platforms or frameworks, e.g. Maybe so, but this is not what my comment is about. I don't have numbers to cite, but I think the attempts at replacing the moc with newer C++ lang features also usually didn't exactly hit the compiler fast paths. > You have to compare those drawbacks to the alternatives, though. Yes, perhaps optimizing the compilers would be nicer. You have to compare those drawbacks directly to the alternatives, though. So not only does the MOC worsens builds, it also prevents basic optimizations from mitigating it. The MOC heavily penalizes build times, and build caching tools like ccache don't work out of the box with it. That means that "this is the API, live with it" is not really a straitjacket - you get to override, supplant, extend a lot. It has internalized this as one of the reasons for its success, even if it sadly fell a bit by the wayside during the early Qt Quick years. It's also worth pointing out that for the most part, Qt has a fairly healthy approach to low/mid/high level customizability and extensibility to its API. I respect not liking that and preferring if there's only a community-based channel. You're right that this open approach is not the only channel for APIs into Qt, and in hybrid communities like his there's always some tension, and of course having to be a little "in the know" or engaged in the community means there's perhaps a higher barrier to entry in some ways. There's also venues like the annual Qt Contributor Summit for larger discussions. We've also had Qt folks actively attending events like Akademy to demo new WIP APIs and gather feedback and feature requests and engage in PoC ports of real software. Some bigger new modules or API surface area is also moved through Qt Labs first before becoming part of the product, making for a longer feedback period. ![]() It's also possible to contribute APIs I've done that, too. Quite a bit of Qt APIs get created collaboratively on gerrit I've had API changed based on my input. > With Qt you get "this is the API, live with it". In terms of API and tooling support, I don't think any open projects come close to what Microsoft did with Visual Studio and C# back in 2005. With libadwaita being brought into GTK+ I think neither looks any good out of the box now, but the tooling for GNOME seems a lot better at least. a choice, but Qt applications often feel like toy UIs or those fake operating systems you find in games without some pretty deliberate planning (and styling). I'm not a fan of any Linux UI design toolkit, but I found GNOME Builder to be much more intuitive and working better out of the box than Qt Creator. Sure, it creates a lot less drama, but at the cost of openness. I'd describe its API design method close(r) to the Windows API than any open source API I know of. With Qt you get "this is the API, live with it". With GTK+ you get a Gitlab issue where everyone from GTK+ developers to /g/ users spout their opinions and then eventually the team and the developers take a decision that's probably going against at least half the comments in the thread. They have plenty of weird legacy APIs, design choices, and restrictions on their API design so they can keep selling their paid products. GTK+ gets a lot of (sometimes deserved) flak for their API choices but Qt isn't all that different.
0 Comments
Leave a Reply. |