[–] Scharkenberg 3 days ago
[–] lloydatkinson 3 days ago
[–] WorldMaker 2 days ago
Some .NET versions <= 4 installed a lot of their DLLs globally in Windows and if you were exact version tolerant enough (and GAC binding magic lucky enough) you could distribute a single EXE without an installer and expect some number of Windows users it would "just work" with only the EXE (and other users you would get complex dances of Windows Updates and .NET Installers to debug). Modern .NET decided on the classic DOS style "folder of DLLs" model over "global DLL cache and DLL Hell". You can no longer assume that the output EXE can "just work" on some supported Windows machines, but can better assume that the output folder of DLLs and EXE will work as intended generally on every supported Windows machine.
[–] Scharkenberg 2 days ago
[–] lloydatkinson 1 day ago
[–] 72deluxe 2 days ago
[–] Scharkenberg 1 day ago
[–] 72deluxe 23 hours ago
[–] 72deluxe 20 hours ago
[–] chuckadams 3 days ago
[–] keithnz 3 days ago
[–] WorldMaker 2 days ago
[–] adzm 3 days ago
[–] queenkjuul 3 days ago
In web we refer to the latter but i feel you mean the former.
I built a toy project in .NET 2005[0] with WinForms and the experience was actually excellent, binding data to controls was dead simple, it felt surprisingly modern. But i can't imagine how I'd make the UI resizable lol
[–] WorldMaker 2 days ago
It is something I appreciate about WPF and other successors is that responsive layouts became the default and low level building blocks with "pixel perfect" harder to do and less of an "after thought" on top of pixel perfect WYSIWYG that's easy to get responsive wrong, but even with WinForms people were building responsive apps back in the day.
[0] https://learn.microsoft.com/en-us/dotnet/desktop/winforms/co...
[–] canucker2016 3 days ago
Windows apps always had to be able to respond to dynamically changing screen dimensions since the user could change from one screen resolution to another while an app was still running. Apps would get a WM_DISPLAYCHANGE message in their top-level windows message processing loop. Docs say WM_DISPLAYCHANGE was introduced in Win95.
[–] NetMageSCW 3 days ago
[–] jim180 3 days ago
[–] toast0 3 days ago
If Microsoft ever makes something that actually meets all the needs that Win32 addresses, they'll probably build a compat layer and a) your win32 code will still work in compat mode, b) that new thing may be worth targeting.
[–] ack_complete 3 days ago
[–] the__alchemist 3 days ago
[–] jen20 3 days ago
A lowest common denominator idea of "everywhere" is just not that useful.
[–] the__alchemist 3 days ago
I hear you on the native UI is better all things considered. I'm trying to figure out how that works in practice. I.e., to accompany a "cross-platform UIs are inferior to native ones", you would be effective to also include the workflows you use. In a realm where you choose options, eliminating one should come with illuminating another, as one must choose a path, and others could be eliminated for their drawbacks as well, leaving none available. What is your path here?
[–] jen20 3 days ago
- proprietary,
- command line tooling,
- single-platform.
A good example of what I consider to be a great approach (not mine) is Ghostty, which has fully native UI per platform and a shared core between platforms. JetBrains tools also go out of their way to integrate with platform conventions everywhere.
An example that cross-platform toolkits usually get wrong: cursor navigation in text fields. Home and End do different things on different platforms, and on macOS, basic emacs/readline bindings are supposed to work in all text entry fields.
It’s worth noting that this extends beyond GUIs - command line tools written in Go tend to use “package flag” which is native nowhere. The standards between Windows (which has two, in cmd and powershell), GNU-style and “legacy” Unix style are just not reconcilable without implementing platform-specific behaviour.
[–] NetMageSCW 3 days ago
[–] the__alchemist 3 days ago
[–] Doohickey-d 3 days ago
LLMs are quite good at tedious tasks such as keeping multiple GUIs in different languages in sync with each other.
[–] Rohansi 3 days ago
You also generally don't want them to actually be in sync because there are actual UX differences between platforms that you need to align with to really be native. If you don't follow that then what's the point?
[–] floydnoel 3 days ago
[–] the__alchemist 3 days ago
edit: Link software you wrote's installation instructions.
[–] floydnoel 3 days ago
[–] the__alchemist 2 days ago
[–] floydnoel 2 days ago
[–] the__alchemist 2 days ago
- You have made the choice to make software only run on MacOS, excluding the (majority) of users who are not using that. This is balanced against the upside of native look and feel.
- I agree that web and mobile have many differences when comparing them to each other, or to PC software. The differences and conventions which relate to application development between Windows, MacOs, and Linux are much smaller than those. (The only concrete example mentioned in this broader discussion was Home and End keys can have different behavior). I see this as a matter of degree, not kind.
I keep coming back to "So, we are deliberately limiting our software to a single OS because... (Vaguely articulated reasons about native look and feel? About cross-platform applications having "bad UIs" and "subpar results"? I can't do anything with that because it's too vague, and doesn't match my experience. Home and End keys or other keyboard shortcuts which are easy to feature-gate if the GUI kit doesn't handle it which it probably does?) When weighing pros and cons, I need to see the cons.
[–] okanat 3 days ago