General > General Technical Chat
A Companion to the X-Y Problem - The IKEA Effect
tooki:
A closely related effect has long been known as “Not Invented Here” syndrome: the reluctance to use something built by others, in favor of rolling your own. NIH syndrome is responsible for countless instances of shitty user interfaces in software. Many developers take misplaced pride in doing everything from scratch, even things like drawing menus, buttons, and text boxes, rather than using the OS’s widgets. The result of this reinventing of the wheel is that they forgo the perfectly round wheels the OS provides, instead delivering 7-sides wheels with eccentric axles, since they haven’t had years of refinement and debugging. Genius!
T3sl4co1l:
Conversely -- when dealing with OS APIs, or compatibility layers (Qt, wxWidgets, etc.), or VMs (JDK's AWT or Swing, etc.), you have your choice of, well... not very good, crusty, messy, etc. I've heard complaints about Qt (crusty, messy?), worked with AWT and a bit of Swing myself (they're fine, honestly), not really worked with much Windows myself (it's a mess)... I'm not aware of any that is actually bottom-to-top coherent, nice, and compatible; the last one especially, since everyone else is a cluster.
And yes that includes *nix, because *nix is not at all immune to the underlying phenomenon at play, indeed FOSS projects are likely more vulnerable if anything.
It's... all but a proven theorem? that any sufficiently advanced codebase, API, toolkit, whatever -- is an incoherent mess, evolved over many years or decades, over thousands of systems and dozens of paradigms; you have your choice but they all suck.
Really, this is about the point where software and politics overlap. You have your choice [from this small proscribed set of options], and they all suck.
Tim
tooki:
The cross-platform GUI toolkits tend to be awful, since they cannot adhere to the minutiae of each target platform’s native behaviors. The OS native controls (at least on major platforms) have been fine-tuned and debugged over the years.
Anyway, IMHO, 95% of the times developers want special functionality in a widget (the typical justification for doing a custom control), they would have been wiser to just use a standard control instead. Standard controls don’t surprise the user with unexpected behavior. And they’re reliable, compatible, and get many accessibility features for free.
nctnico:
--- Quote from: tooki on May 29, 2020, 09:06:03 pm ---The cross-platform GUI toolkits tend to be awful, since they cannot adhere to the minutiae of each target platform’s native behaviors. The OS native controls (at least on major platforms) have been fine-tuned and debugged over the years.
--- End quote ---
wxWidgets uses the platform's own controls; it doesn't even provide controls unless the platform doesn't support a particular control natively. AFAIK on Qt you can choose between Qt's own look & feel and the ones from the platform. I wouldn't consider GTK to be a cross-platform GUI toolkit; it is more a band-aid to port a Unix application to Windows quickly but the result is mediocre at best. I agree that software should use the platform's own controls in order to create a uniform look and operation.
tooki:
That all sounds nice and dandy, but it’s not just about the look of the controls. As you mention, they differ in operation, too. But more importantly, not all controls exist in every OS. MacOS in particular has a number of native controls with no Windows equivalent.
I understand the appeal, to a developer, of a cross-platform GUI toolkit. But in practice they entail a LOT of sacrifices and compromises.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version