Ian Hilliard wrote: > On Thu, 23 Feb 2006 14:37:11 -0800, Rex Ballard wrote: > > > Microsoft had to deal with two big threats to Windows 95, one being > > Linux, but the even bigger one was Windows 3.1. People had to be > > convinced to migrate to Windows 95, including the purchase of new > > hardware which had been secretly designed to NOT run Linux (the PCI > > codes required to configure the hardware were a carefully guarded > > secret), instead of attempting to upgrade Windows 3.1, failing > > miserably, then adopting Linux, OS/2, or UnixWare in desparation.
> Microsoft won with Win95, because it was easier to produce eye-catching > graphical application, than it was with Win3.1 or any of the Unix > variants. In fact, I was doing a SCADA Master Controller in 95 on SunOS. > The project ended up working very well and being very reliable, but it was > an absolute horror to program the GUI. The irony is that Linux actually had easier to use tools. Tools like Python, Perl/TK, GTK, and Java AWT made it really easy to create really simple and effective GUI interfaces to Linux applications. On the other hand, coding GUI interfaces in C or C++ with core toolkits was a bit more challenging. Microsoft was also really promoting the dailights out of Visual Basic as the primary interface - partly to make sure that applications could not be easily ported to Linux. > The Borland Graphics Library or MFC made it a lot easier to program GUIs. There were some fishy things going on with Borland. Several applications written using Borland's compilers and libraries began acting strangely when Windows 95B was released. I think the real win for Microsoft was that they did a really good job of making sure that they had all of the 32 bit applications from Microsoft, AND provided excellent support 16 bit applications, including some much better multitasking of "Command" Windows. Ironically, this was largely due to the virtual machine licensed from Quarterdeck. The other thing Microsoft did very well was the COM objects. The COM model worked very well for Microsoft, similar to X11 "Widgets" but much of the preinitiallization of secondary support functions such as context sensitive help, exception handlers, and other "core" functions assured that EVERY button, form element, box, and dialogue had SOME form of help. In addition, all of the hot-keys and core functions were preconfigured. But probably the most critical element was that Microsoft did provide excellent Plug-and-Play functionality along with the Web Browser. Windows 3.1 machines couldn't support the faster dial-up modems and only supported 16 bit browsers. It was possible to plug in the Win32 library for Windows 3.1, but it made Windows itself very unreliable. The other big move, which really kicked Windows 95 into high gear was the release of Windows 95B. Many customers were irritated that Windows 95 was so unstable compared to Windows 95B, but Windows 95 was more stable than Windows 3.1. The really critical thing of course was probably Internet Explorer. Even though it was actually Mosaic, and Linux offered it as well, Microsoft's ability to recognize the importance of TCP/IP and the Web Browser was critical in maintaining the market share and avoiding the problems they had with Windows NT 3.1 and 3.5. > The software may not have been as good or stable as under Unix, but it was > a LOT cheaper to program and time-to-market was a lot lower. There were a couple of problems. The biggest one was that companies like Red Hat and Yddragasil and Caldera had been so focused on getting VLB and EISA and MicroChannel handled that they were caught off-guard with the new PCI codes. Most PCI peripherals used the same interrupt, and most of the configuration depended on properly interpreting device codes. These codes defined the hardware vendor, the device number, and the version number. The problem was that it was very difficult to map that a Novell card and an Realia card were related and could use the same drivers. This is why getting these codes from Adaptec was so critical. To Red Hat's credit, they could have sat on that information and kept it tightly controlled, instead they published the codes in a way that allowed other Linux distributors to properly operate with the new PCI cards. Plug and Play was such a critical issue for Microsoft that Bill personally ordered the delay until Microsoft could offer Plug-and-Play that was better than that offered by Linux. As for the look and feel, or the programming models, it wasn't that much harder to write code for Linux than it was to write code for Linux. It did however take a very different type of engineering. Most Windows applications were written for "busy-wait" multitasking and depended heavily on threads and shared libararies with shared buffers as a means of interprocess communication. This is actually why so many Windows 3.1 applications would not run on Windows NT 3.1. Linux programming on the other hand, relied heavily on the kernel functions, functions not provided by Windows at that time. Ironically, OS/2 DID offer most of those functions in their libraries. Most Linux applications were actually multiple programs, usually a GUI, a CLI, and a library interface to the same functions if perameters were too complicated, one could use the xrdb resource file - similar to the Registry, in combination with text files. Ironically, there were even some people who thought they could use Windows 95 as a server, to replace UNIX or LInux servers. Most of these didn't go so well, because unlike Windows NT 3.x which had good security and multitasking - Windows 95 was still using the FAT(32) file system, which had no real security. It was OK for a well protected file/print sharing within a small workgroup - but managers quickly learned that they could not leave shares open on their machines. The most important thing Windows 95 did was provide Microsoft with the leverage to force the OEMs, including IBM, into compliance with their terms. Microsoft took total control of the configuration from power-on to the final display screen. Microsoft had lost some credibility after the NT 3.x debacle and they gambled hard and heavy to makes sure that they had total control over the OEM market. Keep in mind that when NT 3.x was released, Microsoft had done a lot of hype, spent $billions on advertizing to get positive press coverage and to suppress coverage of Linux, Solaris/86, UnixWare, and OS/2, but no one was betting the farm on NT 3.x except Microsoft. Many players were hedging their bets, they were prepared to consider staying with Windows 3.1, flipping to OS/2, Solaris, UnixWare, or Linux. The OEMs didn't like OS/2 because that would give IBM an advantage. They didn't like Solaris/86 because that would give Sun the advantage. They didn't like UnixWare because this would just be giving Novell the same monopoly previously held by Microsoft. Besides, Microsoft had negotiated a deal with Novell that suckered Novell into withdrawing from the Workstation market. When Windows NT 3.1 flopped, and 3.5 still didn't take off, Bill Gates announced Chicago, and promised it within a year (Early 1995?). But unlike NT, Microsoft really had to scramble and come up with something that could compete with *nix. The irony is that most people thought that Windows 95 was going to be as powerful as Windows NT, but fully compatible with Windows 3.1. This may have been the greatest shell-game ever pulled. While companies like Red Hat, Caldera, and Sun were willing to offer OEM licenses at very attractive prices on a non-exclusive basis, they weren't getting the information they needed to support Microsoft's "Plug-and-Play". > In the end, it was the application developers that dragged people to Win95, > because > this was the platform that had the cool software. The problem was that Microsoft was only willing to give out information about NT to those who promised to commit virtually all of their programming talent to Win32 application development. In many cases, they even had to sign nondisclosure agreements which prevented anyone working on Windows projects from writing *nix or OS/2 applications. The problem was that many companies had been investing over 3 years of nearly all of their programming talent into Winows NT, and their only chance of getting ANYTHING back was to get something out for Windows 95. Many software companies died on the vine. Ironically, the big winner was Java. Because so many software developers were "bumped out" by Microsoft Bundleware and competitor products, many turned to Java for the promise of "Write Once - run Anywhere. But again, Microsoft trumped Java by offering J++ and bundling direct calls to Windows library functions. But the biggest winner was the Linux/Unix server. Many corporate customers found that Web Servers powered by Linux/Unix Apache, PERL, and MySQL - were a very effective way of getting lots of valuable information where it was needed as quickly as possible. By adding Java Servelets, and Java Enterprise Edition - it became possible to interface to legacy applications from a Web server. This has resulted in massive development in *nix environments and OSS environments which are often supported with commercial applications. > Of course, little did > these developers know that Microsoft was planning to take each and every > market that was in any way lucrative. One of the critical elements in taking this strategy was excellent intelligence. By controlling the web browser, offering MSN, and having Windows 95 provide certain information via internet, Microsoft was able to identify the cash flow opportunities, and leverage them. In regulated industries, Microsoft found strategic partners who provided a combination of cash and intelligence. At one point, Microsoft was getting roughly 20% of the commissions from numerous agencies ranging from real-estate and cars to morgage, insurance, and banking. Most people were unaware of this because 20% of a 7% commission is still just over 1%. Microsoft's insider information gave them huge advantages in the arena of investments and corporate partnerships. > I like Linux and it is my preferred platform, but as long as Linux appears > to be anti-CSS, it will not be the preferred platform for commercial > software development. This was once a legitimate issue, but over the years, Linux has become much more commercial software friendly. The Debian crowd is a bit fanatical, but most of the commercially supported distributions are very supportive of commercial software. Software for Windows is like "Off the rack" clothing. If you have long legs, you look like you heading for the flood. If you have long arms, you look like a gorrilla. Linux software is usually more like tailored suits. You buy the core suit and then they hem the pants and the coat sleeves to give you a really good fit. These days, with high speed internet making it possible to download entire CDs in less than 30 minutes, there is much more market diversity, and much more competition available - especially in the Linux market - where the market barriers to entry are much much lower. In addition, there are more revenue opportunities as there are more distributors looking to add commercial software to their offerings list. Another critical phenomenon that is fueling Linux is that so many Unix applications have been ported to Linux. Many of these applications are high intensity commercial grade applications ranging from databases such as Oracle, Sybase ASE, and DB/2 to CAD/CAM applications, media production applications, and office automation extensions to Open Office applications. > It is the commercial software development, with > their large advertising budgets, that brings the people en mass. Microsoft > knows this and explots it every day to slow the movement across to Linux. This is very true of "traditional" applications. It costs about $3-5 million to get one release of one application onto the shelves of the major retailers such as CompUSA, Staples, or OfficeMax. The irony is that this "shut-out" has shriveled up the retail market. Most of the media being sold on retail shelves seems to be most focused on "trust" - anti-spyware, anti-virus, firewalls, and "copying" software - and even most of this software can be purchased via the Internet. Retail sales is now a very small portion of the total software market. Good CRM programs and better financial transactions have made customers more willing to place the order, download the software, and enter the activation code. In addition, more vendors are willing to publish software with "trial periods" and have the customer purchase varying degrees of capability by purchasing different activation keys. Even Microsoft will be using this approach with Vista. All of the code for everything from basic to Enterprise will be included, but the activation code will determine WHAT gets activated. The irony is that the system preinstalled on the PC may become irrelevant. Virtualization will become critical - making it possible to switch between configurations - especially as configurations get more complex and more and more applications are available for Windows, Vista, and Linux. It wouldn't surprise me if all three were considered essential elements of the modern "Post Vista Release" PC. > Ian _______________________________________________ Gnu-misc-discuss mailing list Gnu-misc-discuss@gnu.org http://lists.gnu.org/mailman/listinfo/gnu-misc-discuss