Neat OS/2 feature: The “settings” window of an icon usually shows some generic options. That’s what I’m used to these days. In OS/2, it can also show program-specific settings. The video shows me configuring two launchers for FTP-PM with different connection settings.

Digging deeper into the WPS (e.g., what do I have to do to create such a settings dialog for my own programs) is on my not-necessarily-small TODO list. I’ll get there … eventually.

#RetroComputing #OS2 #IBMOS2

@movq Funnily, this is what everyone complained about with iOS, where apps could store settings in the system's Settings app. Turns out it split every app's settings into two places, toggles and defaults in the app itself (like, adjust the focus in the camera app right now vs. set up the default flash settings in Settings app).

But I love that this stores different settings for a symlink to the app (or is that a copy?), makes things very flexible and uses the file manager as a bookmark manager.

@uliwitness Hmm, I’ve never really used iOS, so I can’t compare it to that. In my mind, the OS/2 thing was like specifying command line arguments, ftp --hostname foobar --user foo …, just with a fancy and standardized GUI for it. 🤔

Then again, I don’t really know yet how those settings are passed to the program. There’s a chance that the whole thing is complicated and inelegant after all, no idea. 😅

@movq Yeah, Windows has the option to have symlinks pass command line arguments, would make sense that OS/2 would have that feature too, and Apple's A/UX already had Commando for building GUIs for command line arguments, so this could be a lot simpler than the custom dynamically-loaded GUI modules Apple used on iOS for their per-app settings.
@movq @uliwitness elegant, but complicated.
Those icons are objects. Their class determines their behaviour.
Apps declare their classes to the WPS, together with a DLL that implements the classes.
For the settings case, the DLL overwrites the function that opens the settings page and adds / removes tabs.
The actual settings are then either stored in extended attributes or some other object storage.
All this works due to SOM, which..... has a learning curve.
@movq I can hear the sound effects in this GIF (but I imagine you turned them off)
@loadhigh Wwwwwuiup. 😂 (That VM runs without sound, yes. And I hardly know those sounds, because my computer back then did not yet have a soundcard.)
@movq @loadhigh Back then I bought a sound card just for those sound effects. :)
Windows had sound effects, but it had to stop the whole system whenever it played a sound, so it couldn't do much. OS/2 had actual multitasking, so it could add sound effect on anything.
@movq IBM C Set++ 2.1 (I think that's the right version) doesn't really have an IDE per se. You create special solution folders and special project folders and put source code in them and then use the settings dialog of the folders to configure everything

@Wearwolf Not quite sure I follow. You mean this? 🤔 https://www.computerhistory.org/collections/catalog/102777077

I also guess/hope that one of the books on Ko Myung-Hun’s page has more info about this area of the WPS.

@movq yes, that's the one

It actually comes with two versions of the tools. WorkFrame 1.1 is a more traditional IDE and WorkFrame 2.1 is "The first development environment to exploit the full power of the OS/2 workspace shell" (according to it)

@movq @Wearwolf "Modern" IDEs have to reimplement the whole desktop. They're both file managers (tree view on the left side) and window managers (tabs of open files).
OS/2 had Workframe/2, which extended the WPS:
https://archive.org/details/ibmworkframe2version2.0beta

Instead of duplicating the desktop, an IDE just provided editors and compilers which integrated with Workframe/2. Each project could use any compilers or editors.
Like the UNIX idea of small programs working together, but in a GUI.

IBM WorkFrame/2 Version 2.0 ( BETA) : IBM : Free Download, Borrow, and Streaming : Internet Archive

IBM WorkFrame/2 Version 2.0 (BETA)Version 2.0 (BETA)Document Number XXXX-XXXX-XXJuly 16, 1993BETA

Internet Archive