Dean said:
I seem to recall that Win32S was made available prior to Win95, but I may be
mistaken. It seemed to be a 'transition' tool so that developers could
start writing '32 bit' code that would run under Win95 when it arrived (and
perhaps WinNT).
I have a slightly different recollection of Win32S.
When Win95 came out, MicroSoft told developers that if they
wanted to put the Windows logo on their packaging or to
call their software Windows compatible, then it had to be
able to run on all three platforms: 3.x, 95, and NT.
Win32S was more or less a thunking layer that let 32 bit
code made for 95 and NT run on the 16 bit Windows 3.x.
Personally I thought W2K was a roaring success for MicroSoft.
I seem to recall that the WinNT effort followed the failed OS/2 partnership
with IBM.
In some ways it is the *cause* of that failed partnership.
MicroSoft made no secret of the fact that they were
*simultaneously* working on NT and OS/2 - which led to
a lot of acrimony between IBM and MS. IBM resented
that MS was diverting resources from the OS/2 project,
and IBM also did what they could to prevent MS from using
OS/2 ideas/techniques/code/etc in the development of NT.
Some of the many long delays for OS/2 were attributed to
the fact that the IBMers did not want to share any more
code than they had to with MS - for fear that MS would
abuse their relationship with IBM and use that code for
NT. This meant that often the MS developers working on
OS/2 were kept in the dark about things they needed to know.
As well, I have heard another side of the story about MS
"rushing" to beat OS/2. Seems that perhaps it was not
so much that MS was rushing, but that IBM was doing too
much foot dragging - which is one of the things that caused
MS to start their NT project. Apparently IBM was aiming
for cross-platform perfection while MS wanted to settle for
a "good enough" x86 version, put the OS on the market, and
start recovering some of those development costs. MicroSoft's
pockets weren't nearly as deep back then as they are today -
they were deeply in the hole over OS/2 and badly needed to start
seeing revenue from the investment they had made.
I think it was specifically meant to replace OS/2 1.1 (or 1.2,
whichever was the last MS release). This brings me back to my original
assertion - WinNT was not written to be portable, nor to be upgradable. It
was written to be 32-bit. I find it difficult to believe that in their
haste to come out with WinNT that the MS developers took into consideration
the chance that they might have to run on different platforms. If there
was one code base, I think there would not be the 'problem' of supporting
multiple platforms. Consider DB2, which *was* written with portability in
mind. It took several weeks (or perhaps several days) to port it to x86-64,
and it runs on virtually every platform imaginable specifically because of
this.
Mine aren't any more authorative. I was a programer back
in those days and IBM and MS were stabbing each other in
the back as they tried to lure programmers towards developing
for either OS/2 or NT. Each side spread a lot of nasty
rumours about the other side and it was pretty hard to find
a few nuggets of truth in all of that sh*t.