Random Questions

Feh, Sun’s command line dbx debugger was awesome. It was a fully compliant implementation of the Korn Shell on top of being a debugger and you could even use it as your shell if you wanted to. Using it as your shell had the nice feature where if a command crashed while running it, it would immediately jump into the debugger at the crash point.

GDB’s TUI mode does help a lot if you’re using GDB. Also in the past few years they added Python scripting to it, which is also quite nice. But yeah, it’s not the most friendly UI out there, but that goes for nearly every command-line debugger.

LLDB has made some good progress in a friendly command line UI though. Hopefully the GDB folks will also work on something like this:

Don’t get me started on Node and npm. The biggest culprit here is Electron. While there are some very good Electron-based apps I use, I find the whole concept behind it to be ridiculous.

Write desktop GUI code using the native GUI libraries on your platform of choice. If you want to be cross-platform with minimum effort, use a cross-platform UI toolkit like Qt or WxWidgets.

The problem is that Qt and WxWidgets make ugly old fashioned GUIs. You can’t get the UX or UI of a modern app with those.

Also, even if you have equal experience with Qt/Wx and Electron, Electron is way easier to work with.

First, what you consider “old fashioned, ugly GUIs,” I consider, “Platform Standard GUIs.” Desktop apps are not web apps and they should follow the proper conventions of desktop apps for their respective platforms.

That said, if you want a more web app-styled look, there is always QtQuick:

.

Maybe if you’re a web programmer. Not so much if you’re a traditional desktop programmer.

Then again, I’m old school enough that I bitch about the amount of system resources a Java desktop app requires to run, so it’s no surprise I’d feel the same about something as bloated as Electron.

They should, but Qt follows the conventions of respective platforms as they were 10+ years ago. The only way to get modern native apps is to actually write them using the native libraries, like Cocoa or whatever the most current one for Windows is. The problem is, of course, you now have to rewrite all your GUI shit for every platform. All of the cross platform desktop guis are sad times.

Eh, I don’t think it’s that bad with Qt, but that’s just me. Most of the Qt apps I use look pretty close to native on the platforms I use them on. I mean, Wireshark uses Qt and looks pretty good to me:

If you want something that actually looks even more native, WxWidgets simply wraps around the native OS toolkit. I mean, this looks pretty close to any other native app to me as well:

Of course, this is assuming you want a desktop app that actually looks like a desktop app, as opposed to a webapp or phone app.

Personally, I think too many developers are just afraid of learning C++. Hell, or even C# (there are cross-platform toolkits for C# as well).

Here are some real examples:

Old style Windows Snipping Tool:

image

New official replacement Snip & Sketch:

Old Windows Calculator:

image

New Windows Calculator:

image

Those apps you posted screenshots oh look like 10-20 year old trash. Some serious horse and buggy GUI action.

I agree with you on all the technical aspects, especially with regards to performance for the actual users. But for a GUI library or framework to be viable it has to produce fully featured modern GUIs. Gtk/Wx/Qt/Java/etc. have never been able to do that.

1 Like

I still have the Snipping tool. No Snip and Sketch installed on my Win 10 machine that I got a few months ago.

And those new apps you pointed out look like tablet/phone apps shoehorned onto a desktop. They don’t look like desktop apps.

Now, if you really want a phone app on a desktop, well, QtQuick, which is part of standard Qt now, lets you do so:

qtquick-demo-calqlatr

Also, those particular examples you gave are not cross-platform at all anyway. They’re purely following Windows (and I’d argue Windows Phone) guidelines. If you look at Apple’s own examples of apps for OS X, you’ll see they look much more like traditional desktop apps with proper menus and toolbars:

That’s exactly what I’m saying. All cross-platform GUIs are trash.

Also, every example app you just posted is terribad. It seems your definition of “looks like desktop app” is “has a gui design from 10+ years ago.”

And every example you posted is also “terribad.” They all look like apps for a defunct OS that no one liked (Windows 8/Phone/RT).

If I were to show you those same apps I provided running on MacOS, however, they’d look pretty much just like the state of the art on MacOS. That’s because Apple still insists that desktop apps look like proper desktop apps with windows, menus, toolbars, etc:

https://developer.apple.com/design/human-interface-guidelines/macos/windows-and-views/window-anatomy/

For example, the Mac version of that DiffMerge looks pretty much like Apple’s own apps as it follows Apple’s own guidelines for the most part:

And Electron doesn’t solve the problem of cross-platform GUIs anyway, although I guess we are on the same page here. At least it doesn’t solve the problem any better than Qt/WxWidgets/etc. does. It just goes about its own half-assed solution in a different way. If that’s the argument you’re making, then yes, I’ll agree with you here.

TL:DR;

The only way to make a truly good desktop GUI app is to use the most current native library, and use it well.

All cross platform GUI libraries have always been crap at least in terms of getting a modern UI.

Electron is crap, but at least it is easier to develop with and the apps don’t LOOK like crap (at least not always), even though they are still crap in many other ways. For example, pretty sure the native Slack app is Electron. At least it has a modern UI/UX despite basically just being a Chrome tab in its own window.

Agree up to this point.

Depends on what you consider “modern.”

Eh, depends on how you feel about the hamburger menu instead of a proper menu bar. On a Mac, I guess it doesn’t matter as there is dedicated space for a menu bar anyway. Personally, I think the hamburger menu is utter crap for a desktop app, but it seems to be popular. Otherwise, yeah, the Slack app is fairly attractive and functional.

Electron’s big claim to fame is that it allows web designers to build desktop apps and it allows easy porting from web apps to desktop apps. That’s about all it has going for it.

I suppose the only real reason why Electron apps tend to look more “modern” than other cross-platform GUI apps is because most of the companies making them have webapps they’ve already developed using the best UI/UX/graphic designers they can get and it’s relatively trivial to bring it over to Electron. Most of the Qt/Wx/etc. apps have existed for years and have kept up the same UIs.

There is obviously no reason why someone using Qt (even without QtQuick) or Wx or whatever couldn’t make an app that looks more like Slack or whatever so-called modern app, provided they spend the time to do so. Presumably the main reason why is that there are no in-built widgets in those toolkits to do so as they use or emulate the native widgets on the host OS. I don’t know how the new Windows Calculator or Snip and Sketch tools are implemented, but I’m willing to bet that somewhere deep under the covers they’re still using classic Win32 calls that Qt and Wx use, perhaps with some extra libraries on top so that the developer doesn’t have to manually define canvas areas to draw their own buttons and what not.

I also find it interesting that you picked on some incredibly simplistic apps when giving your UI examples whereas mine tended to be for more sophisticated applications with greater functionality. So let’s look at something from Microsoft that’s a sophisticated application and presumably using their most modern toolkits, Visual Studio 2019:

Its UI much more closely resembles that of the examples I provided than those you provided. But it is an app meant for people to get real work done in, not to grab a quick screenshot or do a quick calculation.

I don’t get why everyone wants new flashy GUIs. The windows 7 Classic skin was the last time I actually liked how windows looked. Aero is shit.

1 Like

People seem to care more about glitz and glam than usability it seems…

Can Magneto deflect a blast from a laser? Nevermind I just realized he has deflected Cyclops laser blast before.

Magneto can do almost anything.

I have a love/hate relationship with Adobe CC GUIs, but at least they don’t feel too dated while being consistent across platforms, nor have they changed all that much in the last 10-20 years

1 Like

I’ve always wondered why we can’t use html/css (no js bs) as the presentation layer for desktop apps rather than having to use WPF, WinForms, whatever mac uses, etc. I don’t think we need a full up web browser, but just a way to use the html/css to guide the rendering of the components and allow whatever language your using to hook into them
(This may betray a deep lack of knowledge on the subject, 90% of my work is in the back end, I come up from the command line to do gui stuff once a decade)

I’ve never had one, but you’re making me wonder what do chromebooks have? For anything other than running chrome?