Today, when I tried to build an extremely simple UI application using Avalonia with F#, I needed many hours of help from ChatGPT and Perplexity, and even then, I didn't achieve anything remarkable. Can anyone explain what has happened that makes building a simple UI 20 times harder after 20 years???
Maybe using F# for UI is a terrible mistake, and there are more pleasant technologies for building UI easily nowadays? Can someone advise me on what's used today for quick UI development? Perhaps Python with Tkinter? Swift? Dart with Flutter? Or is it simply no longer as easy as it used to be, and it's bound to be HARDCORE difficult now?
BTW: Please, I beg you, don't tell me to try MAUI - I've already read enough to know it's not worth touching, even with a ten-foot pole
For instance I developed an "image sorter" (really an everything sorter) that I regularly use on desktop and a tablet. I run it on my desktop machine and use Tailscale to use it on the go. The other day I thought I might try it on the Meta Quest 3 and it "just worked"; it could use a little enlargement of UI targets in accordance with Fitt's law but it works great now and with a little customization but being surrounded with three huge windows already feels halfway to "minority report"
In a world where web-based apps are effortlessly portable to platforms I wasn't even thinking about, it's hard to justify any investment in an application that doesn't have those wings.
Also since 2010 or so CSS and HTML have evolved with application development in mind whereas desktop frameworks aren't really moving forwards. Microsoft seems to be churning them just to churn.
I was thinking of just using Docker containers and calling it a day lol
Complexity won. It’s easier to sell for $^6, secures jobs, creates a good barrier for regular people like the one you attempted to be. Remember all those guys who built things with delphi? Now they are high-paying customers because things bring money, but they can’t build them anymore. And ui teams happily spend their money discussing cascading, hooks, reconciliation and other idiocy unrelated to any real thing.
Also, you can always use C# in a regular way or with one of Avalonia’s declarative UI extensions which are similar to FuncUI / Elmish / SwiftUI / etc. These tend to have fewer sharp (heh) edges.
It is lightning fast (in execution and compilation) and compiles to fairly small executables.