← Back to context

Comment by the_jeremy

15 days ago

If anyone else is also barely aware and confused by the similar names, PyPI is the Python Package Index, which is up and maintained. PyPy is "A fast, compliant alternative implementation of Python." which doesn't have enough devs to release a version for 3.12[0].

[0]: https://github.com/orgs/pypy/discussions/5145

Thanks for the clarification. On top of that, being an issue in the 'uv' GitHub repo (uv installs packages from PyPi) made my brain easily cross the letters.

Reminds me of Cython vs CPython

  • What is cpython? I don't think I've heard of this one before.

    Edit: it's just python. People are pretending like other attempts to implement this are on equal footing

    • CPython (the compiler) is the most popular implementation of Python (the language) like GCC, Clang, and MSVC (compilers) are implementations of C (the language). Other Python implementations include PyPy, Jython, and IronPython.

      Nobody is "pretending" anything. These have all been around for 15+ years at this point. Your ignorance does not imply intent to deceive on others part.

      1 reply →

    • The project has self described as CPython for many years.

      It’s literally the name of the repo [1].

      There’s no grounding to feign surprise or concern anymore.

      Moreover, I have used PyPy for years to beat the pants off CPython programs.

      [1] https://github.com/python/cpython

    • PyPy is a JIT-compiled implementation of a language called RPython which is a restricted subset of Python. It does not and has never attempted to implement Python or replace your CPython interpreter for most intents and purposes. CPython is the official reference implementation of the Python language and what you probably use if you write Python code and don't understand the difference between a programming language and its implementations (which is fine)

      2 replies →

and mypy is "an optional static type checker for Python" [0]

Given that both pypy (through RPython) and mypy deal with static type checks in some sense, I kept confusing the two projects until recently.

Also, I just learnt (from another comment in this post) about mypyc [1], which seems to complete the circle somehow in my mind.

  [0] https://www.mypy-lang.org/
  [1] https://github.com/mypyc/mypyc

  • pypy existed long before type annotations were a thing

    • And JITs often don't care for type specifications as they can generally get better info from the runtime values, need to support that anyway, and for languages like python the type specifications can be complete lies anyway. They also might support (and substitute) optimised versions of types internally (e.g. pypy has supported list specialisation for a long time).

      Maybe it's changed since, but last I checked the JVM's JIT did not care at all for java's types.

      Which is not to say JITs don't indirectly benefit mind, type annotations tend to encourage monomorphic code, which JITs do like a lot. But unlike most AOT compilers it's not like they mind that annotations are polymorphic as long as the runtime is monomorphic...

      1 reply →

The short summary of it being that these people are beyond terrible at giving names to things.

  • Programmers and engineers should never be allowed to name things.

    I say that as a programmer and engineer.

    • On one side I agree. On other side I look how marketing people name things and I think we're still better off

      Imagine if next edition of GCC, released in 2026 was named 2027. Then it was GCC One. Then GCC 720. Then GCC XE. Then just plain GCC. Then GCC Teams

      1 reply →