As software eats the world, the programming languages used to build the software themselves grow and evolve. When new programming languages start out, they are often the product of an individual or a small group of people, though there are several famous examples of top-down programming language design where the PL is designed by committee from the outset (e.g., ALGOL. However, when a PL gets to a certain level of adoption, the inventors sometimes submit the PL to one of the standardization bodies: ISO C++, ANSI C, ANSI FORTRAN, ECMA/ISO C#, and ECMA ECMAScript. Others continue to retain their independent governance bodies (e.g., Python, Java). In either case, the governing bodies specify a process for evolving PLs:
- Java: Java Specification Requests
- C++: C++ papers
- Python: Python Enhancement Proposals
- Rust: RFCs
- C#: Language Proposals
- ECMAScript: ECMAScript Proposals
Each of these governance bodies is like a small government. Many have voting requirements for advancing a proposal. For ISO standards, being subject to a supranational organization, sometimes votes are per represented country. There is often a sense of consensus building among the core developers. For a given proposal to advance, there must be a known, vetted advocate and also a core developer who can vouch that the proposal can indeed be implemented in the main compiler or interpreter without aversely impacting the community.
Comments
Post a Comment