The problem with this, besides the fact that the claim is a very broad one which covers software which other people might want to write, is that it perpetuates the idea of the GPL as being like a virus.
I happen to agree. The GPL attempts to infect software in such a way that it dictates what an author may or may not do with their own software. You may agree or disagree with this. What this patent case does is far worse. This is *not* a case of a software author having the choice to infect their code with the GPL and make use of someone else's code in their project, or having the choice *not* to infect their code with the GPL and simply write all their own code, or else go find code to use that isn't covered by the GPL. This is about someone who believes in the GPL so much that they want to extend to software they haven't even written. The patent holder wishes to construe his patent so broadly as to force all programmers anywhere who wish to develop certain kinds of software to be covered by the GPL.
That is truly bad. I don't personally like the GPL, but I understand that all those who put their software under the GPL have the right to do so, and all those who use software covered by the GPL do so understanding the legal consequences, and that's their freedom of choice. But trying to *force* others to make their software be under the GPL whether they want to or not is truly despotic. Software patents are wrong, whether it's a company like Microsoft trying to force some company under the Microsoft Hegemony, or some GPL fanatic trying to force someone else under the GPL hegemony.
I think the supports of Free Software, and the supporters of Open Source software, should stand for, at the very least, personal freedom, and the right of an individual to write code as they see fit and to license it as they see fit. Forceful tendencies are reminiscent of the company practices of some companies which we always seem to portray as the "enemy". Have we become the enemy?
Although it seems on first glance to be evil, and to prevent people from compiling code using the MS toolkit using gcc or some other open-source compiler, or whatever, what it actually does is it prevents people from using the MS toolkit in code that people intend to release under a license that would require the MS software to be disclosed in source code form.
This makes perfect sense to me. If I want to disclose the source code to a project I am creating, and I want to license my project under the GPL, and I want to use Microsoft code as part of this project, then the GPL would in fact try to force the Microsoft code to fall under the terms of the GPL.
In reality, it is the GPL which is exclusive in this right, as it is the GPL that will prevent you from writing code using the MS tools, unless you are able to force the MS code to be licensed under GPL. In other words, *YOU* would be violating the GPL if you released a project under the GPL but were unable to release the Microsoft code that you used in your project under the GPL, because the GPL makes no exceptions for including proprietary code without it being GPLed.
If this MS license prevents you from *compiling* using gcc, then that is wrong. You can compile something with gcc under the GPL and *not* release what you compiled under the GPL. Therefore, Microsoft has no reason to need to protect themselves by preventing you from compiling with these tools.
If Microsoft is trying to FUD companies away from using any GPL or other free or open licensed software in conjunction with any Microsoft product, going into the future, then that is definitely something to be scared about.
Solaris is much more finely grained in its locking than any of the other OSes mentioned. Because of that, comparisons with other OSes running on one or two CPUs (usually on PCs) do not do Solaris its due justice. Sure, Linux or FreeBSD, which aren't very finely grained in their locking (but are working towards changing that) spend less overhead in locking calls, so they run faster.
But how fast can they run on a 32-cpu machine? Or a 64-cpu machine? According to some public documents I saw, Sun will release a 72-cpu machine this summer. They currently support 64 cpus on their E10000 machines. Solaris is a highly scalable OS. Linux is not. FreeBSD is most certainly not. Windows2000 may like to style itself scalable, but come on, we all know they are dreaming. Maybe scalable to 4 CPUs (if you own Pentium Xeons), and maybe in someone's wet dream it could scale to 16 CPUs or so, but none, I repeat none, of these OSes can scale like Solaris.
Solaris' strength isn't the fact that it's blazing fast on a single CPU, because a lot of tests can show Linux is faster. But Solaris *is* blazing fast on massively parallel machines. Solaris shows time and again an amazing ability to scale performance with the addition of more CPUs. The overhead required to build that scalability into the OS penalizes Solaris on single or dual-cpu machines, and that *must* be taken into account by people.
And don't even talk about 64-bit. Sure, Solaris for Intel is limited to 32-bit address spaces due to the constraints of the CPU architecture on which it runs, but Solaris the OS is built through and through as a 64-bit OS, and Solaris running on UltraSparc hardware supports zillions of bytes of RAM. The new SunFire 6800s can support in the hundreds of gigabytes of RAM.
Can Windows2000 do that? Can Linux do that? Can FreeBSD do that? Really we are talking about different markets here, that's all. You really need to test the OSes in the areas they are designed to operate, and then you'll see who the real champ is.
Actually, my favorite CS class in college was the one where we wrote a disassembler for an imaginary cpu architecture called Uinta. We then wrote an emulator for it. I really liked that. My emulator was like 20 times faster than anyone else's in the class. We were using filesystem calls to allow us to simulate a full 32-bit address space for memory operations, and I was the only one in the class that took the initiative to implement a simple cache in my simulator, so I avoided most of the filesystem calls used for the memory options. My cache was a simple, 1000-word direct-mapped cache. Later in the class we learned about n-way associative caches. If I had implemented my cache that way, it would have been easy to make my simulator run 100% in memory while still simulating a full 32-bit address space. But I never went back and did that. Oh well. I really agree that programmers should learn assembly language, but not that they should use it to program. They should learn it because I think it will help you to learn about how computers actually work at the low level software way.
The problem with this, besides the fact that the claim is a very broad one which covers software which other people might want to write, is that it perpetuates the idea of the GPL as being like a virus. I happen to agree. The GPL attempts to infect software in such a way that it dictates what an author may or may not do with their own software. You may agree or disagree with this. What this patent case does is far worse. This is *not* a case of a software author having the choice to infect their code with the GPL and make use of someone else's code in their project, or having the choice *not* to infect their code with the GPL and simply write all their own code, or else go find code to use that isn't covered by the GPL. This is about someone who believes in the GPL so much that they want to extend to software they haven't even written. The patent holder wishes to construe his patent so broadly as to force all programmers anywhere who wish to develop certain kinds of software to be covered by the GPL. That is truly bad. I don't personally like the GPL, but I understand that all those who put their software under the GPL have the right to do so, and all those who use software covered by the GPL do so understanding the legal consequences, and that's their freedom of choice. But trying to *force* others to make their software be under the GPL whether they want to or not is truly despotic. Software patents are wrong, whether it's a company like Microsoft trying to force some company under the Microsoft Hegemony, or some GPL fanatic trying to force someone else under the GPL hegemony. I think the supports of Free Software, and the supporters of Open Source software, should stand for, at the very least, personal freedom, and the right of an individual to write code as they see fit and to license it as they see fit. Forceful tendencies are reminiscent of the company practices of some companies which we always seem to portray as the "enemy". Have we become the enemy?
Although it seems on first glance to be evil, and to prevent people from compiling code using the MS toolkit using gcc or some other open-source compiler, or whatever, what it actually does is it prevents people from using the MS toolkit in code that people intend to release under a license that would require the MS software to be disclosed in source code form. This makes perfect sense to me. If I want to disclose the source code to a project I am creating, and I want to license my project under the GPL, and I want to use Microsoft code as part of this project, then the GPL would in fact try to force the Microsoft code to fall under the terms of the GPL. In reality, it is the GPL which is exclusive in this right, as it is the GPL that will prevent you from writing code using the MS tools, unless you are able to force the MS code to be licensed under GPL. In other words, *YOU* would be violating the GPL if you released a project under the GPL but were unable to release the Microsoft code that you used in your project under the GPL, because the GPL makes no exceptions for including proprietary code without it being GPLed. If this MS license prevents you from *compiling* using gcc, then that is wrong. You can compile something with gcc under the GPL and *not* release what you compiled under the GPL. Therefore, Microsoft has no reason to need to protect themselves by preventing you from compiling with these tools. If Microsoft is trying to FUD companies away from using any GPL or other free or open licensed software in conjunction with any Microsoft product, going into the future, then that is definitely something to be scared about.
Solaris is much more finely grained in its locking than any of the other OSes mentioned. Because of that, comparisons with other OSes running on one or two CPUs (usually on PCs) do not do Solaris its due justice. Sure, Linux or FreeBSD, which aren't very finely grained in their locking (but are working towards changing that) spend less overhead in locking calls, so they run faster.
But how fast can they run on a 32-cpu machine? Or a 64-cpu machine? According to some public documents I saw, Sun will release a 72-cpu machine this summer. They currently support 64 cpus on their E10000 machines. Solaris is a highly scalable OS. Linux is not. FreeBSD is most certainly not. Windows2000 may like to style itself scalable, but come on, we all know they are dreaming. Maybe scalable to 4 CPUs (if you own Pentium Xeons), and maybe in someone's wet dream it could scale to 16 CPUs or so, but none, I repeat none, of these OSes can scale like Solaris.
Solaris' strength isn't the fact that it's blazing fast on a single CPU, because a lot of tests can show Linux is faster. But Solaris *is* blazing fast on massively parallel machines. Solaris shows time and again an amazing ability to scale performance with the addition of more CPUs. The overhead required to build that scalability into the OS penalizes Solaris on single or dual-cpu machines, and that *must* be taken into account by people.
And don't even talk about 64-bit. Sure, Solaris for Intel is limited to 32-bit address spaces due to the constraints of the CPU architecture on which it runs, but Solaris the OS is built through and through as a 64-bit OS, and Solaris running on UltraSparc hardware supports zillions of bytes of RAM. The new SunFire 6800s can support in the hundreds of gigabytes of RAM.
Can Windows2000 do that? Can Linux do that? Can FreeBSD do that? Really we are talking about different markets here, that's all. You really need to test the OSes in the areas they are designed to operate, and then you'll see who the real champ is.
Actually, my favorite CS class in college was the one where we wrote a disassembler for an imaginary cpu architecture called Uinta. We then wrote an emulator for it. I really liked that. My emulator was like 20 times faster than anyone else's in the class. We were using filesystem calls to allow us to simulate a full 32-bit address space for memory operations, and I was the only one in the class that took the initiative to implement a simple cache in my simulator, so I avoided most of the filesystem calls used for the memory options. My cache was a simple, 1000-word direct-mapped cache. Later in the class we learned about n-way associative caches. If I had implemented my cache that way, it would have been easy to make my simulator run 100% in memory while still simulating a full 32-bit address space. But I never went back and did that. Oh well. I really agree that programmers should learn assembly language, but not that they should use it to program. They should learn it because I think it will help you to learn about how computers actually work at the low level software way.