The embedded world is very big - you specialise in the high reliability and safety-concious areas. For much of the rest of the embedded world, things like price or time-to-market are more important. And what applies to the end products applies to the tools.
Let's take a concrete example. Freescale is one of the biggest suppliers of microcontrollers to the automotive industry, and much of the software on these micros is developed using Metrowerks - a large, expensive (for the full versions), commercial development suite. The full pack for a given target might take around 1 GB disk space on a workstation. There is no way you could possibly convince me that the same level of care and quality control is applied to that 1 GB of development tool software as there is to a 20 K engine controller written using that tool. I certainly would not want a car with an engine controller that hangs or crashes as often as Metrowerks (it's not bad software, but it is not perfect).
It very much makes sense to lower the standards for some components. Higher quality standards means longer development time, more people involved, more skilled developers, and higher costs. You use the appropriate quality standards for the job - in a car, you might spend 50 times as much per line of code in the engine controller as you do in the car radio. In a development suite, you spend much more effort ensuring the correctness of the compiler and the library than you do on the debugger or the project manager.
Some sorts of commercial software have the source available under certain conditions, but not all. For a development tool, it's not uncommon to be able to get access to the library source - but source for the compiler itself is likely to be much harder to get hold of. And there can be all sorts of restrictions involved - an NDA can make live very difficult if you are required to show the source to a third party for verification. By the time you have included requirements of being able to show the source to whoever you want, to modify it as you want, to run it on different targets as you want, that your rights are not time limited and cannot be restricted by the supplier or anyone else, you have come pretty close to requiring an open source license. Obviously there are relatively few times when you absolutely need such freedom, but it is far from inconceivable.
I don't really think you understand what I am saying. If an open source license is an absolute requirement, then any closed source software is useless for the job. You either start with whatever open source software is available, or you start from scratch.
That's because you live in a small part of the embedded world, where development is done with meticulous care because mistakes cost lives - purchase prices, licensing details, etc., are minor details in comparison. You can live with restrictive NDAs because that is part of that sort of development. But there is a wider world of embedded development, and a much wider world of software beyond that. This thread is about XP, so consider embedded windows as an example. It is possible to get the source code, if you are a large enough customer, have enough money, and are willing to put up with the restrictions involved. If our company were looking for an embedded operating system with a gui and the ability to easily connect to other computers, then we could not even consider embedded XP - the source is not available to us, under terms we can work with. It might be that there are alternative commercial choices (say, QNX), or it might mean using an open source solution.
And you think it helps by replying with equally irrational and religious arguments, along the lines of "I know someone once who saw some source code - they spent so long reading it, it cost their company money" ? You'll only encourage more extreme replies. I've tried to convince you, by (hopefully) rational argument, that the best tool for the job can often be open source - if you want to keep harping on about FOSS fanatics, then you can do so without my further involvement.
It's taken a lot of blood, sweat and tears to draw out that admission.
Being commercially successful in the software world is the same as commercial success in any venture - it does not require quality. It requires being more popular than alternatives. If you can do that in other ways than spending money on quality, then you get more profit. In an ideal free market, where people can choose and mix and match, then quality products have a better chance (though they may still lose out to lower priced competition).
That's one of its many failings, not its only one. Windows is certainly usable for many purposes, and can often be the right choice (I am using it now), but its commercial success has very little to do with its technical quality as software.
With 20/20 hindsight, and possibly poor foresight, this company knows it made a bad decision. Making decisions like that are partly skill and partly luck - this is hardly information on which to base your philosophy on open source.
As I have always said, being open source does not necessarily make a given piece of software the best choice. But in this case, you are comparing one piece of software with source to a different piece of software with no source, and leaping to the conclusion that it is the source that was the cause of the problem. It looks to me like the software they choose was not the best for the job - the source code license is pretty irrelevant here.
The only time I have seen wide-ranging claims that all commercial software is bug-ridden is in *your* posts, with your accusations that this is a common attitude of FOSS devotees. Most FOSS devotees I know will happily tell you the benefits of their choice of software - but they believe that *you* should have the freedom to choose what software
*you* want. They'll tell you about bugs in particular closed source software, and they'll tell you why the open source development model can help avoid certain problems. So let's have a little less of this here-say about what you think some fanatics say, thus keeping the conversation more level-headed. If someone posts claims you think are fanatical, respond to *them*, not me.