On Thu, Jan 20, 2022 at 8:16 PM Dan Stromberg <drsalists@gmail.com> wrote:
On Fri, Apr 16, 2021 at 11:13 AM Christian Heimes <christian@python.org> wrote:
My personal stop of contributing in CPython is that it is written in
On 16/04/2021 19.14, redradist@gmail.com wrote: pure C !!
I wrote code in both: pure C and C++, but I like writing code in C++, because it simplifies things without losing perfomance
There are plenty of Open Source projects that could use more capable C++ developers. :)
I'm not a fan of C++. It has its use cases, e.g. in UI. Python core isn't the best fit. AFAIK most core devs are not fluent in C++. Despite it's name, C++ is really a different language than C. It has a different ABI and stdlib than C, too. In my personal opinion C++ won't give us any net benefits. I'd much rather go for Rust than C++ to gain memory safety.
Agreed.
Rust would be much better than C++.
At least one Python runtime has been written in Rust already: https://github.com/RustPython/RustPython The fundamental reason we haven't embarked on new language things in CPython is compatibility and complexity. If there were clear demonstrable wins to adopting a language in addition to C for the CPython runtime, we could consider it (ultimately as a PEP with reasoning, alternatives, and rejected ideas all laid out). But it isn't going to be done on a whim as it a new language doesn't magically solve problems, it just adds more problems. Of the three things listed at the start of this thread, the first two don't exist. From huge codebase experience with C++, it does not cause significantly better (1) Readabillity or (2) Maintainability on its own compared to C - both of those are entirely up to the software engineering practices adopted within the project no matter what the language is. (3) RAII is the number one thing I would enjoy having in the CPython internals. Manually managing Py_DECREFs is inhumane. As a result we have built up infrastructure to detect leaks in our test suite so new refcount leak problems *usually* don't happen - so long as test coverage is in place (ex: 3.10.2...). And RAII isn't magic, even it can be used wrong. It's just that the location and spelling of the wrong changes. Rewrites might sound "easy" (emphasis on the air quotes! nobody should think it's easy)... but only until you actually have to match API and ABI and bug for bug compatibility with the entire corpus of existing real world code. Just ask PyPy. ;) -gps