There were many reasons Windows 3.1 became popular. Marketing and OEMs aside, one of the major reasons might have been the presence of Microsoft Office, even though it was a separate program. What this meant to corporate users was that they could now use Excel and Word on their commodity IBM PCs and compatibles the same as users of the "overpriced" Macintoshes could.
It is worth mentioning that Microsoft never produced any 32-bit version of Office for OS/2.
One other possible reason for Windows' increase in popularity was it's ability to run DOS programs from within itself. In fact, if you were running in 386 protected mode you could have multiple Virtual DOS Machines open running different applications. Since Windows runs on top of DOS programs running in these VDMs could access any DOS based drivers already loaded as well.
Of course there were a few programs that did not work in a VDM, but to run these you simply needed to exit Windows, and you would be back in a native DOS environment.
It is not possible to tell from these screenshots, but under the hood Windows 3.1 is a mess.
Here are the problems:
- Everything shares the same Global Event Queue. Basically if one application hangs the rest of the OS hangs along with it.
- The GDI resource pool is limited to 64k, and since all graphical applications use this it is very easy to "run out of memory", even with a gig of the stuff which wouldn't have even been possible back then. The results of this GDI limit are shown above.
- Most applications use XMS or extended memory to run but they all still fill up some portion of the base 640k. If you happen to run many applications or a few DOS resident programs you can also "run out of memory".
- There is no real memory protection, so programs can stomp all over one another and go completely unnoticed.
There are far more issues, but in the interest of keeping this short I won't get into it.
Basically this means that, from a developer standpoint, you can't have native 16-bit variables larger than 64k, which results in quite a bit more irritation than can be mentioned here.
From a general user's perspective, however, this all makes Windows 3.1 feel like living in a house made of cardboard. Flimsy, and it can crash to the ground at any moment.
Speaking of crashing...
Oh YES YES YES!
Windows 3.1 does not offer anything more significant over 3.0, and it is still just as unstable. However it does mark Windows' rise to popularity and eventual almost-monopoly in the IBM PC compatible world.