 
 
 
WHY WINDOWS 4.0 WILL NOT BE GENERALLY AVAILABLE 
IN RETAIL STORES UNTIL 1995 
 
 
Microsoft has officially said that Windows 4.0 will enter beta testing 
in February 1994 and be available in the third quarter of 1994.
 
I believe that this schedule is not achievable and that Windows 4.0 
will not be generally available in retail stores until 1995.  I am
presenting the following information to encourage open discussion of
this possibility and its implications for business decisions and
technical decisions.  
 
 
Here are three reasons:  
 
1. Microsoft consistently underestimated the length of time that would 
be required to develop Windows NT.  
 
Microsoft originally officially forecast that Windows NT would ship (my 
definition is available for sale in retail stores) by the end of 1992.  
About the time that Microsoft released the large scale beta test of 
Windows NT in October 1992, it revised the official forecast ship date 
to March 1993.  This would have been a 6 month beta test.  In reality, 
Windows NT was initially available in August 1993.  This was 8 months 
later than the original forecast and five months later than the revised 
forecast.  
 
 
2. Microsoft takes longer (4.5 - 5 months) to debug the results of a 
large beta test release than IBM takes (3 months).  
 
This is also empirical data.  The Windows NT beta test lasted 9 or 10 
months.  There was a large scale beta release in October 1992 and 
another large scale beta release in March 1993 before general 
availability in August 1993.  The empirical result is that the Windows 
NT beta test averaged one release every 4.5 to 5 months.  
 
The IBM OS/2 2.0 beta test lasted from July 1991 through March 1992, a 
nine month period.  There were three large beta releases.  If my memory 
is correct, these releases were 1) at the beginning of July, 2) 
sometime in late September or early October 1992 and 3) late December 
1992.  The OS/2 2.0 beta test averaged one release every three months.  
 
The IBM OS/2 2.1 beta test lasted from December 1992 through June 1993.  
The two beta releases were in December 1992 and March 1993.  The OS/2 
2.1 beta test averaged one release every three months.  
 
 
3. Windows 4.0 will be harder for Microsoft to develop and debug than 
Windows NT was to develop and debug.  
 
Windows 4.0, like OS/2 2.X, is a monolithic kernel operating system.  
Windows NT is a message passing kernel operating system.  IBM's 
Workplace OS is characterized as a microkernel based operating system.  
Microkernel based operating systems are a type of message passing 
kernel operating system.  
 
For the purpose of this analysis, the key difference between monolithic
kernel operating systems and message passing kernel operating systems 
is that the monolithic kernel is larger and more tightly integrated 
than the message passing kernel.  Some of the functions that are
integrated into the kernel of a monolithic kernel operating system are
equivalent to "server subsystems" that interface with the kernel in a
message passing kernel operating system design . The result is that the
monolithic kernel is larger than the message passing kernel and also
has more internal interfaces.  
 
The advantage of the monolithic kernel operating system is that it 
requires fewer systems resources and runs faster than the message 
passing kernel operating system.  In the recent testing experience 
comparing a monolithic kernel operating system (OS/2 2.1) with a
message passing kernel operating system (WINNT), the speed difference
has been observed even though it has been somewhat obscured by
differences in device driver quality between OS/2 2.1 and WINNT.  It 
has also been somewhat obscured by differences in subsystem design, 
such as WINNT's superior disk caching (which was demonstrated in the PC
Magazine benchmarks).  
 
The advantage of the message passing kernel operating system design is 
that it tends to be more robust than the monolithic kernel operating 
system design.  The message passing kernel design should be easier to 
develop and debug than the monolithic kernel design because the code is
more modular due to the server subsystems.  Software development
focusses on modular design because it allows multiple groups to develop
in parallel and because debugging several smaller modules is easier
than debugging one larger module.
 
Some users suggest that Microsoft will need to do very little new 
development and debugging for Windows 4.0.  There are two methods 
suggested that would be shortcuts for the development of Windows 4.0.  
 
The shortcut that seems to be most frequently proposed is to scale down 
Windows NT (i.e. create Windows 4.0 as 'NT Lite').  Microsoft has
reportedly considered this approach and chosen not to pursue it.
Imagine taking a number of modules, removing a few (e.g.  security) and
then integrating the remaining modules into a single piece of code. 
Other than the RAM requirements of the removed modules, it is hard to
imagine that the "footprint" that remained could be shrunk very much. 
Furthermore, it seems unlikely that performance, as it has been
measured by most of the singletasking benchmarks today, would be
significantly improved.  
 
The other shortcut that has been proposed is to use the Windows 3.1(1) 
code and recompile it with a 32 bit compiler.  Windows 3.1 
cooperatively (i.e.  non-preemptively) multitasks Win16 applications.  
Windows 3.1 includes no internal support for multiple threads within
Windows applications.  Thus, an ISV who wishes to write a multithreaded
Win16 applications must include a multithreading engine within the 
application.  Few, if any, ISVs have done this.  Microsoft has 
repeatedly described Windows 4.0 (and/or DOS 7) as a preemptive 
multithreaded multitasking operating system.  I do not believe that 
this is simply a matter of recompiling Windows 3.1 code on a 32 bit 
compiler.  
 
As a final note, Microsoft will be writing a new object oriented user 
interface (OOUI) for Windows 4.0.  This OOUI will compete with the 
Workplace Shell that is used on OS/2 2.1 and will be used on the COSE 
Unix implementation.  From my personal experience, the Workplace Shell 
in OS/2 2.0 was buggier than the rest of the operating system.  
Microsoft will face the challenge of debugging the new OOUI.  
 
 
Conclusion:  
 
It will take longer than 10 months, and probably longer than a year, 
for Microsoft to debug Windows 4.0.  The time estimate comes from both 
the second and third sections above.  It will take Microsoft longer to 
beta test Windows 4.0 than it took IBM to beta test OS/2 2.0.  It will 
take Microsoft longer to beta test Windows 4.0 than it took Microsoft 
to beta test Windows NT.  
 
In the 11/15/93 issue of InfoWorld on page 14, Stuart Johnston's
article "Microsoft to show Windows NT running SGI's OpenGL" includes
the following quote about the Windows 4.0 testing program:
 
'Chicago, also called Windows 4.0, entered alpha testing in August.  A 
second alpha will go out next month (note:  December 1993), with the 
formal beta probably beginning in February, Mike Maples, executive vice 
president of worldwide products said last month.'
 
In the 11/22/93 issue of InfoWorld on page 6, Stuart Johnston's article
"Windows 4 supports hot-swapped devices" updates the information from
Mike Maples:
 
'A second alpha is set for December, with the formal beta cycle 
beginning in February or March, Maples said.'
 
The same 11/22/93 InfoWorld forecasts the general availability as:
 
'The product is expected to ship next summer, earlier than was 
expected, Microsoft said.  Previously, the company forecast shipment
during the second half of 1994.'
 
'"Third quarter is what you should count on," said Mike Maples...'
 
On page 1 of the 12/13/93 issue of PC Week, Amy Cortese's article 
"Chicago nears 32-bit goal" and subtitled "But developers chafe at 
looming delays and 16-bit leftovers," is the comment:
 
'Last week industry analysts reported that Microsoft had pushed back 
its internal delivery date for Chicago from September 1994 to October 
or November.'
 
The accompanying graphic titled 'Driving toward Chicago' includes the 
following timeline for the beta program:
 
February 1994: First beta geared for end users slated for release, 
featuring the first pass at the final Chicago GUI as well as 32-bit OLE
support.
 
May-June 1994: Second beta release expected.
 
October-November 1994: Target date for commercial release, to be 
followed by "DOS 7," essentially Chicago without the graphical shell.

This timeline is an 8 to 9 month beta program with two releases.  This 
forecast is the same timeline as the actual experience with Windows NT.
As explained above in section 3 (i.e. reason 3), Windows 4.0 will be
more difficult to test and debug than Windows NT was.  Unless Microsoft
has made significant improvements in its debugging and quality
assurance methodology, the actual Windows 4.0 beta program will be
longer than this forecast.
 
In other words, if a large scale beta test (tens of thousands of test
sites) of Windows 4.0 does not begin until February or March of 1994, 
it seems difficult to imagine that the product will be available in
retail stores by the end of 1994. It looks more and more like it will
be available in retail stores towards the end of first quarter 1995. 
It is even possible that it will not ship until second quarter 1995.
 
During the beta test of OS/2 2.0, Microsoft criticized OS/2 by 
referring to the difficulty that IBM would have in developing and 
debugging the first release of a large monolithic kernel preemptive 
multithreaded multitasking operating system with object oriented user 
interface.  Now it is Microsoft's turn to develop a first release of a 
monolithic kernel preemptive multithreaded multitasking operating 
system with object oriented user interface.  We will see how well they 
will match up to IBM's development experience.  

