back

by schmorptron·4y ago·view on hn ↗
wanted to disagree, but then noticed that the open source Desktops I think look good all sort of operate under that umbrella, like Gnome and elementary all have very strict design guidelines.
1 comments
I think another problem is that there's no way, as far as I know, to disallow an app that doesn't stick to those guidelines. I mean, maybe the Gnome default applications can strictly stick to those, but what how do you ensure that third-party apps stick to the guidelines?

Apple seems to have solved this with a combination of big community of enthusiasts and an App Store for macOS, and just the App Store for iOS. A major fear of Apple developers seems to be the prospect of their App being removed from the App Store for unclear reasons.

It's hard to imagine a model where apps can remain FOSS but have the same sort of strict design guidelines.

NeXT took a different tack. Rather than enforce a set of requirements and guidelines, NeXT produced a library and set of tools so compelling that only an idiot wouldn't use them -- and these tools (such as Interface Builder) strongly encouraged implementation of NeXTSTEP style. Whereas MacOS has historically been all stick, NeXTSTEP was all carrot.
This is also roughly the Qt/KDE approach. Except that there are alternatives such as GTK and wxWidgets that have to be supported too.
IMHO QT, GTK and wxWidgets are, put simply, awful. They are good examples of limited toolkits designed in part with cross-platform development in mind, rather than libraries designed with novel or even good interface design. They proliferate and compete on X despite there being poor interoperability among them. They seem to be focused on copying Windows (hardly a paragon of good interfaces) design elements and in enabling skins rather than deep UI functionality.

I come from a background of early MacOS, NeXTSTEP, and the Newton, three environments which prided themselves on developing novel and useful interfaces tailored to the specific needs of their platforms. The X11-inspired cross-platform toolkits are head-shakingly bad compared to these efforts. For example, GTK on Maemo was so embarassingly inferior in design to NewtonScript (a GUI 10 years before it note) that I wrote an entire article about it.

I think the only decently crafted open source UI on Linux/BSD right now is Android. Because Google has the resources and heft to make people do it right.

Qt is strongly associated to the KDE project, which takes it's heritage from CDE et Al., which predates Windows a fair amount. They didn't really copy Windows, and actually did a lot before Windows and still do many things Windows can't.

Also Qt is fairly independent of X11. It can operate fully independently from X and nowadays is basically agnostic to X. I suspect GTK is similar.

> CDE et Al., which predates Windows a fair amount

Windows came out in 1985.

CDE came out in 1993.

> Also Qt is fairly independent of X11.

You seem to be missing my complaint. By supporting multiple platforms, Qt is forced to support the lowest common denominator of all of them. Which means it's mediocre on all of them. Being cross-platform is fine: but no cross-platform systems can be held up as paragons of UI design excellence, not by a long shot.

> Whereas MacOS has historically been all stick, NeXTSTEP was all carrot.

Eh? MacOS had the same tools, and until quite recently the Mac App Store wasn't even a thing (and, even today, the presence of, say, Slack, or the LG monitor utility, in the App Store would argue that Apple is not particularly worried about UI stuff there...)

You do know that MacOS predates NeXTSTEP, right?
MacOS != macOS.

MacOS (capital M, no space) is generally classic MacOS, 1984-2001.

macOS (small m, no space) was formerly Mac OS X, later OS X, sometimes quoted as Mac OS (note, space between Mac and OS).

MacOS: 1984-2001

Mac OS X (formerly NeXTstep): 2001-2012

OS X: 2012-2016

macOS: 2016 onwards.

NeXTSTEP -> OPENSTEP -> Rhapsody.

and macOS is still Mac OS X in places.

If we're gonna be anal about it, it's NeXTStep -> NeXTSTEP -> NeXTstep -> NEXTSTEP. Likewise OpenStep -> OPENSTEP.

But yes, by MacOS I had meant the original.

All good corrections. Thank you. :-)
The way to at least improve it is to use something like Qt and to make GTK consistent with Qt.

You won't be able to make everything consistent but you can make everything at least look unified.