Stdwin: Standard window interface by Guido Van Rossum [pdf] (ir.cwi.nl)

by ivanbelenky 56 comments 85 points
Read article View on HN

56 comments

[−] decasia 58d ago
It'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:

1) 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;

2) in the Java case, it seemed heavyweight to install and sluggish compared to native apps;

Point 2 would not have applied to stdwin, as it would have produced small compiled binaries I suppose, but Point 1 would have.

So in the end, obviously web apps (and partly, Flash) took over the niche that "cross platform desktop apps" had once tried to fill, and then it was something of a dead zone until Electron, as far as I remember.

[−] DaOne256 58d ago
This should be linked as the original post: https://ir.cwi.nl/pub/5998

It says 1988 there.

[−] red_admiral 58d ago
A 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 add the buttons for it. Whether the native dialog layout has the ok button to the left of the cancel button depends on the OS and the writing direction (p206 of [1]). Not every platform has a native calendar widget. And so on ...

Worse still, you're building an abstraction layer on top of several genuinely different systems, that users of different platforms will expect to work differently in the first place. Go down this rabbit hole and you end up with "show a help button on modal dialogs only on platforms where this is usual, and where you can open the help window without closing the modal first". "Portable native-GUI" is almost an oxymoron; wxWidgets is perhaps the closest we can get where at least you can ask for a wxFindReplaceDialog abstraction (p229 of [1]) and get the cancel button in the platform-default place, even if "Find-Replace Dialog" is not a feature included in the OS' component library itself.

[1] https://wxwidgets.org/docs/book/Cross-Platform%20GUI%20Progr...