985 karma · joined December 16, 2017
Daino Notes: get-notes.com
Vox: get-vox.com
Personal site: https://rubymamistvalove.com
Twitter/X: https://twitter.com/mamistvalove
GitHub: https://github.com/nuttyartist
Email: ruby.mamistvalove (AT) gmail (DOT) com
https://github.com/jyn514/saltwater
[1] https://www.qt.io/blog/speed-up-qt-development-with-qml-hot-...
[1] https://btmc.substack.com/p/memory-unsafety-is-an-attitude-p...
[2] https://www.gingerbill.org/series/memory-allocation-strategi...
[3] https://dmitrysoshnikov.com/compilers/writing-a-pool-allocat...
[2] https://rubymamistvalove.com/notes-mobile-swipe-stack-view.M...
This is exactly what I'm trying to build. I'm writing a library on top of Qt that would make it easy to write native code as easy as it is writing React code! I would say it's even easier since we are throwing all the constraints of browsers and web apis out of the way.
[1] https://best.openssf.org/Compiler-Hardening-Guides/Compiler-...
Hope to prove you wrong soon (:
You said you "hope good desktop GUIs will come eventually, because I absolutely hate the web-based stuff like Electron.", so I guess you still might need to use those. I'm with you, and I'm trying to be part of the change. To be honest, I'm not very much tied to a specific programming language. If the end result is good - stable, performant, with good DX than I'm with it. For me, the current combo works. I'm willing to adapt tho. Slint has nice QML syntax for UI and logic (and the underlying framework) is written in Rust. Its author was once The Qt Company/Nokia developer if I'm not mistaken.
I only said that because you said performant code "does not matter for a mobile app". I think writing apps in native frameworks is awesome! I'm all for it. BTW, I've heard some reports that SwiftUI/Swift are slow[1][2][3]. Again, I haven't explored SwiftUI and Kotlin, but I'd like some day. What do you love about them so much?
> All that for being at best similar to the native tools, but probably never exactly the same. And it cannot be better, because the native ones are the ones defining how it should be.
I agree, the best apps would almost always be those written in the framework the OS provides - kinda make sense - cross platform GUIs will always fall under the lowest common denominator issue - I've written about it in my blog post[4]. You also forget tho, that Linux does exist with a growing popularity - I think it's important to target it as well (I've started GUI development because I was on Linux and most apps had horrible UI/UX).
> but starting a new mobile UI with QML these days is just madness IMHO :-)
Follow my mad adventure (:
[1] https://notes.alinpanaitiu.com/SwiftUI%20is%20convenient,%20...
[2] https://x.com/daniel_nguyenx/status/1734495508746702936
No, in the mobile space I've only used React Native and QML with C++.
> This almost certainly does not matter for a mobile app, and definitely not for the UI part.
I disagree. For example, I expect block editors to handle large texts efficiency - both in terms of power draw and performance. Writing in a non-compiled language already puts you in a disadvantage in both aspects. But this is just the standard I set to myself - the entire industry clearly has different priorities.
> I didn't mean that it is complicated. I can totally write C++. What I meant is that it is more complicated to get it right than modern languages. If users complain about a segmentation fault, it's often pretty tricky to debug. In Java/Kotlin, you will get an exception that tells you exactly which line crashed.
Yep, I generally agree, tho with good debugging tools and LLMs I have found this to not be a problem anymore.
> On top of that, C++ is slower to write. Again I have been able to compare teams working on the same app both in C++ and in Java/Kotlin/Swift (Java is not exactly a modern language, but still it's a lot faster to develop with).
I write in TypeScript at my day job and C++ for my side projects and I don't feel like I'm slower in C++. Again, I'm using the subset I'm conformable with.
> And after all those disadvantages of using C++ for a mobile app, you end up with a UI that doesn't feel native to the platform.
That has certainly been the case, and what I'm trying to fix - because I've proven that it is fixable by caring about UI/UX. QML is great for UI, it's just that Qt developers (both the developers of Qt and those using it) don't care much about those things. But it's definitely posiible to get good results. For example, I'm working on SwipeStackView like other iOS apps have in QML, and I'm liking what I've made so far: https://rubymamistvalove.com/notes-mobile-swipe-stack-view.M...
> Even for writing a Desktop app, I don't understand why people use Qt instead of e.g. Java. Kotlin/Compose seem to be coming on Desktop too, which makes a lot of sense to me. And maybe even Flutter.
Again, I can't stretch how FUN, easy, and overall a great experience to develop with QML and C++ together, it's just HOW GUI should always been. I'm thinking of creating some Youtube tutorials that will try to present this feeling.
> Finally, I don't understand writing a cross-platform UI for Desktop and mobile. On mobile, I have a big finger and a small touch screen. On Desktop, I have a big screen, a mouse and a keyboard. Those require different UIs. Sharing the logic is fine, but the UI needs to be written for the platform.
100%. Completely in agreement. The fact that you can develop both Desktop and mobile apps in QML doesn't mean you must make them share the same code (at least, not fully). I think Kirigami have gone the wrong way with their 'adaptable' UI (I've also thought about doing that until I realized it's the wrong approach). One should always start with the UX that the end result should be - never start from tech considerations.
I'd love if you could also contact me (my socials are in my profile) as I'm developing a set of components to help exactly in that situation.