How Open Source Has Influenced Windows Server 2008
willdavid writes to tell us that Sam Ramji over at Port25 has a nice succinct list of the major open source principles that have been used while developing Windows Server 2008. "Overall, we've learned and continue to learn from open source development principles. These are making their way into the mindset, development practices, and ultimately into the products we bring to market. I've focused here on 'what Microsoft has learned from Open Source' - and ironically, I've agreed to do a panel at OSBC on 3/25 with Jim Zemlin of the Linux Foundation on 'what Open Source can learn from Microsoft'. As all of the different organizations in IT continue to evolve, we'll learn from each others' best practices and make increasingly better software. As in science, this incremental improvement will move all of us forward."
You can find these wherever you see participation at scale - and often a rearchitecture to a more modular system precedes expanded participation. Great examples of this are Firefox, OpenOffice, and X11 - from both the historical rearchitecture and the increased participation that resulted. The Apache HTTP server and APR are good examples that have been modular for as long as I can recall. OpenOffice? Modular? Maybe OOo is developed in a modular way, but the end result is hardly anything but modular. In fact, it's quite monolithic -- when you start OpenOffice Writer, you also start OpenOffice Calc, Base, Draw, Impress, etc. Programming language agnostic
A given project uses a consistent language, but there are no rules on what languages are in scope or out of scope. Being open to more languages means opportunity to attract more developers - the diversity of PHP/Perl/Python/Java has been a core driver in the success of a number of projects including Linux. Open source projects are 'programming language agnostic' because they used public, published and open interfaces. They follow standards. The reason a the Linux kernel build process can be a mixture of bash, Python, Perl, awk, etc. is that all of these things can connect together using pipes and whatnot. The reason you can write GNOME applications in almost any programming language is that the APIs are completely open. The reason why AbiWord and KWord can read Open Document Text files is that that spec is completely open and free of royalties, patents, etc. Feedback-driven development
The "power user" as product manager is a powerful shift in how to build and tune software - and this class of users includes developers who are not committing code back, but instead submitting CRs and defects - resulting in a product that better fits its end users. Huh? How are CRs the same as accepting code patches? Open Source development differs in that these "power users" as he calls them can make their own changes and, if necessary, fork off their project to offer a competing or even a completely different project. Built-for-purpose systems
frequently seen in applications of Linux, the ability to build a system that has just what is needed to fulfill its role and nothing else (think of highly customizable distributions like Gentoo or BusyBox, as well as fully custom deployments). Uhhhh....BusyBox is not a "distribution" and cannot really be compared to Gentoo except that, yes, the program (as in single program, hence, not a distribution) is cutomizable through the use of custom build options. Sysadmins who write code
ability of a skilled system administrator to write the "last mile" code means that they can make a technology work in their particular environment efficiently and often provide good feedback to developers. This is so fundamental to Unix and Linux environments that most sysadmins are competent programmers. Unix sysadmins are generally NOT competent programmers. We're lazy schmucks who whip up quick-and-dirty scripts to accomplish tedious and boring tasks out of sheer laziness. And then we call it 'enhancing productivity' in an attempt to get a raise.
Whether the standard is something from the IETF or W3C, or simply the implementation code itself, where these are used projects are more successful (think of Asterisk and IAX2) and attract a larger ecosystem of software around them. Real open standards are developed by the community at large through agreement, not by a monopoly who can change the "standard" at anytime without notice.
My blog
The problem with MSFT is not that they don't know these things. They do. But the internal power structure in MSFT is so driven by "if the playing field is level, we will lose" cowards. So they still do things that was ok when they held a 20% share against Word Perfect and 10% (by revenue) share against unix and mainframe giants, back in the late 80 and early 90s. They got lots of money and grew too fat and have too many layers of management. So they go and hire this dogbert to tell them what they already know.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact