Honestly, I don't really believe in large scale migrations of existing Windows infrastructure to Linux. Large migrations are hard to do at the best of times, always cause a lot of resistance and frustration, and take a long time before they start paying off, if that even happens at all.
I agree 100% with you, large scale migration from Window to Linux are almost impossible. I'm a Linux users since a long time and I'm really happy with it but I'm working in a big international firm and a migration to Linux would be simply impossible. The main reason is that we depends on hundreds of different applications that only works on Windows and was developed with Windows in mind. Some of this application are also of critical importance so you cannot think to replace them without incurring in a huge disaster, the office applications are much more critical in this respect.
Another good reason is that the IT staff only know about windows so to switch to Linux would require to retrain all of them. I'm also sure that many of them will hate Linux for emotional reasons and it will be very difficult to make the transition.
... so your users will simply not be able to do things the way they were used to doing them. This is where you hit your biggest resistance: they will have to re-learn things, which will take time, effort and money. People will get upset, they will hate the new system, and they will complain about it, loudly, and to anyone who will listen. And for good reason: they had a work flow that worked, and then management came and pulled the rug from under them and they had to re-learn things for no good reason.
Again, 100% agree. I've seen that at university, I've tried to convince people to use emacs and I was very surprised of the resistance: they have learnt a basic workflow with windows program and to learn something slightly different was considered highly annoying.
For the other side I would like to add a remarks about Windows. They have been successful to tie almost all enterprise to their specific software stack and they have made the transition to anything else virtually impossible. They have never promoted or adopted standard protocols but they have always created their own specific protocol which is not interoperable with other operating systems. So they have Winsockets that are similar but not quite the same of POSIX sockets, WinThreads that are similar but not quite the same of posix threads and so on.
I Invite you also to note that if we have internet that is based on universal standard protocols like TCP/IP, HTTP and we can use it with any OS, all of this was against what Microsoft was willing to do. They was trying to create their own Window Network with specific protocols and compatible only with windows.
Because of all these reasons all the people that like computer science should avoid MS products. But there is also an economic reason to avoid MS products, they force the enterprise to adopt their non-standard software stack and they are forced to pay all a MS tax, they have no choice.
Apple is an "abuser" of open technology for the simple reason that they are taking a huge advantage by using the free software that the community has produced over many years and they don't give anything back.
Of course you're right: the BSD license allow that and the GPL license is designed to avoid this kind of abuse but this doesn't mean that this behaviour is not an abuse from the moral point of view.
I believe that the approach of Microsoft is much more honest: they are against the free software and they don't use it in any of their products.
There simply isn't an easy solution to this. If you abolish software patents, it makes it very difficult for companies to realistically spend millions on development of new concepts and ideas when someone can then just take the ground breaking UI or process etc. If you don't abolish patents, you still end up with the farcical joke that we have now.
Companies that spends millions in software development very often produce crap. Look at UNIX, one of the most successful operating systems. The original plan of AT&T was to develop an ambitious OS called MULTICS but they failed to produce anything and UNIX it was developed after its failure by Kernighan & Ritchie. So the company, with all its million of dollars, failed to produce anything where an handful of smart people succeeded. Real innovations and breakthrough software are almost always produced by smart/skilful people or by very small company. The reason is that in big companies a handful of incompetent managers that does not understand anything takes the decisions and this lead very often to crap products. Also they tend to hire mediocre programmers and never hires really smart people because these latter have often a non-conventional CV. Google is an exception in this world and the explanation is that the work was started and the company founded by two very smart guys that understands very well maths and programming. Big companies only produce craps and they need software patents to protect their very fragile advantages. Francesco