The U.S. Securities and Exchange Commission (SEC) specified Python as the language of choice for coding a program to report contractual cash-flow provisions.
Their reasons were two:
- Python is open source, hence not susceptible to proprietary restrictions on users.
- Python is interpreted, hence more transparent than compiled executable code, and so less likely to contain malicious functionality.
The key passage in this 667-page document follows:
We are proposing new Rule 314 of Regulation S-T to require that the waterfall computer program be written in the Python programming language and be filed as source code that is able to be downloaded and run on a local computer properly configured with a Python interpreter. As we note above, Python is an open source interpreted programming language. Open source means that the source code is available to all users (as opposed to proprietary source code that can be viewed only by the owner or developer of the program). An interpreted language is a programming language that requires an interpreter in the target computer for program execution. We prohibit the inclusion of executable code in electronic submissions on EDGAR because of the computer security risks posed by accepting executable code for filing. Executable code results from separately compiling a computer program prior to running it. Since Python is an interpreted language that does not need to be compiled prior to running it, executable code would not need to be published on EDGAR, and we would not require EDGAR to establish facilities to host, run, or operate any computer program. The waterfall computer program source code would be required to be submitted as tagged XML data. The EDGAR Technical Specification would contain detailed information on how to file the waterfall computer program.
File No. S7-08-10, "Asset Backed Securities", Sec. III B 1(d), pp. 214–15. Online at https://www.sec.gov/rules/proposed/2010/33-9117.pdf, accessed 20120801.
Public comments are collected at https://www.sec.gov/comments/s7-08-10/s70810.shtml, accessed 20120801.