Plain text is the problem. We write code so it can be easily read as plain text. Not as living, breathing, running code.
Globals are considered bad because they are hard to trace and reason about. But this is only so with plain text. You cannot click on a variable and see all it's dependencies. We must painstakingly trace these.
If we visualized the dependencies and the flow of our code, we could see the complexity as we go. And the "context" becomes automatic. There is no difference between explicit and implicit context.
The key for globals, is to have one large graph data structure where everything is related. All your data is modeled the same. No mini-databases spread out over the code. No ad-hoc indexes strewn throughout. No modularity. One single giant data model.
SwiftUI is insanely productive when it comes to building mostly simple list and form applications.
I highly recommend that you try it, you can always build a component or large sections using UIKit if you run into issues.
At Ditto almost all of our enterprise customers use SwiftUI over UIKit because SwiftUI is so productive for the vast majority of use cases. Does it have parity with UIKit? No… but it’s never been a dealbreaker for us.
For Windows, I think it goes the other way. Microsoft is always coming around with a new UI model that's half-ass and will be dead next year. Use the old ways: MFC will never die.
I think it's crazy that it's closed source too. It's a big black box which makes debugging hard. Plus its the kind of framework that does a lot of magic stuff where you scratch your head wondering what is going on.
Yeah so without having to overwrite some very deep OS settings, which will likely raise some red flags for your app requiring administrator privilege to run, you aren't going to get this. If someone has a browser thats taking up most resources, its gonna throttle everything.
There is generally very little reason to write anything but web apps these days for things that don't need to touch specific hardware. If you stick to as much native js/css/html as possible (i.e avoid large libraries), it will load blazingly fast and use way less resources then web apps that are considered fast.
I think modern frameworks are so bad at perf because they assume people just have so much compute available and are focusing on one app at a time.
--
1: https://github.com/bitgapp/eqMac
I had of course already checked and it does not. https://github.com/bitgapp/eqMac/issues/380
So please remind me of why your condescending comment was necessary?