this post was submitted on 15 Jun 2024
78 points (91.5% liked)

Python

6408 readers
2 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

📅 Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
💓 Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
Feeds

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 15 points 5 months ago* (last edited 5 months ago) (2 children)

I'd really like to see Rust fit in where C(++) does now for Python. I know some libraties do it (e.g. Pydantic), but it really should be more common. It should work really well with the GIL... (or the TIL or whatever the new one is)

[–] [email protected] 4 points 5 months ago (1 children)

Sounds like an excellent idea, I'd be surprised if it isn't happening.

[–] [email protected] 3 points 5 months ago

Well, it is happening, I just don't know how "blessed" it is by Python maintainers (i.e. are Python releases blocked by Rust binding updates?). It's 100% possible today and there are projects that use Rust bindings, I just don't know how that fits in with Python development vs the C++ API.

[–] [email protected] 4 points 5 months ago* (last edited 5 months ago) (1 children)

Or you could use cython, which is much easier to integrate with a python project. It is only marginally slower than Rust but a little less safe. Numpy libraries are usually the fast. Numba is a little clunky, but can also speed up code. There's lots of options to speed up python code.

[–] [email protected] 2 points 5 months ago

Yup, Cython rocks.

You can also use numba if you just need to accelerate one part of the app. We did that with a heavy part of the app and our naïve Python (using numpy) was about as fast as our naïve Rust, but only when wr turned on parallel processing in numba (I could've easily beat it with parallel Rust, but that requires extra work and wouldn't fit as nicely into the rest of the app).