Everyone knows I love Microsoft. And as hard as it may be to believe, in
the whole world, there is only one little thing that rubs me the wrong way
about our friends in Redmond.
It is, in some ways, a very minor thing. In others, it cuts right to the
quick of what .NET is all about. In short, I suspect that Microsoft's patent
(CLICK HERE!) on .NET will ultimately be used to prevent the implementation of fully CLR-compatible CLIs on other platforms.
What this means is that current efforts such as Mono and Portable
.NET may be at least partially illegal because Microsoft has standardized
only a portion of the Frameworks classes and technology available under the
CLR on Windows.
The bits that Microsoft has not standardized are not trivial little bits
of the platform that sit off in a corner, unused. They include:
- System.Windows.Forms
- System.Data
- System.Web.Forms
- System.Web.Services
So CLI implementers who want to create platforms that share with
Microsoft's CLR a common approach to GUI, data access, Web applications, and
(perhaps most important of all) Web services, will be forced to copy bits of
the CLR not covered by the ECMA CLI standards. Unfortunately, Microsoft
specifically cites these APIs as a part of their patent.
The exact legal status of these APIs has been debated for quite some
time. I believe, however, that Microsoft's own Dr. James Miller (program
manager for the Microsoft Common Language Runtime and one of the principal
inventors of .NET) recently cut through all of the confusion during a
discussion on the academic Shared Source CLI discussion list
(dotnet-sscli@di.unipi.it).
It began when Giuseppe Attardi posted to the list, saying he was
concerned that Microsoft's recent patent application would hurt research and
standardization. Surprisingly, Dr. Miller responded that Microsoft and its
partners are making the bits of the .NET patent that have been standardized
available "royalty-free and otherwise RAND (reasonable and nondiscriminatory
terms)."
Sensing an opportunity to resolve the question once and for all, I leapt
in. "What about the nonstandardized APIs, such as System.Windows.
Forms, for example," I asked? Here is his response (slightly abridged):
Microsoft has a commercial product, the CLR, and we treat it as we do
any commercial product. It is covered by patents, copyrights, trade secrets,
trademarks, whatever the lawyers dream up next. Then there's a
standardization effort that covers a specific pair of technologies, whose
scope is stated and agreed on by the appropriate standards organization.
What's standardized is clearly stated in the standard itself. If it's
standardized, you know the rules. If it's not standardized, you know the
rules. What's unclear?
I guess what is unclear is that Microsoft continues to claim it supports
Mono despite Dr. Miller's comments that strongly suggest that portions of
both Mono and Portable.NET are in violation of their patents! Could it be
that Microsoft sees it to be in some way advantageous to have people think
.NET is a standard along the lines of J2EE, perhaps without having to go
down that particular road for real?
Rhys Weatherley, founder of the Portable.NET project and to my mind
a true visionary, offered up a clarification on the list for Dr. Miller. He
suggested that, because some of the Windows APIs upon which the .NET APIs
are based have existed for many years without patents the enforceability
of the patents Microsoft now claims could be legally questionable.
Dr. Miller did not reply.
About The Author
Derek Ferguson is editor-in-chief of .NET Developer's Journal and author of
the book Mobile .NET (Apress). He is also chief technology evangelist for Expand Beyond Corporation (www.xb.com), a worldwide leader in mobile software for enterprise
management.
derek@sys-con.com
All Rights Reserved
Copyright © 2004 SYS-CON Media, Inc.
E-mail:
info@sys-con.com