Hello there, The following is taken from MFC Programmers Resources mailing list. (MFC stands for Microsoft Foundation Classes.) I found it interesting and thought you might like it. Check it out. ----------------------------------------------------------------------------- **** LINUX VS. THE "BIG GUYS" There has been a lot of press coverage in the past two weeks about Linux. Linux is a free operating system, mostly based on the best features of UNIX. Added to the coverage were two internal Microsoft memos leaked to the public that has some really glaring statements in them like, o "OSS projects have been able to gain a foothold in many server applications because of the wide utility of highly commoditized, simple protocols. By extending these protocols and developing new protocols, we can deny OSS projects entry into the market." (OSS - Open Source Software) o "Linux is emerging as a key operating system in the nascent thin server market" Some coverage quotes users and developers as seeing the memos as "sinister" internet strategies. While, according to a response posted by Microsoft on November 5, these memos do not represent an official statement by Microsoft they do, none the less, raise some interesting points about commercial software. The memos provide a very good history of Linux and go into detail about some of the benefits of the operating system. Benefits such as having a large community of motivated developers all working to improve the system, and going through hundreds of revisions between releases pose a threat to most commercial software shops because they cannot come close to the resources committed to a project that Linux does. The operating system, according to the memos, has reached commercial quality with features like: - multi-user, multi-threaded kernel - SMP support on Intel and Sun CPUs - multiple file system support (including NTFS) - Protected 32 bit memory space, virtual memory support The memo also details how developers working on Linux have the benefits of free R&D because they tend to cherry pick the best features from commercial systems and incorporate them into the codebase. Projects like Linux need to keep developers and researchers happy by providing the best features for the least price (free in most cases). The users of a system like Linux go in with the understanding that, when they use the software -- if they simply downloaded it themselves -- they are on their own for support. There is no one that is accountable for the operation and stability of the system as such. If a user has a problem, he/she can post a message to a discussion to a news group and typically have a respinse is a short time. At the end of the day, however, the only thing Linux and other OSS projects have in the way of accountability to the end user boils down to the desire of a group of people to "get the big guys". If Linux, or another commercial-grade OSS project fails it simply looses its credibility. Commercial software has a lot more riding on it. Commercial software shops have an interest in protecting what they create because they have investors to keep happy. The money that investors provide translates into economic activity that stimulates a very large part of the world's economy. If a widely used commercial software project fails it can loose money, jobs, even an entire vertical market can be affected. Acting in the role of an end user when I use an application such as a word processor or development tool, I really don't care that the underlying system is not available to me to modify as I see fit. I only care about the service that the system provides to me and I am happy when it does -- I bought the software for one reason: the level of encapsulation it provides to me. I am not interested in the internal workings of the product, I have customers to answer to. My customers don't care if I've customized my workstation by changing the source code -- they want results and commercial software helps me to produce those results. On the other hand if I wanted to learn how to write a browser, for example, I'd probably download the source code for Netscape. If I wanted to write a kernel, know how the LS command really works, or experiment with a free copy of a UNIX derived work then I'd make a system like Linux my first choice. If I wanted to create my own specialized server, today, I'd pick something like Linux. Since commercial software shops have a business interest to protect, I expect that my answer to the last use would probably change if a commercial software vendor produced a customizable operating system. I have seen some passionate e-mail notes on both sides of the fence. When you really look at it, there is only one force that that drives all of this -- market demand. Ultimately it's the consumer -- of free or commercial software -- that wins. Those who are not flexible enough to response to market demands will be left behind in the field of irrelevance. My opinion is simple: use whatever makes sense for your purpose. For more information visit these sites. There are some very good links within all of the documents for further reading: CNet: "Microsoft Memo Touts Linux": http://www.news.com/News/Item/0,4,28397,00.html?st.ne.ni.rel Eric Raymond's Site: (the Microsoft memos with comments) http://www.opensource.org/halloween.html O'Rilly and Associates: (open letter to Microsoft) http://www.oreilly.com/oreilly/press/tim_msletter.html Microsoft's response: http://www.microsoft.com/ntserver/highlights/editorletter.asp
