Username or EmailPassword
let's try to give an answere, even if it doesn't make sense to answere the same questions again and again.
Let's focus on one example you have mentioned: System.Collections
First let me say that we are talking about software patents. Software patents has nothing to do with a specific implementation, software patents covers ideas completely independent from implementations, implementations are covered by copyright.
So look at System.Collections that are all basic things: lists, bit-arrays, hash-tables, and so on. Let's assume that MS has used a great idea to implement the System.Collections.Stack and have a patent on this idea. The Mono guys have implemented a System.Collections.Stack too without looking at the MS code. So we have two options:
1. They have implemented the "MS idea" which is patented.
2. They have implemented the stack by avoiding the "MS idea"
If option 2 is true we are done, no problem.
If option 1 is valid we have a problem if MS comes to us and says that we are using their patent. Than we have again two options:
1. We will find another way to implement the stack, than everything is fine.
2. We will not find another way to implement the stack.
If point 1 is true, the problem is solved.
If point 2 is true, we and all other programers have a problem. Because situation 2 would mean, that there is no way to implement a stack without violate a patent. This would mean that every stack, never mind if he is implemented in c#, python, c c++, java or any other language would violate the MS patent.
I hope you can see the point. In all the .Net libs there is nothing which is that new that there was nothing comparable in other language/toolkit libs. So either there is a way around the patent, you can contest the patent or everyone who do the same thing violate the patent.
And beside this few MS patents there are thousends of other patents were you have exactly the same problem.
Yes, it's a crappy situation but that's the situation for every programmer if he writes more than just a "hello-world-app" whether he uses c#, java, c++, c or any other language.
I am not a patent lawyer, but the patent seems to imply they are patenting the API (software patents are such a nightmare combination of legal and tech lingo).
In order to work around the patent I would guess you will need to completely change the API of the Mono class library, in which case you will break all compatibility of Mono with .NET (and thus the concept of "moving" .NET applications to Linux falls apart) and you will break all existing Mono apps as everyone has to rewrite to the new API.
This patent (if granted) does not seem like something that has an attractive "implement around" option, in which case you are stuck with licensing it under whatever terms MS sees fit. To me, all of this makes Mono an insane idea at this moment.
I am not a patent lawyer, but the patent seems to imply they are patenting the API
no you can't patent an API so that you can say: "System.Collections.Stack is patended an no one can have a function called System.Collections.Stack"
This has nothing to do with patents. On software patents you cover a specific idea completely independent if you call the fuction foo or bar and completely independent if you implement this idea in C, C++ or any other language.