C.<p><span class="h-card" translate="no"><a href="https://fosstodon.org/@AndyScott" class="u-url mention">@<span>AndyScott</span></a></span> </p><p>You're talking about how the way memory/object tracking and reference counting is done in the Python core, which in one implementation of Python is itself written in C, correct?</p><p>Responses:</p><p>1) Not all Python <a href="https://mindly.social/tags/implementations" class="mention hashtag" rel="tag">#<span>implementations</span></a> are in C. Some are inherently memory-safe.</p><p>2) In <a href="https://mindly.social/tags/CPython" class="mention hashtag" rel="tag">#<span>CPython</span></a>, the object lifetimes and <a href="https://mindly.social/tags/reference" class="mention hashtag" rel="tag">#<span>reference</span></a> counting rules are well-understood and <a href="https://mindly.social/tags/documented" class="mention hashtag" rel="tag">#<span>documented</span></a>, are maintained by a large core of developers who understand them, and have been tested with trial-by-fire by millions of users and millions of Python programs over decades. If you write an application in C or another memory-unsafe language and do your <a href="https://mindly.social/tags/memory" class="mention hashtag" rel="tag">#<span>memory</span></a> handling yourself, it's code by one person, tested by at most a few people, and newly written - maybe not documented, and probably not with all the <a href="https://mindly.social/tags/bugs" class="mention hashtag" rel="tag">#<span>bugs</span></a> already shaken out of it.</p><p>Analogy: you need a boiler to operate your steam engine. You can use one designed by an engineer who has been doing boilers for twenty years, and manufactured by someone who has done nothing but that for the same length of time -- or you can cobble one together by yourself for the first time, not knowing the engineering behind it, and just hope it doesn't explode the first time you bring it up to pressure.</p>