News: .NET framework source code available soon...

  • Thread starter Jon Skeet [C# MVP]
  • Start date
M

Mads Bondo Dydensborg

Peter said:
Not according to Mads, and that's the point I'm disputing.

I do not recall writing anything about that, really.

I was stating the Mono policy on this.

I believe that the Mono folks have good reason for beeing careful about
this. You do not. I do not think we can resolve this issue, without using
lots and lots of time, that is better spent elsewhere.

Regards,

Mads

--
Med venlig hilsen/Regards

Systemudvikler/Systemsdeveloper cand.scient.dat, Ph.d., Mads Bondo
Dydensborg
Dansk BiblioteksCenter A/S, Tempovej 7-11, 2750 Ballerup, Tlf. +45 44 86 77
34
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

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.

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.
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?

MS could have used a license that explicit allowed for people to view
source and still work on alternative implementations.

They did not. And I am confident that MS very carefully considered
what license to use.

I really can't see any reason why MS should decide to go after the
Mono project - it would be shooting themselves in the foot.

But if I were responsible for the Mono project then I would not
take the risk either.

It has been industry standard for decades to use clean room
implementations to avoid legal problems at least since IBM
published the BIOS source code in their DOS manuals and
they had to find engineers that had never read it when they
did another implementation of the BIOS code.

Arne
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

Peter said:
On the other hand, for a _successful_ lawsuit to occur, very specific
violations must takes place. It's not sufficient for Microsoft to say
"hey, you looked at our source code and now you wrote something for
Mono" to win a lawsuit. They have to prove actual infringement. As
long as the Mono project doesn't actually include .NET source code or
implementations, they are already not vulnerable in that sense, whether
or not someone working on Mono has also used the .NET source code in
some other context.

I think you are too optimistic.

Try read:
http://en.wikipedia.org/wiki/Clean_room_design
http://en.wikipedia.org/wiki/Chinese_wall#Computer_science

Try read the SUN Java Research License they used for Java source
code before it was GPL'ed:
http://java.net/jrl.csp

It is not in any way given that a lawsuit would succeed.

But it is industry standard to not be willing to take
that risk.

Arne
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

Chris said:
What are you talking about? And would you base your products
exclusively on Microsoft's and Sun's "opinions" even if they are in
conflict with the law? Because that's what you seem to be saying.

I am saying that I have more confidence in the that MS and SUN
makes correct legal decisions based on the best legal advice
they can buy than on poorly formulated opinions from a mr. nobody
on usenet.

Arne
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

Chris said:
Copyright does not cover duplication of function or even accidental
recreation of the same exact program text, only intentional copying.
Hence "copy"right.

What you are thinking of are software _patents_ which is entirely
different. Patents must be explicitly filed for specific pieces of
functionality, they are not valid outside America and I think Japan,
and they are subject to interpretation by a judge regarding whether
the patented functionality is patentable at all.

Try read:
http://en.wikipedia.org/wiki/Clean_room_design

Arne
 
P

Peter Duniho

Mads said:
Thats not the point. The point is, for my company, that the companies we
work with expect us to honor these things. Not doing so would seriously
taint our reputation and relations to these other companies.

Actually, it is the point. You aren't very specific about what "these
things" are, but as far as the question of copyright infringement with
respect to the .NET source code goes, as long as you aren't actually
copying the .NET source, you have nothing to fear, except the lawyers.

The lawyers can't change what you've done from something that's legal to
something that's illegal. Only you can cause yourself to actually
engage in illegal practices, and if you are careful not to do so, no
amount of sword-rattling will change your legal standing.

But many lawyers stand to make lots of money rattling swords, whether
they win or not. That is the point as far my reply goes.

Pete
 
P

Peter Duniho

Mads said:
Peter said:
Frans said:
[...]
Mono requires that developers who submit patches / changes have never
looked at MS sourcecode. So if you have looked at rotor, you aren't
allowed to submit patches,
That may be a matter of policy on Mono's part. But that's a lot
different from saying that it's Microsoft's policy or legal assertion.

We never said that. You assumed that from what was said. Actually I tried
correcting your initial view asap.

I never said that's what you said, nor did I make any such assumption.
My point was to clarify the difference between Mono's defensive stance
and the question of what real risk, if any, actually exists.

Pete
 
P

Peter Duniho

Mads said:
I do not recall writing anything about that, really.

Sorry. That's the inference I take from your statement regarding Mono's
policy combined with your agreement with the policy.

If you believe that there is no legal risk in creating similar source
code as long as you haven't actually copied the .NET sources, then why
is it that you think Mono's policy has merit?

Pete
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

Jon said:
I agree completely. However, I'm using F#, LINQ and the C FFI and these
contain several tools that only work from the command line. Moreover, DOS
sucks compared to bash. :)

Then run another shell on your windows box.

One possibility would be ............. bash !

Arne
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

Jon said:
Really? I find Linux has much better libraries (e.g. Managed DirectX is
awful, no complex numbers in .NET), better documentation, faster and more
stable development environments (emacs vs Visual Studio Team Edition) and
better performance. Until F# came along, even the languages themselves were
vastly better under Linux.

I disagree with most.

There are very few Linux apps with documentation of MS quality.

I have never seen VS being unstable and I would consider it
a lot better for developing C# code than Emacs.

The operating system should not influence performance of
the apps at all.

Arne
 
J

Jon Skeet [C# MVP]

Arne Vajhøj said:
Then run another shell on your windows box.

One possibility would be ............. bash !

Another possibility would be PowerShell. I haven't used it much yet,
but I *really* like the idea of mixing the power of the pipeline model
of Unix tools with the richness of .NET types.
 
J

Jon Harrop

Jon said:
Another possibility would be PowerShell. I haven't used it much yet,
but I *really* like the idea of mixing the power of the pipeline model
of Unix tools with the richness of .NET types.

All I wanted was decent tab completion and coloring. I hadn't thought of
running a different shell.

Thanks for the tip!
 
C

Chris Nahr

I am saying that I have more confidence in the that MS and SUN
makes correct legal decisions based on the best legal advice
they can buy than on poorly formulated opinions from a mr. nobody
on usenet.

Last I checked Microsoft and Sun weren't charities providing public
lawyer services. They write up licenses to increase their profits and
for no other purpose, and they're quite happy to include unenforceable
items on the off chance that someone is intimidated by them.

You may choose to throw around childish insults at other posters but
all the while you're spamming your own "poorly formulated opinions"
all over this thread. Maybe your time would be better spent to inform
yourself about the actual legal situation, which requires surprisingly
little research.
 
L

Laura T.

Willy Denoyette said:
Laura T. said:
Jon Skeet said:
On Oct 4, 11:26 am, "Frans Bouma [C# MVP]"
Jordan S. wrote:
Will I no longer need Lutz Roeder's Reflector? I was going to be
learning that, but now I'm wondering what the value may be of his
Reflector if we can now get right into the BCL source itself.

Thoughts ?

If you don't accept the reference license, you have to use
reflector.
Reflector reverse engineers the IL, which makes you less vulnerable for
lawsuits than the reference licensed code makes you.

I'm not sure that it does - I'd be very surprised if the licence
for .NET didn't prohibit reverse engineering. I know reverse
engineering is legal (despite the licence) in some countries for the
purpose of compatibility testing, but I don't think it would help you
if you were accused of copying the code itself.

Jon

Well, then this might surprise you. I just installed dotnetfx.exe from
the msdn site, and the only EULA that I must agree does not even mention
reverse engineering. As an end-user, I have accepted only this EULA, and
if I happend to have Reflector on my machine, it's just casual. :)

The EULA is also here,
http://msdn2.microsoft.com/en-us/library/ms994405.aspx


Note that this is a supplemental EULA , maybe you should read your OS
product EULA first ;-)

Willy.

:)
 
M

Mads Bondo Dydensborg

Peter said:
Sorry. That's the inference I take from your statement regarding Mono's
policy combined with your agreement with the policy.

No problem. I was probably not expressing myself very clearly. This happens.
If you believe that there is no legal risk in creating similar source
code as long as you haven't actually copied the .NET sources, then why
is it that you think Mono's policy has merit?

A quite relevant question, that deserves a much better answer than I can
possibly hope to formulate given the time I can spend, and so on. I will
try to sketch some of the reasons

Much of it has to do with the fact that much open source efforts are heavily
dependent on perception. E.g. the company I work for (we work with what is
commonly referred to as Intelectual Property, I believe) has a strategy on
the it side that was originally (+20 years back) formed around Unix. There
were no such thing as Windows those days. These days, its Linux, as our
codebase can run on Linux, whereas porting it to Windows would require many
many years, better spend elsewhere. There are good sound business reasons
for this, including the compentences of the staff, etc.

Now, as an experiment, we are undertaking a rewrite/development of a product
in .net. This is because we have business cases for both running it on
Linux (in-house) and on Windows (outsourcing, client run). It has been
decided to try and do this in .net, with the majority of development taking
place under Linux/Mono, al the while ensuring that deployment on Windows is
still possible. (Btw: Originally this product was acquired from another
company, and it was Windows only, mostly written in VB)

The perception of Mono is relevant here. If a major player were to accuse
Mono of copyright infringement, naturally my company would have to consider
the long term availability of Mono as a platform. You and I may consider
this absurd, but laywers and people responsible for the money and the
decisions, do not. The issue of copyright is very important to my company,
given the area we do business in. Monos policy of a clean room
implementation (thanks Arne for pointing out the reference) is an insurance
for companies like mine, that the effort spent developing with Mono, and
fixing bugs in Mono, is well spent.

I hope you understand. The issues that we may mockingly refer to as Fear,
Uncertainty, and Doubt (FUD) is real in many policymakers eyes. E.g. many
companies has been harmed by the SCO case, even though it was clear to most
of us, that they never had a case. Monos policy is all part of trying to
protect the effort against accusations that may be groundless, but
nevertheless quite harmful.

Legal action can be quite harmful, even though it has no solid ground to
stand on. This is a good reason to try to protect oneself against it. As
you may recall, several initiatives have been started to try and fulfill
this goal:

http://www.informationweek.com/showArticle.jhtml?articleID=197000797

And, this is the kind of considerations companies take:
http://www.itbusinessedge.com/item/?ci=10914

Hope that clears my viewpoint, which I believed is shared by many, up.

Regards,

Mads

--
Med venlig hilsen/Regards

Systemudvikler/Systemsdeveloper cand.scient.dat, Ph.d., Mads Bondo
Dydensborg
Dansk BiblioteksCenter A/S, Tempovej 7-11, 2750 Ballerup, Tlf. +45 44 86 77
34
 
M

Mads Bondo Dydensborg

Peter said:
Mads said:
Peter said:
Frans Bouma [C# MVP] wrote:
[...]
Mono requires that developers who submit patches / changes have never
looked at MS sourcecode. So if you have looked at rotor, you aren't
allowed to submit patches,
That may be a matter of policy on Mono's part. But that's a lot
different from saying that it's Microsoft's policy or legal assertion.

We never said that. You assumed that from what was said. Actually I tried
correcting your initial view asap.

I never said that's what you said, nor did I make any such assumption.
My point was to clarify the difference between Mono's defensive stance
and the question of what real risk, if any, actually exists.

My apoligies. Seems a number of misperceptions has occured. Please see my
other post.

Regards,

Mads

--
Med venlig hilsen/Regards

Systemudvikler/Systemsdeveloper cand.scient.dat, Ph.d., Mads Bondo
Dydensborg
Dansk BiblioteksCenter A/S, Tempovej 7-11, 2750 Ballerup, Tlf. +45 44 86 77
34
 
F

Frans Bouma [C# MVP]

Peter said:
So, where in the license then does it say "if you have used the .NET
source code in any way, you may not work on Mono"?

It's not in MS' license, it's in Mono's policy for submitters of
patches and code.
Why? What in the license says that you're "doomed"?

you can't reasonably work on these projects because you personally
embed the risk of getting other peoples code in the main trunk.
Why? What was in the Rotor code's license under which you viewed the
code that specifically precludes you from working on Mono?

Peter, please... it's not in rotor's license, it's in the policy for
mono (and other high profile open source projects). It's simple math,
really.
I understand the precaution. But that's VERY different from saying
you are prohibited from performing the work otherwise.

Erm... I assume you're doing software development, ok? So you
understand logic.

If codebase A is open for you to look at, but A is also commercial, so
you can only look, and you want to work on codebase B, where B is doing
something similar to (parts of) A, and B is open source, isn't it so
that by accepting the license for A, you automatically can be ASSUMED
your work on B is copied from A?

Yes, we are all nice guys/gals who don't do anything bad ever,

...

till reality kicks in.
Sure, it is about "MS is evil". It's only because of this fear of
Microsoft that the Mono project is taking such a defensive stance.
If they made the assumption that Microsoft is benevolent and would
only take legal where there's a valid legal case, then they would
have no problem with Mono developers using the .NET source code in
situations unrelated to Mono.

And I think that fear is justified. Not because they think MS is evil.
Only stupids think in that kind of terms. MS is a big company, and
every big company has only one thing on their mind: money. So they do
things for getting that money, to keep the company going. I.o.w.:
simply business.

If mono opens the door to do .NET development and deployment on Linux
on a big scale, MS will kill it. It's not strange, it's logical from
MS' pov, simply because it would otherwise hurt their business.

From Mono's Pov, it's then logical to take precautions.
Mono is just an example though. Every framework developer out there
has to be very cautious. Not only with MS' code but with all code you
read on the net: even if it's just a tiny class, if the license of that
piece of code isn't clear, don't use it and don't look at the code.
Simple.

If you think that's retarted, fine. If a company C sues my company
because I made a mistake and copied C's code into our codebase, I'm
responsible and you won't care nor get hurt by it. Also, if you don't
care about the concerns I and others put forward, more power to you and
go ahead with what you wanted to do. But don't come here and whine
about what the consequenses did to you IF the future becomes less
bright than you might have anticipated.
[...]
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.

But that concern only applies to someone who is specifically using
the .NET source code as a reference for Mono (whether copying
directly or using it as a guide). That in no way eliminates the
possibility to use the .NET source code in other contexts.

mono is an example. Any o/r mapper and control vendor out there has to
be very careful (and there are other frameworks which replace parts of
the .net code base). You still don't see what the consequences can be
if an o/r mapper vendor makes SqlServer irrelevant w.r.t Linq ? If the
o/r mapper vendor included parts of the sourcecode, or wrote code very
very similar to it and has accepted that license, wouldn't it be easy
for MS to simply make a few calls to kill off that threat?

What I don't get is that according to some people looking at other
peoples sourcecode is a 'right' and has no consequences. It HAS
consequences.
[...]
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.

True. But the question of whether a license was accepted has nothing
to do with that.

of course it has. If you have accepted the license, they have an easy
job to proof you had every oppertunity to copy. If you DIDN'T accept
the license, you didn't have the oppertunity and they have a harder job
proving you copied code.
That's a false conclusion. Accepting the license has nothing to do
with whether a person has seen the .NET source code. I can accept
the license and never look at the source code, and I can look at the
source code without ever accepting the license. The two are
completely unrelated.

How can you look at the sourcecode without accepting the license? No,
reflector doesn't count, that's not the sourcecode.
[...]
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? ;)

No, it wouldn't be silly at all. It's easy enough to duplicate the
code from a compiled implementation. You don't need the source code
to violate the copyright rules.

How can I copy SOURCE without access to the source? If I have only a
compiled form, I can reverse engineer it, and re-use that, which is
allowed in most countries, IF you don't have access to the code and IF
you need that code to do your own work (e.g. an internal class is
needed for making your code work with the framework. There are examples
of that, for example design time databinding in ASP.NET with datasource
controls.).
[...]
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.

No doubt. I have said as much. But that's not the issue here. The
question is whether the Mono group has a legal requirement to protect
themselves in this way, and my assertion is that they do not.

So they, and other open source projects who have the same rules, have
a skewed vision on reality? Does 'SCO' ring a bell to you? :)
They may feel it makes sense to play it safe in this way, but that's
not the same as Microsoft imposing this requirement on them.

See above.
Again, the license is irrelevant to the copyright issues, and calling
the license "evil" is just the usual Microsoft demonizing that takes
place in the open-source community.

I can call it whatever I want to call it. I find this license evil, as
it has sideeffects which aren't visible at first. You for example don't
understand the side effects ;). I've explained them again above.
[...]
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.

That's an absurd statement. The courts do not decide separate issues
together. If you have a case against Microsoft with respect to one
thing, it doesn't matter what other case they may have against you in
some unrelated area.

I wasn't talking about courts, I was talking about threats. Has it
ever occured to you WHY companies file so many patent requests? That's
right, to protect THEMSELVES against companies who threat them with a
lawsuit: if that happens they can threat them back with "if you sue,
we'll sue you over this other thing".

It's simply business. A hobby programmer: shouldn't have any worries.
A professional framework developer: watch out.

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#)
------------------------------------------------------------------------
 
F

Frans Bouma [C# MVP]

Cor said:
Frans,

AFAIK do the laws of the EU not allow explicitily forbidding of
reverse enginering.

However it is not so difficult to do that implecitely.

No, reverse engineering is permitted, IF it's the only way to solve a
problem which is necessary to be solved for your business. So to be
able to write a datasourcecontrol for ASP.NET for example, one has to
reverse engineer existing controls to be able to do so, as the docs
don't describe what to do. (example).

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#)
------------------------------------------------------------------------
 
F

Frans Bouma [C# MVP]

Arne said:
Unless MS put it in writing in a legal binding form, then Mono and
other projects would still be worried.

I can be solved.

Before Java went GPL there was a Java Research License which
allows it.

http://java.net/jrl.csp

Quote:

***
B. Residual Rights. If You examine the Technology after accepting
this License and remember anything about it later, You are not
"tainted" in a way that would prevent You from creating or
contributing to an independent implementation, but this License grants
You no rights to Sun's copyrights or patents for use in such an
implementation.
***

And FAQ answer from same link:

***
18. Does the JRL prevent me from being able to create an independent
open source implementation of the licensed technology?

The JRL is not a tainting license and includes an express Òresidual
knowledgeÓ clause which says you're not contaminated by things you
happen to remember after examining the licensed technology. The JRL
allows you to use the source code for the purpose of JRL-related
activities but does not prohibit you from working on an independent
implementation of the technology afterwards. Obviously, if your
intention is to create an ÒindependentÓ implementation of the
technology then it is inappropriate to actively study JRL source
while working on such an implementation. It is appropriate, however,
to allow some decent interval of time (e.g. two weeks) to elapse
between working on a project that involves looking at some JRL source
code and working on a project that involves creating an independent
implementation of the same technology. ***

MS could do something similar.

Excellent idea. I've put up a post with your remark, perhaps they'll
read it. :)

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#)
------------------------------------------------------------------------
 
F

Frans Bouma [C# MVP]

Peter said:
Sorry. That's the inference I take from your statement regarding
Mono's policy combined with your agreement with the policy.

If you believe that there is no legal risk in creating similar source
code as long as you haven't actually copied the .NET sources, then
why is it that you think Mono's policy has merit?

If you write a class C and it looks very similar to a class D which is
in the .NET framework sourcecode and you submit it to Mono and you
really wrote it yourself, and you swear on a dear relative's grave that
you wrote it yourself, no one gives a damn if you say you wrote it
yourself or not, it's about how it LOOKS LIKE: it looks very very
similar, so someone simply looking at the code of class C can conclude
that it's copied from D and altered a bit to make it look different to
avoid being caught.

That's the point. So to AVOID that as MUCH AS POSSIBLE, a writer of
class C can't have access to D. Period. Only THEN you can be sure the
person who submits C is indeed the author of C, or at least be pretty
sure, and you've done your best to avoid copy-cats. If you DON'T have
that policy, you can never be as sure as when you DO have the policy.

So that's why they have the policy (and other open source projects
have also the same policy.)

For example Microsoft has the policy that no employee unless
specifically granted, is allowed to look (!) at GPL-ed software, to
AVOID that the GPL-ed code might end up in MS' products which would
make them vulnerable.

Gee... that sounds familiar... isn't that what's been argued here... ?
:)

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#)
------------------------------------------------------------------------
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top