Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

For *nix, I found that Eric Raymond's The Art Of Unix Programming expressed the ideas behind the Unix philosophy pretty well. The whole book is online, I recommend this chapter to see what I am talking about. It basically lays out the unifying concepts behind Unix operating systems and their applications. For Example:

  • Rule of Modularity: Write simple parts connected by clean interfaces.
  • Rule of Transparency: Design for visibility to make inspection and debugging easier.

He then goes in how these rules are applied.

What makes up the Windows Philosophy?
I have never really understood the philosophy behind Windows operating systems, and have never really known anyone who knows enough to answer the question. Googling this for me just brings up a bunch of rants. Is there an equivalent book or set of articles to The Art Of Unix Programming, but for Windows operating systems?

I would also be interested if someone thinks they have a good answer, but that might be just too long a post.

share|improve this question
7  
Wasn't sure if I should CW this, upvote this comment maybe 5 or times and I will. –  Kyle Brandt Aug 20 '09 at 14:04
    
There is also a similar document from MAC about there interfaces, "Apple Human Interface Guidelines" developer.apple.com/documentation/userexperience/Conceptual/… –  Kyle Brandt Aug 20 '09 at 14:08

4 Answers 4

Have a look at MSDN's channel9. There you get incredibly much insite into what Microsofts engineers intended / reasoned about a certain prouct or feature.

For Windows: My absolute favorite is Dave Probert's video blog about the windows kernel (with some remarks about the differences to Unix): http://channel9.msdn.com/shows/Going+Deep/Windows-Part-I-Dave-Probert/ .... and the other part 2-4 .... (you might also like to look at the other "Going Deep" videos :-).

Have fun.

HTH, Thomas

PS: Aditionally you find very much information in the books "Inside Windows NT", the first part edition wasquite remarkable for understanding WIndows NT's inner workings.

share|improve this answer
    
That video looks like the sort of thing I am trying to find. –  Kyle Brandt Aug 20 '09 at 14:19
3  
It's interesting that a reference to Unix philosophy is text, but for Windows philosophy we have to check a video blog. –  Adriano Varoli Piazza Oct 14 '09 at 14:47

Unix, from the "pipe" upwards, is designed around processes communicating in plain text protocols. Hence the design of various internet protocols - SMTP, HTTP, IMAP, POP, etc are all human-readable. So developers have to write protocol writing and parsing code, but it's often straightforward to interoperate with programs you don't control.

Windows by contrast is built around the procedure call / method invocation. COM and successors provide ways to extend procedure calls into DLLs, across threads of a process, across processes, and across the network. All this is fairly transparent, especially in object-orientated languages. This makes it easier to write very large, networked applications - so long as you control all the components. It makes it harder to swap out part of the complex interlinked system for a new piece of code. For example, the Microsoft Word file format is very strange as a file format, but straightforward as a representation of the objects in memory used by Word. The Exchange wire protocol is MAPI-over-DCOM: from the point of view of the Outlook developers, all they need to do is get a mailbox object and call methods on it, whereas people attempting to implement alternative clients and servers see a wire protocol that isn't easy to interoperate with.

share|improve this answer

Raymond Chen's blog (http://blogs.msdn.com/oldnewthing/) is a fantastic source for this kind of info, as well as providing down 'n' dirty details on why certain things are the way they are in Windows (example: why do you have to click on Start to shut down? Because during testing when users were asked to shut down their PCs, that was where they clicked).

share|improve this answer

I think you can get a decent feel for the difference in the systems by looking at the Windows start menu and comparing that with a KDE or Gnome start menu. The *NIX menus are organized by task or category, while the Windows menus are organized by software company. That says a lot about the differences in priorities of the creators right there.

(Yes, yes, KDE/Gnome are not "UNIX philosophy," but it is still a striking difference.)

share|improve this answer
    
That's not really true of a new Windows installation, more the way that Microsoft doesn't control application software in the way that Linux distributions do. –  pjc50 Oct 14 '09 at 14:28

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.