| Bad software survives because major investments by large organizations were made in tools that had closed (and even platform-specific) file formats. At the time, maybe no one fully understood the gravity of the investment they were making. Since the data is hard to interpret consistently, competition is practically impossible. Regulation of software is overdue. I can think of a few rules off the bat that would make a huge difference in spurring the development of quality software: 1. New software files such as documents must be stored in a format that can be read without ambiguity by modern machines, adhering to all regulations. 2. Executable specifications for all interpretations of file formats must be provided publicly, since broadly-available cross-platform execution environments (e.g. Python) are now widely available. In other words, you're not allowed to obfuscate what your file format does by publishing a 500 page document to explain how a single spreadsheet row is interpreted; you must instead provide, for example, a short Python script to illustrate the exact behavior, that anyone on any system can inspect and run. 3. Auditors must be able to correlate your software's interpretation of files with your executable specifications. Any discrepancies require the software to be updated, for as far back as issues have been found. 4. Software is prohibited from re-saving any file in an older format that does not adhere to regulated behavior. Users are not permitted to avoid this type of auto-upgrade, any more than they are permitted to continue wiring their houses with last century's electrical codes. 5. Software may not depend on the behavior of machines or methods that are impractical to obtain (e.g. "what Windows 95 used to do here"). If existing formats have such restrictions, they must upgrade according to the step above. |