Piefed uses Python which is faster for development but the language is slower. Lemmy is built on Rust. I appreciate some features Piefed has but I do wonder about its scalability.
I thought Rust was faster for basically every metric?
The entire advantage of Python is supposed to be ease of development, in exchange for slower code execution. It is especially bad in terms of multiprocessing, which Rust is great at.
As I severely lack expertise on back-end development I asked for clarification to the forbidden oracle (AI) but it also told me that Rust is faster. I am not sure whether you feel like debunking an AI comment but if this is false I would love to hear why because from my current understanding Rust is always faster (for back-end development).
AI response
That statement is technically false, but it contains a grain of practical truth that often confuses people.
Here is the breakdown of why that statement is misleading and where the misunderstanding comes from.
The Verdict: False
Rust is almost invariably faster than Python, even in IO-bound tasks.
If you have a web server handling 10,000 concurrent connections that are all waiting on a database (pure IO-bound), the Rust server will use significantly less RAM and CPU to manage those “waiting” connections than the Python server.
Why the statement is wrong (The Technical Reality)
The argument assumes that “IO-bound” means the CPU does zero work. That isn’t true. Even in an IO-heavy application, the application server must do the following:
Event Loop Management
The server has to track which connections are waiting and which are ready to resume.
Rust’s async runtimes (like Tokio) are incredibly optimized and have near-zero runtime overhead.
Python’s asyncio loop has significant overhead because it is still running interpreted Python code to manage the tasks.
Serialization/Deserialization
When the database replies, the server receives raw bytes. It must turn those bytes into objects (JSON parsing, ORM model instantiation). This is CPU-bound work.
Rust does this near-instantly.
Python is notoriously slow at object instantiation.
The GIL (Global Interpreter Lock)
Even if your code is async, Python can only execute one bytecode instruction at a time per process.
If 100 requests come back from the DB at the exact same millisecond, Python has to process them one by one.
Rust can process them in parallel across all CPU cores.
Where the statement is “Practically” True (The Grain of Truth)
The person making that statement is likely conflating “faster” with “indistinguishable to a human.”
If a database query takes 100ms:
Rust overhead: 0.1ms → total response ≈ 100.1ms
Python overhead: 5.0ms → total response ≈ 105.0ms
To the human user, 100.1ms and 105ms feel exactly the same.
In this specific context, you could argue that Python is “just as fast” as Rust because the bottleneck is the database, not the language. But it is incorrect to say Python is faster.
The “Fediverse” Exception (Why it matters for PieFed)
The statement “web servers are IO-bound” is often true for something like a simple blog.
It is less true for the Fediverse.
ActivityPub (the protocol PieFed and Lemmy use) involves two things that are heavily CPU-bound, not IO-bound:
JSON Parsing
Fediverse servers throw massive JSON blobs at each other constantly.
Python is slow at parsing JSON compared to Rust.
Cryptography (RSA Signatures)
Every time a server sends a message to another server, it must cryptographically sign it (HTTP Signatures). Every time it receives a message, it must verify the signature.
Rust handles crypto operations natively and extremely fast.
Python relies on C-extensions (like cryptography), which are fast, but the overhead of calling back and forth between Python and C for every single request adds up.
Conclusion
The statement is false.
Rust is faster at raw execution.
Rust is faster at handling high concurrency (even IO-bound).
Python is only “faster” in one metric: development velocity – you can write the code faster in Python, but the code itself will not run faster than Rust.
No, python can be incredibly fast for IO when scaled properly.
You generally don’t run a single process or even program for serving websites. There are task queues, callbacks, microservices etc so the bottleneck is almost never the programming language itself but the tooling and Python’s tooling for web is still miles ahead. Thats why big project ship more Django than Rust and all AI training is running on Python not Rust etc.
Don’t get me wrong Rust is a brilliant language but Python can often be better.
Finally you can outsource high performance tasks to Rust or C from within Python rather easily these days.
Python is an interpreted language, which is fundamentally always slower than a compiled language like Rust. However the main performance bottleneck are actually sql queries, and I believe we make a lot more effort to optimize them compared to Piefed.
I don’t know which part of Lemmy u talking about. What I get to see is posts and comments ridiculizing or even hating russians (as people) get hundreds of likes.
I don’t like the devs but at the same time it’s not like they wield much power over users outside of the flagship instance, lemmy.ml. That’s the nice thing about decentralized FOSS social media. Can even make a fork if they ever did something unpopular.
Lemmy is fine though what are you on about
Well, it works. But Piefed is developing more features quicker atm.
So we should all just jump? Meh. Lemmy 1.0 is releasing soon which should help quite a bit.
AFAIK the two can federate with eachother so I’m glad we have both.
Thesis: Lemmy is better!
Antithesis: Piefed is better!
Synthesis: Bitch, they’re federated??
FUCK YOU HEGEL STOP FOLLOWING ME
I vote use both
https://lemmy.ml/comment/22544926
Not necessarely that’s the beauty of the fediverse. You can enjoy PieFed growth and all it’s content but stick on Lemmy if you don’t feel like moving.
Piefed uses Python which is faster for development but the language is slower. Lemmy is built on Rust. I appreciate some features Piefed has but I do wonder about its scalability.
it really depends what’s the metric. Most web server stuff is IO-bound not compute-bound so Python can actually be faster than Rust.
I thought Rust was faster for basically every metric?
The entire advantage of Python is supposed to be ease of development, in exchange for slower code execution. It is especially bad in terms of multiprocessing, which Rust is great at.
As I severely lack expertise on back-end development I asked for clarification to the forbidden oracle (AI) but it also told me that Rust is faster. I am not sure whether you feel like debunking an AI comment but if this is false I would love to hear why because from my current understanding Rust is always faster (for back-end development).
AI response
That statement is technically false, but it contains a grain of practical truth that often confuses people.
Here is the breakdown of why that statement is misleading and where the misunderstanding comes from.
The Verdict: False
Rust is almost invariably faster than Python, even in IO-bound tasks.
If you have a web server handling 10,000 concurrent connections that are all waiting on a database (pure IO-bound), the Rust server will use significantly less RAM and CPU to manage those “waiting” connections than the Python server.
Why the statement is wrong (The Technical Reality)
The argument assumes that “IO-bound” means the CPU does zero work. That isn’t true. Even in an IO-heavy application, the application server must do the following:
Event Loop Management
The server has to track which connections are waiting and which are ready to resume.
asyncioloop has significant overhead because it is still running interpreted Python code to manage the tasks.Serialization/Deserialization
When the database replies, the server receives raw bytes. It must turn those bytes into objects (JSON parsing, ORM model instantiation). This is CPU-bound work.
The GIL (Global Interpreter Lock)
Even if your code is async, Python can only execute one bytecode instruction at a time per process.
Where the statement is “Practically” True (The Grain of Truth)
The person making that statement is likely conflating “faster” with “indistinguishable to a human.”
If a database query takes 100ms:
To the human user, 100.1ms and 105ms feel exactly the same.
In this specific context, you could argue that Python is “just as fast” as Rust because the bottleneck is the database, not the language. But it is incorrect to say Python is faster.
The “Fediverse” Exception (Why it matters for PieFed)
The statement “web servers are IO-bound” is often true for something like a simple blog.
It is less true for the Fediverse.
ActivityPub (the protocol PieFed and Lemmy use) involves two things that are heavily CPU-bound, not IO-bound:
JSON Parsing
Fediverse servers throw massive JSON blobs at each other constantly.
Cryptography (RSA Signatures)
Every time a server sends a message to another server, it must cryptographically sign it (HTTP Signatures). Every time it receives a message, it must verify the signature.
cryptography), which are fast, but the overhead of calling back and forth between Python and C for every single request adds up.Conclusion
The statement is false.
No, python can be incredibly fast for IO when scaled properly.
You generally don’t run a single process or even program for serving websites. There are task queues, callbacks, microservices etc so the bottleneck is almost never the programming language itself but the tooling and Python’s tooling for web is still miles ahead. Thats why big project ship more Django than Rust and all AI training is running on Python not Rust etc.
Don’t get me wrong Rust is a brilliant language but Python can often be better.
Finally you can outsource high performance tasks to Rust or C from within Python rather easily these days.
Python is an interpreted language, which is fundamentally always slower than a compiled language like Rust. However the main performance bottleneck are actually sql queries, and I believe we make a lot more effort to optimize them compared to Piefed.
Lemmy still has a bigger user base doesn’t it?
Well yes, but you can interact with lemmy on piefed.
If it’s true It’s the main reason to not even think to use piefed.
Not if you want to make use of some of Piefeds tools.
except crazy authoritarian tankie leadership? It’s just a matter of time until one of them goes wacky (again) and brings down the entire brand.
It’s good to diversify here.
that is just one instance, in particular lemmy.ml. pretty much everywhere else they make fun of them.
I don’t know which part of Lemmy u talking about. What I get to see is posts and comments ridiculizing or even hating russians (as people) get hundreds of likes.
Good, that’s like being upset that nazi Germans are being hated on the telegraph. No shit Sherlock
Apparently you confused russians for israelis?
That’s just the tankie triad. there are lemmy instances that aren’t run by nutters, feddit.uk for example
Okay but it is developed by authoritarian communists. I mean it doesn’t have to annoy you, but it definitely annoys me.
I don’t like the devs but at the same time it’s not like they wield much power over users outside of the flagship instance, lemmy.ml. That’s the nice thing about decentralized FOSS social media. Can even make a fork if they ever did something unpopular.