This should be linked as the original post: https://ir.cwi.nl/pub/5998 It says 1988 there.
Still seems like it could be useful
Stdwin: Standard window interface by Guido Van Rossum [pdf]
41–50 of 59 posts
Re: Stdwin: Standard window interface by Guido Van Rossum [pdf]
#42It's a neat project. Write cross platform desktop apps in C. Presumably it would not have been very usable in practice in the late 1980s, because of all the OTHER system interfaces that still weren't portable, even if the windowing system was available in a portable way. I can remember the subsequent period in which Java desktop apps were relatively common. They had cross platform UI by default. But the problem was:…
Honestly, "native UI" gets so much worse with every passing year that I don't even want native UI. I want old windows UI. I saw a screenshot of GTK 1 and the first thing I thought is that I'd rather make something using GTK 1 than GTK 3. Unfortunately I asked an AI chatbot about it and they advised against it because of "security" :(
Re: Stdwin: Standard window interface by Guido Van Rossum [pdf]
#43A portable GUI interface is a hard problem, unless you mean "a browser window without an URL bar" and your controls are HTML/CSS components. Windows has keyboard shortcuts on buttons, but you can set per-user whether they appear underlined always or only when you hold Alt. Mac always has exactly one, immovable menu bar; and Enter doesn't close a dialog box. GNOME can rollup or pin windows from the title bar if you ad…
> […] an abstraction layer on top of several genuinely different systems[…]
> […] wxWidgets is perhaps the closest we can get[…]
For good reasons—because you'll likely exhaust yourself or starve of resources before you finish the project, and because it also doesn't tend to help with the readability of the codebase—it should be ingrained in all programmers to be strongly against "portability" approaches that try to make platform X work like platform Y by providing implementations of Y APIs that work on platform X. (See also yesterday's news by Wasmer about their AI-coded approach[1].) The goal is almost always better achieved by defining, up front, the minimum interface that the program needs to be able to work on the host—which forms the kind of abstraction you're talking about—and then connecting that to the actual host APIs (which usually suck to use, anyway), repeating for each platform. Almost.
Desktop UI toolkit APIs are one exception to this—which is unfortunate, because it's like the one use case where people actually try to do the opposite of the usual impulse, and we're all worse off for it.
The major desktop platforms are so few, and the APIs are so stable and so slow-moving, that it's well past the point where the cross-platform native app solution should have been adopting/implementing the platform Y APIs everywhere, where "platform Y" is Cocoa[2]. Like, at the latest, the Oracle v. Google decision in 2021 should have been the last hurdle. People get weird about this, though, and confuse APIs with implementations, or conflate Cocoa with Objective-C (and/or a mandate to program in Objective-C), or think this amounts to a claim that this means we should all be using GNUStep. It's not. It's not any of things. It's very simple: the window-and-widget APIs across all desktops should be Cocoa-shaped. That's it.
1. https://wasmer.io/posts/edgejs-safe-nodejs-using-wasm-sandbo...>
2. https://news.ycombinator.com/item?id=30359206>
Re: Stdwin: Standard window interface by Guido Van Rossum [pdf]
#44It's a neat project. Write cross platform desktop apps in C. Presumably it would not have been very usable in practice in the late 1980s, because of all the OTHER system interfaces that still weren't portable, even if the windowing system was available in a portable way. I can remember the subsequent period in which Java desktop apps were relatively common. They had cross platform UI by default. But the problem was:…
Honestly, "native UI" gets so much worse with every passing year that I don't even want native UI. I want old windows UI. I saw a screenshot of GTK 1 and the first thing I thought is that I'd rather make something using GTK 1 than GTK 3. Unfortunately I asked an AI chatbot about it and they advised against it because of "security" :(
Re: Stdwin: Standard window interface by Guido Van Rossum [pdf]
#45Earlier quoted context omitted.
> cross platform GUIs are ugly by default, compared to fully native desktop apps, because they don't entirely replicate the affordances or the style of the platform; I think this is an implementation detail. It's up to the software stack whether it leaves off before drawing the UI elements on screen, or goes ahead and takes on that responsibility too. The wxWidgets toolkit uses the runtime platform's UI, so it does n…
When OS X was new, Apple was still under the assumption that Java on the desktop was important, and they built an in-house Java with full Aqua support. It was still _terrible_! All the Aqua-specific affordances like animation or shadows were janky or absent. Sizing and positioning always felt weird because the application was written assuming Windows-shaped controls. Basically, cross-platform GUI only looks good on t…
Formulated more rigorously, cross-platform GUIs and outsider, non-Mac-first GUIs ported to Mac OS look (and feel) bad on Mac. The opposite is virtually never true though; there aren't really high standards for beauty or consistency on the other platforms. Windows, for example, in this decade is a mishmash of different toolkits (even from Microsoft). Desktop GNU/Linux people comprise a faction consisting of people that either doesn't care about GUI beauty or have standards that are about on par with Windows folks—and are generally so grateful just have an app that ships* their platform, that they won't reject outright any Mac-first app (and that would be true even if it painted itself as a pixel-for-pixel match of the Mac OS version).
* and runs; I still run into "cross-platform" apps that are Electron builds packaged as AppImages that still terminate at launch, even if you try to run them on something as unremarkable as Ubuntu
Re: Stdwin: Standard window interface by Guido Van Rossum [pdf]
#46> Toga is a Python native, OS native, cross-platform GUI toolkit. Toga consists of a library of base components with a shared interface to simplify platform-agnostic GUI development.
> Toga is available on macOS, Windows, Linux (GTK or Qt), Android, iOS, for single-page web apps, and console apps
Re: Stdwin: Standard window interface by Guido Van Rossum [pdf]
#47A portable GUI interface is a hard problem, unless you mean "a browser window without an URL bar" and your controls are HTML/CSS components. Windows has keyboard shortcuts on buttons, but you can set per-user whether they appear underlined always or only when you hold Alt. Mac always has exactly one, immovable menu bar; and Enter doesn't close a dialog box. GNOME can rollup or pin windows from the title bar if you ad…
[0] https://en.wikipedia.org/wiki/HTML#Development
Re: Stdwin: Standard window interface by Guido Van Rossum [pdf]
#48This should be linked as the original post: https://ir.cwi.nl/pub/5998 It says 1988 there.
Re: Stdwin: Standard window interface by Guido Van Rossum [pdf]
#49I find it amusing that the paper doesn't include any screenshots. Those were the days!
I also expected screenshots there, especially given the word "interface". Turns out, it's not about user interface (UI), it's about programming interface (kinda API). It allows calling window-related functions on Macintosh, X Window System, and Atari. So the resulting windows were looking like a native UI, I assume.