6 ms·
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 OTH
by decasia 6mo 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.
- flohofwoe 6mo agoThe other popular option for cross-platform UI apps was Tcl/Tk: https://en.wikipedia.org/wiki/Tk_(software) https://en.wikipedia.org/wiki/Tk_(software) ...which even leaked into other language ecosystems like Python: https://docs.python.org/3/library/tkinter.html https://docs.python.org/3/library/tkinter.html
- graemep 6mo agoWhich had the ugliness problem then, although it is a lot better now.
- flohofwoe 6mo agoAFAIK Tk simply wrapped native widgets though? E.g. when the result was ugly, then that was because the platform's native UI framework was ugly.
- cmrdporcupine 6mo agoIt did not. It had/has its own widget set. It didn't look ugly by early 90s standards (basically Motif look&feel) but didn't evolve. It also always felt like a foreign body inside Python because Tcl was always still there along with it.
- hulitu 6mo agoNot all people love Material design. The fact, that the Label became the main UI widget, is an unfortunate accident.
- JohnDeHope 6mo ago> 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 not draw the widgets themselves. Java Swing took on the task of drawing the UI elements on the screen in its own style.
- StilesCrisis 6mo agoWhen 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 the platform that it was originally designed for. Unless the other platforms make zero interesting choices, they will always look worse.
- cxr 6mo ago> cross-platform GUI only looks good on the platform that it was originally designed for 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
- AlienRobot 6mo agoHonestly, "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" :(
- tosti 6mo agoThat's the false assumption that unmaintained is insecure. Any old DOS game in Dosbox would be insecure by that logic. So if I run Dune2 in dosbox, is that a security issue? Of course not, but if you were to load a bitmap from the network and feed it to GTK1 for displaying, there could well be an overlooked issue lurking around. But you need to look at the greater picture, not just "old==insecure"
- allthetime 6mo agoDoes the chat bot brush your teeth for you too?
- pavon 6mo agoYou might like FLTK if you don't care about matching native UI, and appreciate 90's design sensibilities. Unlike GTK 1.x it is still maintained.
- pjmlp 6mo agoPoint 2 nowadays feels like high performance when compared to Electron crap.
- c-smile 6mo ago> cross platform GUIs are ugly by default, ... was said reading it in a browser on who knows what OS/DWM. I mean that 90% (if not more) of all UI interactions happen now in a browser or in multi-platform applications (e.g. messengers, SublimeText, VSCode, etc).
- CyberDildonics 6mo ago1) 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; These two things don't connect. Not being identical doesn't mean ugly or only one GUI would be considered not ugly.