For Python, you can read the PEP documents - Python Enhancement Proposals - and see the discussion of what was suggested, pros and cons, work done to determine the preferred implementation, and the final decision.
To get the best historical sense, pick a language feature that has evolved in several steps over a number of years, e.g. async/await, type annotations, the GIL, etc.
For ordered dicts, for instance, which is topical because of [1] posted two weeks ago, the relevant PEPs are:
- PEP372: The original collections.ordereddict proposal in Python 3.1 [2]
- PEP468: Making kwargs ordered in Python 3.6 [3], which also made standard dicts ordered.
It's pretty far back on my blog to-do list, but the key order guarantee that was solidified in 3.7 lost the opportunity for a further space optimization (for dicts where keys are frequently removed).
https://peps.python.org/
To get the best historical sense, pick a language feature that has evolved in several steps over a number of years, e.g. async/await, type annotations, the GIL, etc.
For ordered dicts, for instance, which is topical because of [1] posted two weeks ago, the relevant PEPs are:
- PEP372: The original collections.ordereddict proposal in Python 3.1 [2]
- PEP468: Making kwargs ordered in Python 3.6 [3], which also made standard dicts ordered.
[1] https://news.ycombinator.com/item?id=45756058
[2] https://peps.python.org/pep-0372/
[3] https://peps.python.org/pep-0468/