What is the core of the Python programming language?
As a maintainer of the Skulpt Python-to-JS compiler (<a href="https:&#x2F;&#x2F;skulpt.org" rel="nofollow">https:&#x2F;&#x2F;skulpt.org</a>), I can reasonably attempt to answer this question.<p>Skulpt compiles Python to JS in one shot, so it&#x27;s not a million miles away from the architecture Brett envisages. (I gave a lightning talk about it here: <a href="https:&#x2F;&#x2F;anvil.works&#x2F;blog&#x2F;pycon-talk" rel="nofollow">https:&#x2F;&#x2F;anvil.works&#x2F;blog&#x2F;pycon-talk</a>).<p>Things I&#x27;ve observed:<p>- &quot;Ordinary code&quot; requires remarkably little fidelity. Python has a very strong &quot;simplicity culture&quot;, so most code avoids being clever. If you&#x27;re creating an environment for users to program against (as we do in Anvil), it&#x27;s astonishing how little of Python you need to support.<p>- &quot;Be able to use popular Python libraries&quot; is <i>really, really hard</i>. The ordinary user doesn&#x27;t use all the esoteric stuff Brett mentions, but libraries do, left and right. Even porting PyPy&#x27;s `datetime` implementation to Skulpt required filling out a lot of odd little corners of the object implementation.<p>We still have a pretty crummy subset of `unittest` because it&#x27;s eye-achingly dynamic - for example, it really puts metaclasses through their paces. (Metaclasses are a perfect example of a powerful feature that really depends on details that descend directly from CPython: The API exposes the fact that variable scopes are literally `dict` objects, that classes are created dynamically at runtime, etc.)<p>- Finally (and most unfortunately): A lot of the strength of Python is in its ecosystem, and a lot of that ecosystem relies on native code. (Again, much more than you&#x27;d think. When porting stdlib modules from PyPy to Skulpt, we have often been disappointed by how many of them use native code - even in PyPy!)<p>The Python-to-C interface is really, <i>really</i> CPython-shaped. Anyone who wants to be compatible with numpy, scipy, etc, needs to literally emulate CPython&#x27;s data structures, and then translate them to whatever faster&#x2F;simpler thing they use internally. This emulation overhead is the main reason PyPy is slower than CPython on some workloads. (In Skulpt, we haven&#x27;t even attempted this. It doesn&#x27;t bother us much in Anvil, of course, as the server-side CPython is just a function call away, but for Brett&#x27;s use case I&#x27;m guessing it would really hurt. One day we might try, with a JS-to-wasm bridge and doing the emulation in wasm, but it would be a hell of ajob.)