Here's a very good question: why are people (including me) nasty to Mono, but nice to Samba?
The Mono project has been branded as evil, a sellout, a product of a Microsoft-loving lackey from its inception. I think this is a misguided attitude that is rooted in a mistrust of the power of FOSS, and especially the GPL.
The Samba project, like Mono, provides a cross-platform alternative to closed Microsoft technologies. It is equally vulnerable to the (increasingly toothless) Microsoft patent threats and arbitrary changes in the protocols. Yet Samba is admired. Perhaps the difference is merely in the words of each project's leaders-- the Samba team have never praised Microsoft's technologies, while Miguel de Icaza, the leader of Mono, has.
The PR aspect may have something to do with it, but I don't think it's the main reason. To understand the principal difference between Samba and Mono, we need to explore what they do, and how they do it.
Samba grew out of a classic hacker's itch. Its creator, Andrew Tridgell, wanted to connect his PC to a departmental Sun machine, and knocked up a bit of server code for the latter to make that possible. It was only later that he discovered – to his amazement – that his program also worked with PCs running Windows.
This meant that Samba, running on GNU/Linux, could function as a file and printer server for Windows users, which was why it became one of the first free software programs to find its way into enterprises, since it was effectively a drop-in replacement for more expensive Windows-based solutions. In other words, Samba is a free implementation of some protocols used by Windows, and was created so that free code could be used instead of Microsoft's.
Now consider Mono. Like Samba, it aims to reproduce functionality available on the Windows platform, so that people can use free software instead: a laudable goal in itself. But the end-result, which depends on Microsoft's work, is something that encourages developers to write *yet more* code that uses Microsoft's approach. In benighted countries where software can be patented, this means that any patents that Microsoft has in the .NET framework are like to apply to any code developed with Mono. Like an infectious disease, the intellectual monopoly is spread wider.
That's not the case with Samba: even if there were software patent issues with Samba's implementation, they wouldn't spread to other code (unless that code were based *directly* on Samba), because the program is standalone. But in fact, there are *no* patent issues, because last year Samba officially received from Microsoft the full protocol documentation, under the terms of the agreement with the European Commission:
Today the Protocol Freedom Information Foundation (PFIF), a non-profit organization created by the Software Freedom Law Center, signed an agreement with Microsoft to receive the protocol documentation needed to fully interoperate with the Microsoft Windows workgroup server products and to make them available to Free Software projects such as Samba.
Microsoft was required to make this information available to competitors as part of the European Commission March 24th 2004 Decision in the antitrust lawsuit, after losing their appeal against that decision on September 17th 2007.
Herein lies the big difference between Samba and Mono: where the former played a crucial role in liberating the protocols it uses to ensure that there is no knock-on effect for users in terms of intellectual monopolies, the Mono project propagates Microsoft's software patent claims even wider.
This is what makes Mono so dangerous: developers that use this framework are, in fact, helping to disperse the poison of Microsoft's intellectual monopolies across the free software ecosystem. I'm sure that's not the aim of the Mono developers, who doubtless have the best of intentions, but sadly it is the inevitable result. And that is why developers and users need to be warned off Mono in a way that is not necessary for Samba.