Frans Bouma's blog

Generator.CreateCoolTool();

Syndication

News

    Visit LLBLGen Pro's website

    Follow FransBouma on Twitter

    Add to Technorati Favorites

About me

Fun stuff I created

My work

Don't look at the sourcecode of .NET licensed under the 'Reference license'

Update: If you think I should be shouting 'awesome' and similar words like most of the .NET community members, please take a walk down the path of 'licenses', something you all should be familiar with in every cell in your body, but by the look of all the different posts about this source release I can only conclude: hardly anyone has any clue whatsoever what licensing, copyright, software patents and related material really mean to a software developer. You didn't really think that by copying a class from the internet you owned the code, did you?

If you do framework development, take my advice and don't look at the .NET 3.5 BCL sourcecode. Using reflector isn't the same, you're then looking at IL being reversed engineered. Looking at sourcecode is different: it has comments, it has other layout, it has real variable names etc. etc. Also, use reflector only when you really have to. Using it is technically breaking the EULA.

Why you shouldn't look at that sourcecode
The reason is simple: software patents. People in the EU, where software patents are, fortunately, still not valid, should still realize that in other countries they do exist, and if you're writing software which could be sold in the US, don't make the mistake your code is liable to this. The jurisprudence on 'reverse engineering' is based on the fact that the people who are allowed to reverse engineer code have never layed eyes on the real code. As soon as they do, they can't reverse engineer the code anymore to their own benefit (whatever that may be, even rewriting code because it's internal in the BCL) because their case would fall outside the jurisprudence: it can be assumed they might have just copied the code instead of reverse engineered it.

Do realize that you're not allowed to rebuild that code, you're not allowed to modify it, copy it etc. You're only allowed to look at it, but also because you're not allowed to copy it, you have to forget what you saw, because if you don't forget it, and borrow the ideas in that code, you likely will step on some patent.

Take for example the new ReaderWriterLockSlim class introduced in .NET 3.5. It's in the System.Threading namespace which will be released in the pack of sourcecode-you-can-look-at. This class is a replacement for the flawed ReaderWriterLock in the current versions of .NET. This new lock is based on a patent, which (I'm told) is developed by Jeffrey Richter and sold to MS. This new class has its weaknesses as well (nothing is perfect). If you want to bend this class to meet your particular locking needs by writing a new one based on the ideas in that class' sourcecode, you're liable for a lawsuit as your code is a derivative work based on a patented class which is available in sourcecode form.

Software patents are evil and the release of this sourcecode doesn't help one bit, on the contrary. If you take your profession seriously, if you are interested in learning ideas about software engineering, instead of looking at that code, read scientific papers and learn from these. Dull crap which is out of touch with reality? Yeah right (just a few examples to get your appetite fired up ).

It's a red herring
Yes, I'm negative about this move. The main reason is that doesn't solve real problems at all. Take for example the case where you detect a bug in the BCL. You plow through the source-you-can't-touch and you'll discover the place where the bug originates and see how to fix it. You can't do a thing about it. You can't fix it yourself because you can't rebuild it. You can only report it back to MS and wait for a fix. Well, dear reader, good luck with that: even if Microsoft is willing to honor your request and patch it in a short time interval (read: month or so), you'll be handed a hotfix you can't distribute to your customers. They individually have to call PSS to get the fix, or you have to hope MS will release it publically which they've done with some fixes but hardly all of them.

Sure, be happy with your shiny sourcecode-you-can't-touch, but it's not something you would want: if Microsoft would have done this for the users of the code, namely the developers, they would have made the license less restrictive, at least that you could re-compile the code to include your own bugfixes till Microsoft would release them themselves.

Published Thursday, October 04, 2007 11:18 AM by FransBouma

Comments

# Don't look at the sourcecode of .NET licensed under the 'Reference license' - Frans Bouma's blog@ Thursday, October 04, 2007 5:54 AM

Don't look at the sourcecode of .NET licensed under the 'Reference license' - Frans Bouma's blog

Insane World

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 6:01 AM

Ye, ye, ye.. But the release of the source code is still great for several things! You are able to debug using the real source code and can see what is actually going on under the hood, and by doing so probably better understand why your own source code is acting the way it does.

Ola

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 6:32 AM

Stepping through that code will be useful to reverse engineer how to use a poorly documented bit of API.

As for the patent-related stuff. Yeah I suppose so, in theory, but not dat bovvered innit.

commenter

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 6:34 AM

BTW, your post reminded me of the time I made a bug report to Microsoft, in which I mentioned that I'd used Reflector to decompile some of the .NET framework. Luckily they didnt sue me :)

commenter

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 6:34 AM

While I will welcome the option to step through some buggy .NET code, I will wholeheartedly agree with you here.

I'm not so certain that this is a trap but, I wouldn't want to push MS either.

It's OK though. We have many, many, genius people in the .NET community. We don't need the stinking code!

I guess the bottom line is that we, the MS followers, don't really trust the very company that has given us such a nice environment.

Can you tell me the last time a civilization has survived such a predicament?

Me either... and that just might be the realization I need to move on.

Chris Martin

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 6:36 AM

Sorry to keep chipping in with new comments, but in reference to your complaint that it's not permitted to compile the source: I cannot even begin to imagine the mess which would occur if people started compiling their own forks of the .NET framework, to get round bugs they'd found!

Come to think of it, you probably meant pulling out chunks of the framework and modifying those, and compiling them separately.

commenter

# Don't look at the sourcecode of .NET licensed as 'Reference license@ Thursday, October 04, 2007 6:40 AM

You've been kicked (a good thing) - Trackback from DotNetKicks.com

DotNetKicks.com

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 6:41 AM

"But the release of the source code is still great for several things! You are able to debug using the real source code and can see what is actually going on under the hood,"

What bothers me about this statement is that it implies that you don't trust the framework.

I have enough troubles in my life. The last thing I want to worry about is why ASP.NET doesn't behave the way I expect it to. God forbid I have dig into the actual code to understand it. This is supposed to be the GOD framework. You know, it's from Microsoft after all!

And people wonder why there are alternative and exciting frameworks popping up. And why MS is copying anything that's useful.

Thanks, MS, for the CLR though.

Chris Martin

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 6:41 AM

I do not think people today are looking into compiling the .net framework source code and making their own distributions(this is only going to bring more problems than solve any). Reference license seems to be perfect in providing only the short comings we are facing today. Had they given us a do what you want license with the .net framework, as a web developer, i wouldn't know what to do with that. As a desktop dev, i wouldn't know what to do with that either and making a fix and bundling that along with my client application does not seem to be viable either. That would mean me distributing my own custom version of the .net framework which would simply bloat my app, and more to download for the client apart from being an added frustration. Having said that, I'm all for opensource and free, just don't see the added benefit to the average joe, still, don't you already have that ? -->> mono

alessandro

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 6:49 AM

I guess .NET developers just don't get OSS at all. It's not about rolling your own version at all. It's about fixing stuff that's broken....

God. I don't know why I even try with this crowd!

Chris Martin

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 7:05 AM

You DO NOT have to look at source-code to be in violation of software patents.

The problem with software patents is that ANY nontrivial program probably is in violation of a lot of (US) software patents.

A clean-room implementation is most certainly just as much in violation of software patents as implementations "inspired" by reflector

BTW, Miguel de Icaza wrote a balanced entry about this at tirania.org/.../Oct-03.html

Steinar Herland

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 7:09 AM

I also don't think people want to distribute their own .NET framework, that would be silly. What they for example would do is pick the DataGridView and update the paint routine so it's not so horrible slow and ship ONLY THAT updated class.

The framework indeed should do what it should do, debugging into .NET's sourcecode won't be that helpful anyway I think, simply because what will you do with the info you gather from it? The only benefit of it: patch bugs, is out of the question.

FransBouma

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 7:44 AM

Wow, this is one negative and fear-inducing post.  Do you really believe some of these examples would hold up in court?  Should I also never speak to anyone on the .NET development team for fear that they may help me out with a coding technique that Microsoft will come back and claim is based upon patented ideas ("we own that employee, so his brain is ours")?  Has it come to this?

Also, people love looking at this stuff for the sake of learning.

Maybe I'm naive, but I think you're overreacting.

Mark Freedman

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 7:55 AM

Mark: if you've ever read for example an NDA contract, you will understand that you shouldn't be too naive. For example, I can't speak to anyone about what I hear under NDA (not even to my wife). Silly? Why can't I speak to my wife about it? Well, it's in the contract.

A license is also a contract. You accept the license and if the license clauses aren't violating the law, they're valid and you're bound by them.

You may be naive in thinking that it won't happen to you, and it might well not happen to you. But you don't know what will happen in a few years time when the code you wrote today is perhaps important to MS. What will happen then?  Of course, if you're not willing to think of that, don't bother and live your life on the fast lane, where only the unlucky ones get scr*wed over. However, do realize that IF you take the risk, you might lose. And IF you lose, you will likely lose more than a few pennies.

And for learning? Learning what exactly? How to code? You don't learn that by looking at MS' code. You learn that from a book and by doing.

FransBouma

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 8:40 AM

OSS:  You see the software, realize there is a bug, complain, get told to fix it your own damn self, fix it in your build of the software, submit the fixes to the project's development community, deal with versioning issues until the fix gets put into the software.

MS OSS:  You see the software, realize there is a bug, complain, deal with it until some paid cubicle monkey at MS puts the fix in SP1, 2 or 3, which isn't more than a year from now.

mcgurk

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 8:45 AM

"What bothers me about this statement is that it implies that you don't trust the framework."

Chris, may I come and live with you in magic fun world, where all the frameworks are perfect? ;-)

commenter

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 8:46 AM

"I guess .NET developers just don't get OSS at all."

What's OSS got to do with this?

"God. I don't know why I even try with this crowd!"

It's tough at the top.

commenter

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 11:04 AM

I think your opinion is a little flawed.

How is looking at the actual code of the framwork any different than using .NET Reflector? With Reflector, you are still looking at the actual code that runs; it's just the MSIL version of it translated into C# or VB.NET. So if you copy it, you're still infringing on copyright.

Also, as far as Patents go; you don't even need to know a patent exists to infringe on it. You could be innocently mimicing the functionality of a class in the framework without looking at the code, and still infringe on the patent that lies within.

I do think your concerns are valid and everyone should understand the risk involved. But to really get away from possible infingement, we all must stop using Reflector and must never look at the shared shource .NET Framework code.

Don't be so critical and paranoid about things sometimes. Microsoft isn't going to sue companies that target their platform for small infringments. This would be really bad for .NET as a platform and cause everyone to switch to something like Java or Ruby. Plus, you only really have to worry if you are mimicing or copying larger pieces of functionality in the framework; something like what the Mono Project (http://mono-project.com) is doing.

Just me 2 cents...

Chris Pietschmann

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 11:09 AM

"I also don't think people want to distribute their own .NET framework, that would be silly. What they for example would do is pick the DataGridView and update the paint routine so it's not so horrible slow and ship ONLY THAT updated class." - FransBouma

Umm... Have you ever heard of object inheritance and overriding functionality of the base object? I wouldn't copy the entire code for the DataGridView, instead I would override only the functionality I want to improve or do differently.

I think you're just overreacting a little bit about this.

Chris Pietschmann

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 11:12 AM

I am not a lawyer (and neither are you).

This argument is silly.

First off, you base your argument on hearsay - a patent that may or may not exist that may or may not have been sold to Microsoft.

Secondly, you provide no proof of your "nightmare" scenario.  I would hardly consider subclassing a type to be a patent violation (if it was that easy, someone would've patented strings eons ago, for crying out loud).  The patent holder must also take some steps to defend their patent, so at the very least they would make the type sealed, and _not release the source code for it_.

Thirdly, proving that a software patent was violated is extremely difficult.  Unlike yourself, I actually have spoken to patent lawyers about getting some software I created patented.  Their response was, "yes, you can, but it's expensive, tedious, exposes your source code (after all, you need to describe what it is that your software does), and enforcing your patent is nigh impossible."

foobar

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 11:31 AM

"Umm... Have you ever heard of object inheritance and overriding functionality of the base object? I wouldn't copy the entire code for the DataGridView, instead I would override only the functionality I want to improve or do differently. I think you're just overreacting a little bit about this."

Chris: of course I've heard about inheritance, but often this isn't possible (e.g. sealed classes, or the part you want/need to adjust isn't virtual), and the example I used is precisely that: the # of paint calls and when they happen is off. This means that even though you can override things, it's not going to work that great.

Reflector is different because it's reverse engineering, it's not looking at the actual sourcecode: you're doing the same as the VM is: it's 1:1 info from the IL.

Foobar: so you're not a lawyer still you claim that my argument is silly. :) Funny.

If it's so hard to enforce, why are there even lawsuits about patents? (and not 1 or 2)

But it's your life and money, so if you think I'm nuts and my advice stinks, don't bother and do what you think is best :). All I'm saying is that it's not as rosy and cheery as it might look like: there are downsides to clicking 'OK' on the license agreement dialog, and more than often people simply don't give a hoot or don't even understand what they're doing and click OK.

I might not be a lawyer, but I have spend a lot of time on licensing, patents and the like, because it involves my everyday business as an owner of an ISV which sells software for .NET, which oh, competes with parts of .NET next year.

FransBouma

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 11:55 AM

heehee..  I wonder how long it will be before MS removes Frans' MVP status...

Not only are you competing with MS from next year, but you are p*ssing on their big "aren't we nice fellas by releasing some source for you to look at" parade. ;-)

Go Frans.. you tell 'em man!

GlenG

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 11:56 AM

C++ developers have had the ability to look at the source code (and step into it) for MFC/ATL for years.

What's different about this situation that would cause such a freeze that we didn't see before?

Haacked

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 12:27 PM

Phil: If I'm not mistaken, you were allowed to alter the ATL code / MFC code if you needed to, so the license wasn't as restrictive as it is with this. So I also don't understand why they moved into this direction all of a sudden...

FransBouma

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 1:31 PM

After I read this I still have one question. How could I possibly prove that I haven't looked at source code if I didn't?

Following your logic, if I looked at MS source, any code written by me can be proven to be a rewriting of MS ideas. But if my code is actually clean code right out of my head and even if I never looked at the .Net Framework source, how do I prove that I never did?

Or if I am presumed innocent, why is not my code (not copied form MS source) can not be presumed innocent even if I did look at the MS source?

Andrey Shchekin

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 2:16 PM

Frans, I definitely understand an NDA; I believe this is a separate issue. From what I've read, I doubt that even portions of most software licenses would completely hold up in court.

Concerning learning, I completely disagree -- why do you think that no one could learn by reading MS code?  Some of the smartest people in the world coded .NET.  Who said that this would replace books and coding for learning?  It supplements it.

Mark Freedman

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 2:31 PM

Andrey: you'll never be sure, but at least you can protect yourself better by not accepting that license, that way you can at least protect yourself from accusations that you did accept the license and thus have looked (and access and thus likely) copied the code from MS.

Mark: I agree that in front of a court, it's a gamble what the outcome might be. My parents-in-law were both judges (father passed away unfortunately), so I know a little bit how judges look at computer software (they in general have no clue whatsoever, sadly enough).

"Concerning learning, I completely disagree -- why do you think that no one could learn by reading MS code?  Some of the smartest people in the world coded .NET.  Who said that this would replace books and coding for learning?  It supplements it."

Computer code is the RESULT of a projection of a design (algorithms, ideas) onto text so it can be used in executable form. What you WANT is to look at the SOURCE of the projection, not the end result. You can't see what the decisions were why the code is written the way it is written. So the only possible thing you can learn is perhaps a tiny coding trick here and there, and even then...

I don't see how you can learn anything really useful from a pile of sourcecode you don't have the design decisions of.

FransBouma

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 4:26 PM

I agree that this is something people should be "aware" of, and I will eat my shorts if I see MS sue anyone for "patent" infringment.

Unfortunately, almost any contract can be argued in any cour of law, including NDA, and ULA's. As was mentioned before, just copying an idea, even if you've never seen the original, is infringing on somsone's patent/copyright.

The fact that we can get into MS's code and see what makes things ticks helps us work with it. Albeit, some might take exactly what MS does and copy it to be their own, and I doubt MS will unleash their hounds on that poor person.

If they did that... the .NET community would be in shock and MS will lose what it's been trying to build for years - us.

rternier

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 4:26 PM

Frans

You need a monument =)

You always look at the other side of things, the MS marketing guys must hate you, LoL

I cant simply understand how a lot people think that this is a glory, maybe is because I don't do ASP.NET and all are talking about stepping inside ASP:NET methods, in Windows Forms, with all the overloads, internal, and API calls we can lose 2 hours watching code instead of producing real code.

I think that for beginners that's not good either, they will be more confused that anyone, this is a feature for advanced users not beginners, I cant understand why all said: "wow great for learn and beginners"

Anyway 10 points again for u

Cheers

Marcos

Marcos

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 04, 2007 7:06 PM

@Chris Martin

"I guess .NET developers just don't get OSS at all. It's not about rolling your own version at all. It's about fixing stuff that's broken...."

Surely there are lots of values - different values to different people, even? For example, one of the most valuable aspects of open source to me actually lies in just looking at the code and learning more about good coding practices, tricks, etc. For me, a look-but-don't-recompile licence would be fine as long as I could feel safe that just by looking at the code (or clicking I Accept in whatever popup with 5 billion words MS throws at me when I install this) that wouldn't somehow legally "taint" me (as for example by disallowing me to reverse engineer by European laws, if I understand correctly?). As it stands, I'll wait and, ahem, don't see until sharper minds than mine conclude if it is safe or not.

@Frans,

I don't quite understand your argument about software patents though - if I break a patent in my code, I'm still accountable even though I haven't in fact looked at the code I infringe upon, right? Even if I haven't ever heard of it, yes? So what does it matter from a patent perspective if I look at the code? I could possibly see copyright issues stemming from that, but I don't get the patent angle.

/Mats

Mats Helander

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Friday, October 05, 2007 4:22 AM

rternier: I remember an add-in for vs.net about testing... Did everyone in the .NET community get up and shout ? no. Just a couple.

Mats: It's about defending yourself. A judge will not buy your argument you wrote the code yourself if you had the oppertunity to copy code and your code looks very very similar. A judge COULD buy your argument if you didn't have the oppertunity to copy code and your code looks different.

I wrote a more bigger reply here:

ayende.com/.../Microsoft-and-opening-the-code-damned-if-you-do-damned.aspx

FransBouma

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Friday, October 05, 2007 5:24 AM

Thanks for the great post Frans, much appreciated. You may have saved a few ppl's behind somewhere down the line, of those who listened anyway...

Don't worry too much about those that resolve to name calling rather than presenting a counter-argument, typically they have no idea what they are talking about.

The only part I disagree with you is that you would not be able to learn much from looking at the source code because you are not aware of the design decisions and what influenced them. A framework like .NET has specific principles which steer most of the design decisions (performance, usability, extensibility, versioning, etc.) and I would personally find it very interesting to look at how the .NET framework implemented certain functionality (the new locking class you mentioned being a great example).

Angelos Petropoulos

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Friday, October 05, 2007 5:36 AM

Just wanted to say, this post you made frans, is much appreciated. In effect, it got me and a couple of others on irc started on an argument.

We did enjoy arguing, and i put up the live chat session here : weblogs.asp.net/.../releasing-the-source-code-for-the-net-framework-libraries.aspx

enjoy.

alessandro

# Releasing the Source Code for the .NET Framework Libraries - chat session - Tutto .NET@ Friday, October 05, 2007 5:51 AM

Pingback from  Releasing the Source Code for the .NET Framework Libraries - chat session - Tutto .NET

Releasing the Source Code for the .NET Framework Libraries - chat session - Tutto .NET

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Friday, October 05, 2007 8:49 AM

Frans,

"Mats: It's about defending yourself. A judge will not buy your argument you wrote the code yourself if you had the oppertunity to copy code and your code looks very very similar. A judge COULD buy your argument if you didn't have the oppertunity to copy code and your code looks different."

Yes, I agree with this, only I think it would be in a copyright case rather than a patent case? In a patent case, if I have copied the code but claim I wrote it, I expect the accusing party wouldn't even bother checking that out, saying "fine, whatever, doesn't change the patent case at hand". If they had reason to doubt you, thinking you had also copied their copyrighted material, maybe you'd be additionally involved in a copyright case, beside the patent case. It should be evident to everyone after this that IANAL, but I might as well point it out after rambling on about the law...anyway, that would seem to a non-lawer such as myself the logical interpretation of the premiss that I am still just as guilty of patent violation (if it can be shown that I am) regardless of whether I have copied the code or written it myself - which is what I understand to be the case?

Anyway, the reason I kind of think it matters is because in my humblest opinion, software patents is in such a mess that, while I don't kid myself about their legal enforcability, I have lost my personal respect for them - not to be interpreted as "I don't care if I break them", only as "I will lobby for their abandonment". Copyright, on the other hand, I still have a lot of personal respect for and I think it should be kept a separate issue from the sorry state of affairs that are software patents. Basically, if I want MS to respect the OSS licences, which build on the notion of copyright, then I'd have to return the favor and respect MS' copyrights. Thus, If MS points to their copyrights, asking me to respect them, I'll do that thinking it is a fair deal. But if they point to their patents, while I realize I still have to comply, at that point I won't actually think it is such a fair deal anymore, because software patents are ridiculous. They are so just in that a million people /will/ come up with the same stuff on their own, tinkering away, just to discover (after they have built a business) that what they have coded is now somehow illegal because some other guy on the planet coded it first.

My basic stance is: If I can figure out how to do it on my own, it damn well shouldn't be illegal for me to do it!

/Mats

Mats Helander

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Friday, October 05, 2007 10:32 AM

Happy old Europe with no software patents. Hope they'll be smart enough in EC to never introduce them.

Pazu

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Friday, October 05, 2007 9:49 PM

I'm not too worried about bugs that I can't fix, I'm excited because I'll learn a lot from it and get a better insight of how it works. I've always written my own if another doesn't work. I've been using the framework since it was conceived and I've found so many, however, that has never stopped me from moving on with my project.

Rydal

# Perception Vs Reality Regarding The .NET Framework Source Code@ Saturday, October 06, 2007 2:24 AM

I think Miguel de Icaza nails it regarding some of the FUD being written about Microsoft’s latest move

Community Blogs

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Saturday, October 06, 2007 3:08 AM

Frans, the issue with the source code being available is an issue of copyright infringement, not patent infringement.

You don't even need to see the source code to potentially infringe on a patent. Case in point, Amazon's stupid one-click patent and the vonage/verizon patent dispute (www.nytimes.com/.../09lee.html).

So using Reflector *might* protect you from copyright infringement, but it does nothing to protect you from patent infringement. This is because of the stupidity of the current patent system which allows patenting obvious ideas and software algorithms.

I actually wrote about this in my recent blog post as a disclaimer.

haacked.com/.../perception-vs-reality-regarding-the-.net-framework-source-code.aspx

Haacked

# The unknowns of .net 3.5 framework library source code licensing@ Saturday, October 06, 2007 7:49 AM

Frans has an interesting post (and an update here ) regarding .net 3.5 framework library source code

Righthand blogs

# Tainted if you do, tainted if you don't@ Saturday, October 06, 2007 7:43 PM

Microsoft's latest move , to release the source code for the .Net framework, has triggered a variety

Dotmad

# Tainted if you do, tainted if you don't - Dotmad@ Saturday, October 06, 2007 7:44 PM

Pingback from  Tainted if you do, tainted if you don't - Dotmad

Tainted if you do, tainted if you don't - Dotmad

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Sunday, October 07, 2007 5:41 AM

I'm not sure it matters if you read the source code in legal terms:

dotmad.blogspot.com/.../tainted-if-you-do-tainted-if-you-dont.html

Adi

# Jay R. Wren - lazy dawg evarlast » Blog Archive » MS-RL Considered Harmful@ Sunday, October 07, 2007 1:03 PM

Pingback from  Jay R. Wren - lazy dawg evarlast  » Blog Archive   » MS-RL Considered Harmful

Jay R. Wren - lazy dawg evarlast » Blog Archive » MS-RL Considered Harmful

# .NET 3.5 Source Code - Good or Bad?@ Sunday, October 07, 2007 10:09 PM

.NET 3.5 Source Code - Good or Bad?

Joel Ross

# The Source is Here! Pt. II@ Tuesday, October 09, 2007 11:04 PM

The Source is Here! Pt. II

ZarkBlog

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Wednesday, October 10, 2007 8:35 AM

Here is simple solution - DON'T WORK WITH US COMPANIES! It's easy! :)

If patents/licenses/other-bloody-stuff make your life worse than avoid and ignore them. It's easy too.

Most of the US "patent holders" are morons. How many of them use own "patents" in OWN everyday business? Almost nobody. They'rejust waiting for chance to fill law-suite against somebody and get some easy money. Morons. US patent system is completely rotten. It's wrong. It's only about money.

BlackTiger

# TechZealotry » Joy/Danger of Reading .NET Framework Source Code@ Wednesday, October 10, 2007 12:42 PM

Pingback from  TechZealotry » Joy/Danger of Reading .NET Framework Source Code

TechZealotry » Joy/Danger of Reading .NET Framework Source Code

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 11, 2007 2:15 AM

The others are right; you've managed to conflate three entirely separate items into one confused post.

First, software licenses are NOT contracts.  Contract law is very different animal.  NDAs and the like are contracts, and a "breach of contract" case is separate from anything covered under copyright or patent law.  Software licenses merely grant you specific rights that are normally reserved by copyright or patent.  Two people/organizations may choose to enter into a specific contract around a set of licenses (e.g. cross-licensing patents), but that contract stands on its own, regardless of the licenses.

Copyright law would cover any copying and derivation you make of the source, since you did not receive a license to redistribute it.  This has absolutely nothing to do with patent law.  Not viewing the source would avoid the temptation of copying code directly, but that's about it.  Anyone with a brain can manage to avoid falling foul of copyright law; it's not hard at all.

Patent law would cover the implementation of a specific idea.  This has absolutely nothing to do with either copyright law or the source code at all.  Reverse engineering may still lead you to violate a patent by reimplementing something using the same basic approach.  Not reverse engineering or looking at the source won't necessarily help you avoid infringing on a patent, as you may simply choose the same approach by accident.  The key here in terms of penalties is whether you knew about the patent and "willfully infringed" on it.  The legal state of reverse engineering won't help you here.

Without a doubt, developers need to be aware of these issues and avoid trouble, but conflating three entirely separate concepts doesn't help anyone do that.

Random Reader

# re: Don't look at the sourcecode of .NET licensed under the 'Reference license'@ Thursday, October 11, 2007 2:18 AM

Well, this is an interesting post.

Firstly, I AM a lawyer, and I think there is some confusion on 2 different areas of intellectual property law - patents and copyright, and copyright law plays a huge part in protecting code.

When you patent something, you are patenting the idea.  It doesn't matter whether you even know something exists, but if you code something that does the same thing, you could be in breach.  

With copyright, however, it is the expression of an idea that is protected.  Two people painting the same building create two separate works which have their own copyright.

Relating this to code, if you look at the source code, and you code something similar, you are adapting the work (programming code is considered a work in copyright law) and you may be in breach.  If you do not view the source code and write something similar, then there is no breach - this is why reverse engineering creates an interestig dilemma because you haven't seen the source code.

Even though you may write something that doesn't breach copyright, you may end up breaching a patent if it exists.  

My concern is simple - if the source code is available to everyone and is widely distributed, it makes it a lot easier for MS to show that is was likely the code was copied or adapted.  They only need to show on the balance of probabilities (i.e. greater than 50% likelihood) that the code was copied (the beyond reasonable doubt test applied to criminal cases).

I leave you with one example regarding patents - do you think the people coding linux cared at the time that they may be breaching MS patents?  As with everything, it is a question of risk.  Be assured, if you make a lot of money from this code, they'll want their piece.  I would take "a lot" to be a many figured value before they cared.  As this is mostly an academic argument, the reality is you would need to do something significant to get MS lawyers on your case.

keenobserver