Live data from Hacker News

Writing GUI apps for Windows is painful

tulach.cc

521–530 of 577 posts

Re: Writing GUI apps for Windows is painful

#521
post #157

Earlier quoted context omitted.

No one wants to talk about it or Delphi anymore. Programmers are just as fashion-concious as the Milan catwalk designers.

This. But flares are still waiting to come back in this case. To get my foot in the door writing windows GUI programs I often have to obfuscate the fact I am using Delphi (don't ask, don't tell) or work with clients without big IT departments. Disclaimer - No clients were ever injured during this experiment.

Same

Re: Writing GUI apps for Windows is painful

#522

I had a similar struggle. I needed a truly cross-platform (Windows, Linux/Wayland, Mac, iOS, Android) GUI toolkit with rich controls library and reasonable theming. In fact, the only good option is QT and it's very hard to be productive with C++, it still lacks even basic features, like type deconstruction and ADTs/GADTs with exhaustiveness checks. QT bindings for other languages aren't mature enough. Apart from QT,…

After doing a "Hello World" window for every feasible GUI toolkit I'm starting to think I should be looking for reasons I can't just use Godot.

Re: Writing GUI apps for Windows is painful

#523

I had a similar struggle. I needed a truly cross-platform (Windows, Linux/Wayland, Mac, iOS, Android) GUI toolkit with rich controls library and reasonable theming. In fact, the only good option is QT and it's very hard to be productive with C++, it still lacks even basic features, like type deconstruction and ADTs/GADTs with exhaustiveness checks. QT bindings for other languages aren't mature enough. Apart from QT,…

Electron = nontrivial effort? What is so hard about Electron? The boilerplate is a snap, compared to Qt/Win32 boilerplate. Where do you fall down?

You need something else to run your electron app on mobiles. Ok, you take Capacitor, fine. Probably you'll take React (or something else) to manage your state. Great. You still need some UI toolkit. Literally all of them, even the paid ones, are pretty basic and dumb. So, most likely you'll have to make your UIs pretty basic and dumb, or reinvent the world and/or dig through tons of half-baked libraries which deprecate faster than you manage to integrate them.

Modern QT (with QML) has very low amount of the boilerplate, all the 7guis examples can be implemented with 20-80 LoCs and will run on all the platforms, although despite all the modernization efforts, C++ still feels dated and it's nearly impossible to be productive with it. The main issues are: lack of pattern-matching with type deconstruction, lack of ADTs/GADTs, lack of closed hierarchies, lack of exhaustiveness checks, lack of closed type hierarchy (no top/bottom), lack of typeclasses, lack of first-class functions (yes, while there is some syntactic sugar, it's just a sugar, e.g. you can't return two different lambdas depending on the template parameter from one template function).

Re: Writing GUI apps for Windows is painful

#524

Earlier quoted context omitted.

Whilst I don't understand the users who are hell bent on having a single-executable work, if you have users who are hell bent on using but a single executable, you have to meet them where they're at.

In my experience Windows users don't care about the statically linked part What they care about is having an executable and not needing a zip with dlls And that is trivially achievable by bundling the dlls into the exe file

Also trivially achievable by making an installer instead of shipping separate files. People are really used to that pattern.

Re: Writing GUI apps for Windows is painful

#525

Earlier quoted context omitted.

Never coded a GUI app but speaking of regressions: As a heavy windows KB user, losing the ability to alt+letter all the things to /quickly/ navigate windows apps is incredibly frustrating. I've read that Mac OS envy infiltrated the WinUI time and while some may prefer the aesthetics, on Windows 11 apps like mspaint I can no longer navigate anywhere near as quickly. From milliseconds to multiple seconds. I'm incensed…

I'm confused by your alt key navigation in paint. I just opened paint and it still supports alt+key to do things in Paint.

No it doesn't. Alt+space bring up the window system menu to restore/maximize/close?

Alt+f, a to save as?

Negative.

Re: Writing GUI apps for Windows is painful

#526
post #116

Earlier quoted context omitted.

Never coded a GUI app but speaking of regressions: As a heavy windows KB user, losing the ability to alt+letter all the things to /quickly/ navigate windows apps is incredibly frustrating. I've read that Mac OS envy infiltrated the WinUI time and while some may prefer the aesthetics, on Windows 11 apps like mspaint I can no longer navigate anywhere near as quickly. From milliseconds to multiple seconds. I'm incensed…

It's funny that you mentioned apple because their system shortcuts are integrated as hell and they even let you map them in the OS -> App level, way better than anything MS has ever shipped.

It's never been better than what MS had and if you think so you've never used the MS way as I do.

Alt+underlined letter with no menus opens opens whichever menu maps to that letter

After which any [unique, as they mostly are] underlined letter activates the press for that menu item.

There is no equivalent to the speed of this in OSX, even with third party software.

Very very happy to be proven wrong on this

Re: Writing GUI apps for Windows is painful

#527
post #510

Earlier quoted context omitted.

No go for net 4.6 which is installed on every currently supported Windows version back to the original Win10 released almost a decade ago. There are still people running Win 7 but I wouldn't worry about that group having a streamlined experience. With 4.6 they can still install the runtime manually.

Why 4.6 and not 4.8? (I assume you mean .Net Framework and not .Net.)

Anyone reading this thread will surely roll their eyes and move on to a different solution. Event the people who recommend this stuff to others get confused about what the fuck is even happening in the .NET ecosystem.

Re: Writing GUI apps for Windows is painful

#528

Earlier quoted context omitted.

I'm confused by your alt key navigation in paint. I just opened paint and it still supports alt+key to do things in Paint.

No it doesn't. Alt+space bring up the window system menu to restore/maximize/close? Alt+f, a to save as? Negative.

Alt, f, a, p, saves as PNG, or j for jpeg, or o for other. Its changed slightly, but it is there.

Alt+space is still a shortcut, but it was repurposed.

You didn't "los[e] the ability to alt+letter all the things", they just slightly changed some of them.

Re: Writing GUI apps for Windows is painful

#529
post #468

Earlier quoted context omitted.

Right. I want your app to have consistency with the platform I’m using. Not between all platforms. With the exception of games try to use the native GUI. It’s the best choice most of the time.

Depends on the app size also. Is your app as large and important as the OS of the device (Chrome/facebook/etc...) you should probably have similar language across devices. Is your app very large but not that large? (Slack/teams come to mind) I think you can go either way. If you are smaller than that (hint: you are) then you should comply with the design language of the platform, even if that means somewhat large cha…

I disagree. I think the only apps where a custom UI make sense are games and I’m willing to accept highly specialized business apps that have their own conventions. Thinks like Blender, AutoCad, Logic, etc.

I’d still like to see them try to match a little, but they’re specialized enough I get that may be a better path.

Chrome? Facebook? Slack? Teams? No.

I’m not saying things need to look like MyFirstWin32App built with VB6 in 20 minutes.

But use the system controls and conventions. Custom colors and layouts can be fine. But if you want to make your own UI toolkit then make your own OS too and leave my computer alone.

Re: Writing GUI apps for Windows is painful

#530

Earlier quoted context omitted.

It seems to have become the no-brainer choice. Lots of mobile apps just load html views, and probably most desktop apps I see these days are just electron apps. You can reason about the best use case for HTML vs XAML vs Swift, but it seems that the speed of development time and the insane amount of community support out there has made the web the clear winner

And the quality of software has gone downhill. HTML and CSS can be RAD, but they rely on millions of line of code in the browser engine while having subpar models for gui layouts and custom widgets. And building a native app is not that necessarily complex, it's just different.

The market prioritizes speed of development and cost of labor over runtime efficiency. Thus, until native app frameworks become easy and fast to develop for, we will continue to see everything turn into a web app
Post reply on HN