7 ms·
Stdwin: Standard window interface by Guido Van Rossum [pdf]
- ale42 6mo ago(1988)
- shevy-java 6mo agoHow old is this? 1989 or something like that? Guido was probably quite young when he wrote it. Looks like LaTeX? Edit: Someone else wrote 1988 which I suppose makes sense, as the latest reference at the end is from 1988 too. So then Guido was 32 years old.
- f1shy 6mo agoI would say roff, not LaTeX
- ksherlock 6mo ago100% correct. The GitHub repo linked elsewhere include this documentation in (dit)roff (-ms) form.
- ramon156 6mo ago> quite young > 32 years old As a ~20 year old this feels so weird to read. I'm still considered young in ~10 years?
- ChrisMarshallNY 6mo agoI’m nearly 64. Back when I was a teenager, people in their 20s were “old farts.” Nowadays, I look at people in their 40s, as “kids.” Here’s my first ever engineering project (1987): https://littlegreenviper.com/wp-content/uploads/2022/07/TF30194-Manual-1987.pdf https://littlegreenviper.com/wp-content/uploads/2022/07/TF30... I was 25, at the time, and a fairly newly-minted EE.
- FpUser 6mo agoBrother in arms ;) I just turned 65. Own 1 person custom software development company and am very much active professionally. Started programming in the 80s while working as a research scientist.
- romankolpak 6mo agoIt's all relative. When I was 20, I'd consider myself old at 36. Now when I am 36, my definition of old has shifted and it's now somewhere past 50. I guess "old" for a person is just that person 10+ years older :)
- rowanG077 6mo agoYoung is relative. To an 80 year old someone who is 40 is young. To an 8 year old someone who is 20 is old.
- magpi3 6mo agoYes
- swiftcoder 6mo ago> As a ~20 year old this feels so weird to read. I'm still considered young in ~10 years? You'll still feel young too! It's really weird when you get to your mid 30's and realise that all the 20-somethings view you as old
- Scarblac 6mo agoAnd later too! I'm 51 but mentally I still feel like 50.
- Scarblac 6mo agoConsider that careers run from 20 to 70 or so.
- dejv 6mo agoCareers could be very very long. My relative was kicked out of academia after finishing his postdoc and has to work manual jobs till the end of comunism in my country. His career actually started after 60 and he died just a few weeks before his announced retirement at the age of 96, teaching 5 to 6 classes a year in CS department.
- AlienRobot 6mo agoYou'll always be young according to yourself.
- sgbeal 6mo ago> As a ~20 year old this feels so weird to read. I'm still considered young in ~10 years? An anecdote for you... In Summer 1997 i was 24 at a family reunion, listening to my grandmother and several other seniors talk about some recent interaction my grandmother had had with a delivery person. One of her friends asked her, "how old was he?" i'll never forget either her response or my jaw-dropping which followed: "Oh, he was a _young_ man. About 50, I guess." (Yes, she actually stressed the word _young_.)
- sgbeal 6mo ago> As a ~20 year old this feels so weird to read. I'm still considered young in ~10 years? One of these days, maybe as early as your mid-/late-40s, you will be consulting with your a medical doctor and realize that you are the oldest person in the room.
- bigstrat2003 6mo agoIt's all relative. When you're 40+ (which most people attain), 30 does seem young.
- DaOne256 6mo agoThis should be linked as the original post: https://ir.cwi.nl/pub/5998 https://ir.cwi.nl/pub/5998 It says 1988 there.
- decasia 6mo agoIt'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.
- pantulis 6mo agoI find it amusing that the paper doesn't include any screenshots. Those were the days!
- akreal 6mo agoI 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.
- robotresearcher 6mo agoThe readers' natural question is 'does this look reasonable on multiple platforms?'. A two-second glance at two or three screenshots goes a long way to answering that.
- pantulis 6mo agoIn hindsight, this sounds more reasonable in 2026 where graphical documentation is taken for granted. In those days I think anyone would have spooled the .ps to their nearest laser printer and begin building something quickly with it just to check the looks. I remember following a "build your own text windowing system" tutorial printed in a hcontinous paper back then
- robotresearcher 6mo agoThe document looks to be nicely rendered, likely from Postscript. Maybe generated by roff, since it doesn't look like TeX. Screen cap bitmaps could be converted to EPS and inserted into the Postscript. If it was a PS document, you would have to spool it to a printer or screen renderer to read it anyway. The X Window System debuted in 1984, so on-screen renders would have been not too hard to find in a CS department in 1989.
- spacedcowboy 6mo agoI remember running this on an Atari ST with MiNT as the multi-tasking kernel. It took a lot less resources from my 4MB STe than running X11 did. It was actually quite usable to compile with gcc in one window and edit (with vi, of course) in the other.
- red_admiral 6mo agoA 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%20Programming%20with%20wxWidgets.pdf https://wxwidgets.org/docs/book/Cross-Platform%20GUI%20Progr...
- jon-wood 6mo agoThis is all true, and if I were building a tool which I'd expect to be widely use I'd approach it as a common core with platform specific GUI layers like Ghostty (and I'm sure other applications) does. Sometimes though you're throwing together a quick and dirty UI for a specific use case that you just want to run on a bunch of different platforms and this sort of toolkit is great for that. It can be the difference between the application existing at all and it being available on a range of operating systems.
- ogogmad 6mo 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. Win32 + Proton/Wine? No idea.
- zahlman 6mo ago
- westurner 6mo agoToga by Beeware (Dr Russell Keith-Magee,) realizes this goal, I think; https://toga.beeware.org/en/stable/ https://toga.beeware.org/en/stable/ : > 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
- robotresearcher 6mo agoA GUI toolkit paper with no images. Weird choice. Text layout engines could handle images in 1988, so it's not down to that.