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.