Re: Waterfall process much?
> PEP politics and process
Well, PEPs can be fairly anal at several levels. First goal is to keep the syntax clean. There was for example a big old discussion of how to represent C’s ternary operator. Everyone agreed on the idea itself but there was split between “use the C syntax” and “make it more obvious”. The pattern-matching match statement, more or less lifted from Rust, took a long time to gel.
On the tech side, the GIL-ectomy proposal, to remove the Global Interpreter Lock (which holds back thread concurrency) was long in gestation. The concern was: don’t break existing code, including on code that relies on C modules. And don’t screw single thread speed or blow up mem use to enable multithreading.
These things take a long time to get right. Git branching and merging may not be as helpful as you think if the JIT code is embedded finely in critical, and changing, blocks of the main execution engine. Which, IIRC, is “just” a big ol’ C case looking at all the incoming Python operators.
This is mentioned in the article:
> Asked whether development could continue in a fork, Shannon said it was not easy due to the way optimizations are generated, leading to very large code differences that are hard to manage.
Past forays into big structural code changes have been very carefully weighted, and planned, after the execution teams had done lots of initial prrof-of-concept work.
And if you feel you need to diss “waterfall” i.e. planning in this case, I guess that means you’d want “agile”, hmmm?