I think competitiveness is a good thing and will drive innovation. But in this specific field, with regards to safety and security, it needs to be out in the open.
This is one of the horrors of capitalism.
If there's money to be made, you can bet that if someone creates a proprietary protocol, it won't be released and will force other companies to develop their own technology to compete.
Yes, it will drive competition, but I fear that it will spawn a host of different, competing technologies and make the whole industry awash in proprietary technology. In most of those cases, the people who lose are the consumers.
I'd be interested to hear if there are more recent examples.
I used to work for the company that published rfc 1223, giving away private information. The motivation is a competitor reversed engineered the protocol, and some customers had both. There was now a need to change the protocol but we knew our customers would not accept having to throw out the competitors equipment to take the upgrade. By publishing the protocol we ensured the competitor understood it and thus when the bit that was "always 0 apparently unused" changed to 1, with a change to the meaning of all following bytes they understood why it was always 0 and why the change happened and how to read all the following bytes.
He then open-sourced the software specifically to avoid regulation and safety standards.
"NHTSA only regulates physical products that are sold,” Hotz said.
“They do not regulate open source software, which is a whole lot more like speech.”
[1] https://qz.com/849669/to-dodge-government-regulation-self-dr...[2] https://www.theverge.com/2016/11/30/13779336/comma-ai-autopi...
You're required to be given the chance to read contracts before you sign them, I don't see why software should be different.
We don't allow our plumbing, structure wiring, welding, or any other physical construction method to be closed away and hidden from view. Rather we demand these things be inspected, certified, documented and generally adhere to demonstrable codes and rules.
Keeping you source hidden is saying "I have something to hide". Why should someone have something to hide in Pacemaker software, software driving vehicles or safety system on nuclear power plants or anything else where life could be lost?
Of course houses are all the same: a few toilets, sinks, tubs and showers. The differences are easy to handle in the rules. You could imagine something different: instead of water we have a special hand cleaner in this sink. My checklists cover the potable water system and the non-potable water drain system, this special cleaning fluid isn't covered and your cannot inspect it. We have a simple exception for those cases: a professional engineer can legally stamp it saying "I have thought of everything, this will work if installed according to these specs." Then the checklist is make sure that everything is up to those specs.
I honestly do not know how to create a checklist for source code. Sure I can create some starts, but https://en.wikipedia.org/wiki/Underhanded_C_Contest needs to be considered: can someone pass your checklist and still win?
Where you can't it is partially because the analogy breaks down physical is slightly reduced by openness, its allows attackers of all kinds to plan better. More manpower can be focused to overcome and issue and a map is force multiplier. Security in information systems is strictly increased, because the flaws exist open or close, but when exposed in the open they are closed forever to all attacker regardless of manpower.
Each car manufacturers autonomous driving is a black box, we don't know whether said edge case is handled or not, or what action the car will take. Maybe now's not the time but it would be nice to see a deterministic rule book that says, for this edge case, the system will react this way. We can't account for all edge cases but some default fall back would be nice.