Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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

 help



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.


saying the most popular hides the actual reason why it is popular though. it is the original python implementation. it defines the standard and functions a reference for all others. for better or for worse other implementations have to be bug-compatible with it, and that is what puts them not on equal footing.

for C compilers no reference implementation exists. the C standard was created out of multiple existing implementations.


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)

This doesn't sound right. PyPy has always been described as an alternative implementation of Python that could in some cases be a drop-in replacement for CPython (AKA standard Python) that could speed up production workloads. Underneath that is the RPython toolchain, but that's not what most people are talking about when they talk about PyPy.

Exactly correct. PyPy is a replacement for CPython 3.11, which aims to be fully compatible with pure Python code (C extensions are a more complicated story).

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...


PyPy may not care in principle, but RPython does, being a kind of python dialect designed for static compilation that is intended for writing JIT engines like PyPy.


Don't forget about dmypy, the daemon version of mypy.

https://mypy.readthedocs.io/en/stable/mypy_daemon.html


Thanks. I knew this already but keep forgetting and getting confused

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.


"We suck at naming things" -- Bjarne Stroustrup, in a talk about SFINAE

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


And then finally…GNU 720 AssistantDriver.

(Tip of the hat to Microsoft’s marketing teams.)


The python community has the habit of giving short names for things

Thanks, I also saw this as PyPI and was confused, lol

now somebody just needs to make a PiPy for the raspberry pi

Is that PiPyPy or PiPyPI?

Please don’t give ideas



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: