Hi David,
I’m not sure we’re looking at it the right way. It’s not that OSH should be like OSS because they are both open, it is that hardware is very different than software, so we should not expect them to behave the same way regardless of openness or closedness. The temptation to analogise the two is understandable but I think ultimately doing so does not yield insight.
Every time one imposes a standard solution onto a custom problem, some degree of efficiency is naturally lost because a compromise has been made. In the virtual or abstract domain this loss is small and is more than offset by the advantages. So while you might get a faster executable by programming in assembly, in most cases it makes much more sense to use a higher level language in which it is faster to write, and that is more debuggable. The standard imposed is the language. The advantage lost is the execution speed, the gain that offsets it is the ease of writing and debugging, and portability, maintainability, etc.
In the physical domain, consider the handphone that doesn’t have a jack for headphones. A physical standard has been replaced with a virtual one (bluetooth maybe), thereby saving space. The Macbook air laptop was designed without a LAN port for the same reason.
Bicycle parts are notoriously made to different different standards. Threads can be in inch or metric sizes. Seat post diameters come in different sizes. This is ostensibly due to bike design lying so close to the performance edge: a folding bike is different than a fatbike, but to get decent performance (like low weight), different standards are required.
The example of screw threads carries its own counterexample. While it’s true that screw thread forms are today standardised, and that this is unequivocally a good thing, it is also true that every engineered product will carry multiple sizes of the screws, whether UNC or ISO. It’s not a case of one size (diameter, or length, or head style) fits all use cases. Each different size is manufactured with different tooling (think forge dies for heads) and requires (potentially) a different tool to assemble it (think socket sets), then consider proof strength, surface coating, and material… The interchangeability of the screw is very much more limited than it might first appear.
Hardware is just different than software. The trend in software is towards greater modularity (reusable components like DLLs in runtime or libraries/classes at programming-time, distributed computing), whereas in hardware the trend is towards greater integratedness, like phones without headphone jacks, or removable batteries, screens that are glued in and not easy to replace. Passenger cars have gone to front wheel drive to integrate drive train with the engine, thereby saving space that can be devoted to the passenger cabin, but also becoming more difficult to service. Hardware has to deal with the real world. Software deals with a world that we create for it.