10 ms·
I developed for OS/2 in the 90's. OS/2 was 5 years ahead of Microsoft Windows, and offered full 32-bit processing long before Windows did. However, OS/2's stren
by GnarfGnarf 6y ago
I developed for OS/2 in the 90's. OS/2 was 5 years ahead of Microsoft Windows, and offered full 32-bit processing long before Windows did. However, OS/2's strength was also its weakness.
OS/2 was developed from scratch, and was not encumbered by a legacy of DOS compatibility, 16-bit applications, and drivers like Windows was. This enabled IBM to innovate radically and more quickly. The application I wrote for my client was a multi-threaded program, written paradoxically with Microsoft's Programmer Workbench, the character-based precursor to Visual Studio.
However, this freedom from legacy code also meant there were few applications available for OS/2, and the only drivers were for IBM printers. OS/2 eventually disappeared in spite of its technological superiority at the time.
IBM's development environment was called C-Set, and, despite being a 32-bit compiler, was inferior to Programmer's Workbench. For instance, after a compilation, if you double-clicked on an error message, it would open up the source code in a separate editor window, in a proportional typeface. You could not trigger a compilation from this window. You had to make your change, save & close, then go back to the compiler window. Awkward.
There was no Resource Workshop for designing dialog boxes visually. You had to write all the statements in a text editor, and wouldn't see the appearance until compiling and running the program. This slowed down development.
While debugging, I recall trying to step into the GUI part of the application code. This locked up the computer so bad we had to re-install OS/2, a tedious process requiring 22 diskettes.
The IBM documentation was so inscrutable that even for ver. 2 of OS/2, we had to refer to Microsoft's ver. 1 manuals. IBM's support gave an interesting insight into OS/2's downfall. My client had an expensive OS/2 support contract with IBM. The client contacts were two guys in the PC support section. When I required technical support to answer some obscure and specialized questions about OS/2, it didn't make sense to get these guys involved, even though they were supposed to be the only official go-between with IBM. So I called IBM with the client's authorization, and impersonated one of the support techs. After a few calls I slipped and used my name. The IBM guy was livid and tore a strip of me, saying that as an independent contractor, I had no business blah blah. Here I was just trying to get a customer up & running.
- PopeDotNinja 6y agoI worked on an IT helpdesk at an insurance company for the summer in 1996. I had to support IBM PS/2 PCs that would tri-boot Windows 3.1, OS/2 Warp, and Dos. No one operating system had all of what they needed. Funny side story: They had a token ring network, and in the network room, there weren't enough physical network ports for all of the employees. Every morning someone would call the helpdesk to say their computer was couldn't access the network, I'd look at the N network cables, find one that without lights to indicate that cable was in use, unplug the inactive one, and plug in the cable of the person w/o access. It turned out on most days enough people called in sick or were on vacation that we could get everyone who needed a connection wired up :)
- Narishma 6y agoDidn't OS/2 support DOS and Windows applications?
- opless 6y agoYes, but only 'well written ones'. Anything that decided to hit the hardware directly from DOS, or did something that OS/2 didn't support in windows just crashed or had undefined behaviour. Even windows in protected mode couldn't do all DOS things any more. Even if you dropped out of protected mode, and fiddled around too much you'd end up breaking windows when you switched back to it. Back then you'd have all manner of weird DRM schemes which used dongles on the parallel port, not to mention manually set IRQs, I/O Ports and blocks of high mem (between 640K and 1M) where your device drivers were baked into the DOS application, NOT the operating system. There were some driver.sys type drivers for random hardware, but mostly it was just cheaper to write the driver inside the app itself. Programming under DOS was more akin to writing to an Arduino rather than linux/windows back then.
- watersb 6y ago"Network switch"
- karmakaze 6y agoGood times. I also ran OS/2 from v1.1 through OS/2 Warp. Not quite true about the 32-bit no DOS. OS/2 1.x was a 16-bit system (although protected mode with segment selector 16MB memory) and one real-mode fullscreen DOS box. You're speaking of OS/2 2.0 which was a combined IBM and MS effort with OS/2 3.0 ultimately becoming WinNT. OS/2 2.0 even ended up having Win16 compatibility via DOS VM. My favourite version of OS/2 was 1.3 with the SVGA driver written by an intern at IBM. Edit: about the lack of GUI editor. My first paid OS/2 project was to write one after 2 weeks at a MS OS/2 campus.
- dbcurtis 6y ago> and the only drivers were for IBM printers. It's all about the drivers. No OS will get seats without drivers. People always say that no OS will get seats without applications, which is also true. But because people see that problem, a big company trying to launch an OS, or a migration, will go out of their way to get the important applications. The lack of drivers is more under the radar. So then people are shocked when their shiny new OS doesn't get uptake because too little hardware works with it. Speaking of drivers.... didn't OS/2 drivers run at ring 1? The X86 architecture (and only a few others) support more than 2 rings of security. Most OS's don't bother using more than ring 0 for kernel and ring 3 for user space because then portability will be hamstrung. But OS/2 did not have the BSOD problem of Windows. By far the most common BSOD in the Win95 days was a 0x0E exception -- page fault in the kernel, the fault of a buggy driver that forgot to wire down a page before doing a slow I/O operation. A page fault in ring 1 is valid, and the kernel can handle it.