"We of course have a policy on GPL code: we can't look
at it. What is the reason for this? Well, in my read of the GPL it
states that if a work includes GPL code, or is derived from GPL
code, then the GPL applies to the aggregate work. And it is very
hard to discern between which ideas are completely yours, and which
are influenced by code you have seen in the past. What this means
is that by incorporating, or possibly even reading GPL code, you
are placing your own IP in jeopardy. It seems to me that anyone
producing commercial code should be very careful about the
implications of the GPL on their dev processes.
Microsoft is of course in the business of making money, as are
all businesses, and like IBM and other Intellectual Property-driven
companies, a fair amount of revenue is generated through the sale
of our IP. Microsoft believes, and has publicly stated that Open
Source can be a good thing, but we have concerns with the GPL. To
be honest, we spend almost $10B/year on research and development
writing code. This is one of the primary reasons for Microsoft?s
strong performance - we can assign a whole team of world class
developers to work on a new idea, and if we turn out a good product
that meets business needs, we know we're going to make back all the
money we spent on research and development in the sale of the ideas
that team generates. In my honest opinion, I would much rather work
in a company who's primary focus is research and development of new
ideas and tools, than one who only makes money in supporting
others? ideas. After all, in the end of the day businesses are
designed for one thing: to make money.
As far as WINE and Mono are concerned, I'm just not sure whether
these organizations will end up being able to produce satisfactory
products. The real problem is this: it is not good enough for WINE
to run some Windows apps. If the general public is going to consume
it, it must run all Windows apps. Windows 2000/XP has a significant
level of POSIX compliancy, but many developers just don?t write
their apps with these standards in mind. You'll find pieces of code
everywhere in third party apps which run statements like if
(WINVER==4.0 && GrokTheBIOSForSomeACPIGoo()), which have
not been tested to see whether they will run on non-Windows/x86
platforms. In fact, Microsoft has had to put in significant time
and effort to insure that older Win32 applications originally
written to run in Win95 will run in NT."