F
Frans Bouma [C# MVP]
Peter said:But what does Microsoft say? A lot of people, especially those who
are more inclined to work with open-source and especially with Linux,
have a tendency to view Microsoft as a monolithic, power-hungry,
lawyer-driven company. And as with all great myths, there's probably
at least some grains of truth behind that view.
What's the relevance of what MS says, other than what's in their
reference license? That license has all what MS has to say about it. If
you don't agree with it, don't accept it and don't look at the code.
However if you DO accept it and DO look at the code, you're doomed to
do things on projects you might have been a great help for. I once
looked at the rotor code (very first beta version), actually only the
compiler. However by doing that, I accepted the license it came with
and I can't work on mono stuff now.
But without any evidence that suggests Microsoft's own position is
that looking at .NET code causes a person to be legally unqualified
to work on Mono, it's just rumor-mongering and not necessarily by
people who normally view Microsoft in a positive light anyway.
It's precaution: if you haven't looked at the code, you can't literaly
copy/paste the code: you HAVE TO write it yourself. Changes are that
the code will likely look different from what MS wrote as you have to
solve problems yourself. It's not about 'MS is evil', it's about
protecting the Mono code from lawsuits which they could have prevented.
(Note: at this point it's been well-explained that the Microsoft
license would not permit the legal use of their source code as a
foundation for Mono or similar projects. So at this point, my
original question has been answered and I believe I understand that
answer. I'm just following the subsequent questions that now apply
in that context).
So, no...you can't just port the .NET source code over to other
platforms. But where's the basis for the claim that you can't work
on Mono and also step through .NET code when you're debugging
something else?
because you've access to code which you could copy/paste or learn how
it works inside and reproduce it for mono, which would make Mono look
like it has copy/pasted MS code and thus that it's open for a lawsuit.
It's simple copyright 101. Also, the MS code has a lot of patents on it.
You are already at risk for legal action, if you happen to produce
code that "looks" like their code. Especially if you work on Mono.
Even without source code, it is not difficult to reproduce in
separate source code the same algorithms used in a given piece of
software, if that's your intent and you use the compiled software
you're trying to emulate a as a reference.
that's not that clear, as when you wrote it, you can produce
sourcecode history, design documents etc. which are the foundation of
your code. True, if you implement an algorithm which is patented by the
retarted US patent office, then yes, you're open for a lawsuit, but you
can't defend yourself against that. (e.g. ms has a patent for o/r
mapping which is violated by hibernate)
Working on Mono, you are intentionally trying to reproduce the
behavior of the .NET Framework, and even without inspecting the
compiled .NET Framework code it would not be surprising if you should
happen to on occasion implement things in the same way they are
implemented in .NET. But how are you to prove to Microsoft in those
cases that you didn't actually use their compiled code as a reference?
it's THEIR job to proof you DID copy it. If you have never accepted
the license of this sourcecode, you have never been able to look at it.
Therefore it's harder for them to proof that you did copy it.
They don't have to show you their source code for them to file legal
action on the basis of a copyright violation.
the sco case proofs that they have to. It would also be silly to claim
copyright infrigment without proof that someone indeed copied your
work, aint it?
It seems to me that what puts you at risk for legal action (such as
that risk may be) is the fact that you work on Mono. This is true
even without the .NET source code.
Microsoft didn't need access to the Stacker source code for them to
be sued over DoubleSpace. All they needed was an implementation that
looked sufficiently like Stacker's implementation.
though there's jurisprudence for reverse engineering (compac bios case
if I recall correctly) that you may reverse engineer IF you don't have
the sourcecode.
Anyone may sue you one day, it depends if they have a case or not.
What you and I can do is protect ourselves from losing these lawsuits.
There's no protection possible against a lawsuit being filed against
you, though you can protect yourself (at least try) against losing
these because the other has a strong case against you.
That's also why the license this code comes with is evil and everyone
looking at sourcecode on the internet should REALIZE that you only
should do so if you understand the license the code is distributed
under.
Well, that's true of any published source code that carries an
attached license. Even regular "open source" stuff generally
includes various license requirements that can form the basis of a
lawsuit of someone believes you misused the source code.
So, for example, either you cannot look at any source code covered by
the GPL, or you must provide all of the disclosures and other
requirements made by the GPL, even if you did in fact not actually
intentionally reuse the source code you looked at. If you want to
follow the legal liability philosophy you're stating, that is.
Only if you copy the code. The GPL doesn't grant patents to be upheld
by the copyright holder if I'm not mistaken.
Granted, in your specific case dealing with an open-source project
your own work may naturally already comply with the GPL, even if you
don't have a need to. But the more general "problem" still exists;
it's certainly not unique to Microsoft's publication of source code
here.
As far as the question of actually being sued goes...
Not having any legal expertise, I wouldn't even try to make a claim
as to the reality of the situation. However, I suspect that fears of
legal action are highly over-inflated for a given individual,
assuming no actual misuse of the code happened (that is, assuming you
didn't actually copy the code or some non-obvious technique, that
sort of thing).
Granted, there's a lot of gray area, but I think an individual
worried about being sued by Microsoft has, in most cases, a
perception of their value to Microsoft that is probably too high.
You'll never know if that might change in the future. Most developers
are most of the time simply not thinking about licensing issues when
they write code. That's utterly stupid, IMHO, but reality. I think
people should wake up and realize that reality is different: if you
write code and it WILL be successful, it might be that MS will sue you,
or maybe another company will... Protect yourself from losing these
lawsuits.
Also, if MS does something bad to YOU, you can't win a lawsuit against
them if they have a strong case against you in another area.
FB
--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------