Sadly, even if I’m moralistically in favor, there is so much insane computer science logic (and proprietary mechanisms) behind the process of compilation, especially on certain embedded systems where this issue comes up, that I doubt that could ever be pushed into law.
I understand it’s easy for a layperson to have that opinion, but I don’t think it can be hand-waved away as too difficult when people are actually doing it.
This doesn’t make sense as the compilers would also be included in this new copyright scheme and would become public property after so much time.
There are open source compilers for all major CPU architectures. In fact the open source compilers regularly outperform the closed source ones. It’s also not exactly that difficult to add on more architectures to an existing compiler these days thanks to the modular way modern compilers are built. Once you build a backend for LLVM you unlock not just one language but about a dozen.
Others have mentioned existing efforts to form reproducible results. So, this might be irrelevant now; but I’m fairly sure if the mindset was “open source compilers are always better than extremely expensive ones”, the expensive ones wouldn’t have a reason to exist.
That could be an old mindset. (Of course, binaries made way back in that age are part of how we got in this mess)
Others have mentioned existing efforts to form reproducible results. So, this might be irrelevant now; but I’m fairly sure if the mindset was “open source compilers are always better than extremely expensive ones”, the expensive ones wouldn’t have a reason to exist.
Actually their reason to exist is that some software and hardware platforms don’t have a real open source alternative.
I have a friend who works with some of these compilers, and also with low level assembly language and stuff. He tells me most of the closed source compilers he works with are way behind the open source ones including Microsoft’s compiler. I’ve seen some evidence of this myself too. The reason people use the Microsoft one is because it integrates better with the Windows APIs and Visual Studio, or just because they don’t know better. I believe Microsoft even have an initiative to integrate LLVM into Visual Studio because they know how bad their compiler is in comparison. Since it’s by a large company specialising in systems software theirs is probably one of the better examples.
In the Apple ecosystem they use LLVM for C and C++. The only stable Rust compiler afaik is LLVM based, though they are working on their own alternative which will also be open source.
You would maybe not be surprised to know that there is way waaaaay more in common from one software project to another. Especially games which essentially all use one of a handful of game engines and asset sources.
I think proper codifying engineering standards for software would also help… maybe even should happen first.