Templates were cool, but I never really used them. In fact, I never really used the Workplace Shell. I only programmed for the shell. It was a shame, I tell you.
It was weird, as in W-E-I-R-D, thinking about it now. I had the baddest O-O program on the planet, and I had to use a command line. Why? Because in order to "debug" or compile/edit/test, I had to constantly tear down my shell in order to allow my WPS dlls to be copied over the ones the shell was using. So, I had written all this test harness code which would launch PMSHELL, allow me to use it for a little while, make some changes to my code, stage them for use in the SHELL, and then *bam*! bust a move and tear the whole shootin' match apart and start over.
It wasn't pretty. And that was not even using a source-level debugger! Which was a total PITA to use because of the *gasp* SIQ (since the C++ debugger was a PM program....IPMD....it couldn't reliably debug without hanging the shell, which 4 out of 5 times would hang OS/2). Because IBM wouldn't fix the stooopidest of limitations in OS/2: namely, one could not *attach* a debugger to a running process. The process had to be running by the debugger in order to debug it. Gee....let's see, Unix could do this 20 years ago. Windows did it early '90s, but IBM's advanced OS/2? Nope. The result? I'll get to that below.
Reboot city, man.
The biggest PITA was the freaking skinning stuff I wrote for the OS/2 Task Manager. Woohoo! That *always* required a reboot between compile/edit/test.
You know what the IBMers used to debug WPS code? The OS/2 kernel debugger. So, they were supposedly writing high-level OO code, right? Beautiful OO code generating pretty OO UIs, and they were debugging in assembler.
No thanks.
Something tells me that the KDE and Gnome guys have it better, I tell you, and the result? Better code, more reliability, and better ability to turn on a dime and write code that does things like templates, and drag with that mouse line you like.