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

Python

6327 readers
218 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] 20 points 4 months ago (1 children)

The aim is to offer the speed of C or C++ while retaining the user-friendly feel of Python itself.

These kind of claims always annoy me. Like, sure, there's some room for interpretation there, but at the end of the day, C, C++ and also Rust achieve their speed by having handling baked into the semantics for:

  • non-GC memory management
  • passing by-reference vs. by-value
  • and in the case of Rust, also for handling multi-threaded processing.

Unless he comes up with a revolutionary new memory management strategy, or achieves a massive jump in static analysis to replace human intelligence, then you simply can't achieve similar speed while keeping the semantics of Python.

[–] FizzyOrange 6 points 4 months ago (1 children)

That's not really true. C# and Java are reference-based, uses GC and can be multithreaded, and are very comparable to Rust/C++/C performance. Certainly no more than twice as bad. Whereas Python is probably 50x as bad.

The real answer is that Python developers have deliberately avoided worrying about performance when designing the language, until maybe 2 years ago. That means it has ended up being extremely dynamic and difficult to optimise, and the CPython implementation itself has also not focused on performance so it isn't fast.

But I agree the aim of offering C/C++ speed is never going to be met with Python syntax.

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

They can probably beat or at least match Javascript, which has been heavily optimized, but the cap is going to be something like Lua (not LuaJit) without significant, painful changes.

If you want faster Python today, you can try numba or Cython, both solve the problem in a different way with different tradeoffs.