In fact, forget the programming language!
I like piefed.
For me, it is how often and how quickly they fix issues. Like someone pointed out a typo earlier today and whenever I went to check on it, it was fixed already.
I saw that! I also see how someone downvoted your comment - it’s funny how it’s all “let’s not fight and all be friends”, until someone says something that would unquestionably be good if Lemmy also did it, and then that’s somehow “
badless relevant information”?Fwiw I intended this post in good humor. Somehow I did not appreciate how much of a powder keg this issue seems to have (apparently) blown up into becoming.
Fwiw I intended this post in good humor. Somehow I did not appreciate how much of a powder keg this issue seems to have (apparently) blown up into becoming.
Humor, especially self-aware, is intrinsically tied to the concept of meme. Sometimes we forget that.
If this is a dig at Lemmy, Lemmy uses Rust. You’d know that’s a popular language if you’ve kept up with programming news anytime in the last 5 years.
Lemmy uses Rust
Is that the one I keep seeing kneehigh sock memes about?
For rust you need leather socks.
Notice how the OP specifically said well-known and widely used. Yes Rust is currently cool, but way way more people can actually work productively with Python.
Wait… PieFed uses Python? Holy shit… as someone who regularly uses both, Rust is such a better fit for something like this on this scale. That’s actually one of the best arguments I’ve heard against PieFed
Python and bootstrap. Honestly, piefed feels like someone’s final cs50 project - which is why I’m hesitant to jump.
bootstrap 🤢🤮
Why would it be a better fit?
From what I understand, the limitation in speed/scalability for lemmy/piefed/mbin is the database, not the back end language, so the specific language used appears to matter much less than it would seem.
Piefed has some some pretty great features over lemmy, but for the sysadmin side of things, it has a noticeable improvement regarding network resource usage, and potentially raw speed.
Piefed also appears to be less buggy overall. As an example, Lemmy has suffered from a persistent memory leak that’s been around for years, with no fix in sight. You can see the opinion of our sysadmin who has been running slrpnk.net (lemmy instance) for 5 years now to find that just because lemmy is built in a memory-safe language, it doesn’t automatically translate to a good experience.
Yeah, hopefully it will move forward faster than the snail pace of rusty lemmy.
I bet more people will be able to tinker with the python sources than rust sources…
Those kind of things do matter!
Notice how the OP specifically said well-known and widely used.
I did notice. If Rust isn’t “widely used”, then I’ll need to let Apple, Microsoft, Google, Amazon, Mozilla, Huawei, Meta, the Linux kernel devs, and a fuckload of open-source projects know that they actually don’t exist.
It’s plently widely used, and unlike
a scripting language(edit: Python), it’s performant – as server software should be. Rust is not a hard language to use or learn either, and it’s great for large projects.I would be surprised if you’d argue that more devs can write Rust than Python.
Web servers spent most of their time with IO, because the real work is mostly done by the DB. That’s why especially Node is very fast and influential design wise. But PHP, Ruby and Python are all very popular and valid choices for web servers. In the end, if you need real performance you have to scale horizontally anyways. And the small gains you make in a compiled language matter even less.
I’ve learned dozens of languages over 40 years. Rust is one of the hardest I have tried to use for serious projects. It introduces completely new concepts that need to be deeply understood to be productive. It’s also one of the most convenient, well-tooled, and expressive languages I’ve used. But c’mon, as languages go, Rust is deep into BDSM territory.
I had to do c++ template metaprogramming (insane, stay away from it at all costs), Rust makes me think of that in a more better modern way.
Easy? I wouldn’t say, and the compiler is slow ☺️
I love python but only as a scripting language because of GIL and the ridiculous performance (and it’s not really suited for “large” projects). But if you need a little thing it’s so fast to spin up.
Disclaimer: am old C/C++ dev.
As someone who routinely works on a complicated C++ codebase, had to use C, Python, and Java all the time through school, has had to use absolute trash like JavaScript and PHP, and has dabbled in languages similar-ish to Rust like Go and Swift, Rust to me is simple to work with.
The compiler is extremely helpful when I do something wrong, it has sensible conventions like immutability by default, Cargo is a streamlined build system, I’ve found the documentation easy to read, I actually prefer curly brace-delimited scopes to tabbed ones and explicit type declarations for readability, and in the obvious comparison to C/C++, Rust lacks extremely common memory footguns.
Obviously compared to Python – with its mountain of syntax sugar and a library for everything – Rust is going to be more difficult. But for languages in general? Rust is not at all one of the harder ones I’ve learned or used.
(Btw I hate Java; it’s the worst language I’ve ever used.)
I’ve had a similar experience. Yes, I have had days where I spent a significant amount of time beating my head against the wall, but that’s part of the learning curve. Those days stretched farther apart pretty rapidly.
How many times have you spent an entire day not moving forward on a project because you couldn’t figure out what the borrow checker was trying to tell you? Maybe you’re just a 10X developer. I feel quite qualified to inform you that for we mere mortals, Rust can very fairly be described as a relatively hard language.
Rust has completely unique paradigms not expressed in any other language! Things that no one coming to Rust has prior experience with. If you cannot admit that makes it harder than some random language that just fucks with syntax, …dude
You’re right that the first steps with Rust can be trying, but I do think it gets overinflated.
Of all the languages I have both learned to use and deployed something useful to production in, Rust is somewhere in the middle of the “initial difficulty” curve. Harder than Ruby, Python, Perl, C, etc… easier than Erlang, Elixir, Clojure, Haskell, etc.
Rust’s borrow checker is both its best and worst feature; virtually every complaint I have heard about how hard Rust is was about fighting the borrow checker, but the borrow checker has also saved me from some really stupid mistakes and all of the time involved in finding and fixing them. The juice is totally worth the squeeze.
Now if you really hate yourself spend some time learning Prolog. I promise you that Rust will seem a lot more dev friendly afterwards.
I’m surprised you put C in there. Its limited vocabulary does mean you don’t have to deal with e.g. C++'s 50 million ways to do something, but this combined with a lack of guardrails makes it agonizingly difficult to do a lot of basic things – most notoriously dealing with strings.
I actually consider C a good beginner language, but only in the sense that 1) it does have that simple toolkit, 2) it and its descendants are widely used, and most importantly 3) the bullshit C makes you deal with gives you a better understanding of what higher-level languages do for you automatically and why. To me, it’s probably the hardest mainstream language to learn after maybe something like x86 or ARM assembly (which, for better or worse, hit points 1 and 3 even harder than C).
I generally agree though that Rust has always been somewhere in the middle for me.
This is the most fediverse thread I’ve seen in years
While I agree with the general sentiment, scripting languages are perfectly fine to use for server software. Would you call hackernews slow? Its been running on lisp (originally Arc, now common lisp) for its entire existence. Another fun example of popular interpreter is, y’know, the JVM.
Common Lisp could be compiled, so not the best example.
Lua is a way better example, since Lua scripts often finish in the time it takes Python to get going at all. And that’s with interpreted Lua, without JIT. I once straight up had to recheck if I left the dummy static output in there instead of calling my script, because the result was appearing instantly.
There’s also Fennel, a Lisp compiled to Lua on the fly. Since Lua is so snappy, the compilation overhead is unnoticeable.
Performance is an attractive metric because it’s something you can put a number on. It’s measurable, so comparisons are easy.
But there are so many other metrics that are more important.
Still, https://leafo.net/lapis/ looks like something I’d like to try sometime. I don’t know anything about the Lua web framework ecosystem, that’s just the first search result I found. Do you have any recommendations?
I’m more familiar with Lua for desktop scripting — I’m using it whenever I can, if it’s something that’s more than like three lines in Bash and the Lua libraries aren’t too bad. I’m even using it on the phone when dragging around blocks in Automate becomes too much (its minuscule footprint comes handy there). There’s also the excellent automation app Hammerspoon for Mac, which uses Lua for its scripting.
I’ve been vaguely looking now and then into using it for web in the manner of node.js, with asynchrony being handled on the Lua side — but was offput by the fact that many popular Luarocks libraries presumed synchronous workings, and async requires installing different libs if they even exist. Node has it better since the libs were developed to be async from the start. Iirc Luvit is what I was looking at, there are both libs and some kinda frameworks for it.
OpenResty and frameworks for it like Lapis could be the better way to go. Nginx is pretty much mandatory anyway, and afaiu synchronous libs can be used then, leaving it to Nginx to chuck requests into multiple Lua threads. A drawback is that LuaJIT, used in Resty, still supports only Lua 5.1 features, which is pretty damn old.
I haven’t looked into Lua for web in a few years, but since apparently nothing like Hammerspoon with its built-in http server exists for Linux, I’ll need to pick it up again, just to do some custom remote control from the phone.
Coming from a Python and Java background Rust is way harder to learn. Don’t get me wrong, i like Rust, but it feels way harder. But i agree that its great for large projects and performance-wise!
I found this essay a great read on that point: https://vorner.github.io/difficult.html
I think for a large project Rust should be easier to manage in the long run.
Well, you’ve got another think coming.
Strong disagree.
I’m all ears on matters of personal preference and why people do and don’t like languages, but I’ve been maintaining code bases for about 25 years now and I’ll draw my line in the sand here: Rust is a maintenance programmers dream. Strongly typed, easily tested, easily documented, and a borrow checker to gate out the really hard to triage stuff. It has all the tools that I know make my life easier on projects that live for 10+ years.
It may not be your cup of tea and that’s fine, but it’s silly to pretend it doesn’t have the strengths that it does.
It’s not popular if you rate it by actual usage, which is probably more meaningful than it seeming kind of cool.
if you rate it by actual usage, which is probably more meaningful
I can see those goalposts move right before my eyes!
I have no dog in this fight - flame away - but I’m offended by the sparkle-junkies calling [arbitrary non-rust language] old on a daily basis and somehow deciding some arbitrary measure of popular+shiny is a replacement for ‘good’ in some bizarre idiocratic glorification of naïveté .
I like the way you phrase things there, pal. 👌
& widely used
59%(edit: 58% apparently) vs. 15% but who’s counting, right?

-
it’s less about the language than the choice to be welcome to contributors - especially older people who have more free time to devote to unpaid volunteer development, rather than younger people who know Rust but are already working 2-3 jobs
-
more to the point it’s meant in fun :-P
If it’s Python, that’s 58%. SQL is 59% and I would be pretty surprised if piefed is pure SQL
it’s less about the language than the choice to be welcome to contributors - especially older people who have more free time to devote to unpaid volunteer development, rather than younger people who know Rust but are already working 2-3 jobs
This reasoning is really bizarre, btw. Never once heard of someone choosing software because it appealed to older developers.
I’m an older developer. Rust seems so much more interesting to me than yet another python service. Oh boy is it Django??
I wonder if there are loads of devs helping out with lemmy, I sincerely have no idea, I just know the mains are paid for what I have understood.
Piefed is flask + python. Its very easy to read in my opinion. Very boring code. I knew nothing about it but threw a PR in there just for fun.
Django is my goto for personal projects too. And at work we use fastapi. They all kinda blend together now in 2025/26.
Personally I stopped caring about languages a decade into my career. As long as its boring and standard-ish, I’m happy. If it takes me a ton of time getting every dependency under the sun, the project is unstable/constantly breaking, and/or requires me a degree to even look at it, then im not going to contribute.
Lemmy is harder to read as a project than piefed. But both are good. Its not a “vs” we should just let both communities do their thing and be happy someone on their weekends wants to support our sorry asses.
Certified facts!
A true pragmatist

Rust is a good low level language. I’m not sure if it fits this species task the best.
As others are saying here, the real work lies in the underlying database system rather than the actual back-end. Yes Rust is a good system language, but that didn’t stop Lemmy from having a memory leak, and Python is also good(-ish), at least enough to make it happen. Possibly not as well at larger scales… but with subscribership falling rather than rising across the Threadiverse, that’s not really a major concern at the moment.
Especially compared to features that will attract those new people, and thereby content, if such people did end up coming.
The point of ActivityPub is that this exact conversation doesn’t matter.
I don’t see the point is this dick measuring between piefed and Lemmy, and it is becoming a bit annoying. Don’t we have enough problems as is?
Let’s just agree to hate on reddit like everyone else does lol.
I agree with you.
And it’s mostly just Piefed people spewing this stuff; often about how their “sports team” is “superior”.
Quite sad reallyThat could be explained by Lemmy being the incumbent for this fediverse position. I used to see the same about kbin.
But again imo it doesn’t matter “who started it” and who is supporting who. The more software work with activityPub the better.
Switched from Lemmy to PieFed last year and literally see zero difference between both and have never read this rhetoric anywhere.
Please give us links to name and shame otherwise You are making shit up.
Yeah sure I’m gonna sift through weeks if not months of random post and comment history for some NFT ape clown; LMAO
Edit: also L + ratio
Seems you’re the angry person having to comment on this.
A bit of Christmas banter, some healthy competition, what is not to like IMO?
I’m just trolling back lol >:3
Yeah they just talking smack with no evidence.
There’s not enough Piefed users to begin with. Most people are just happy the services exist.
Comparing network utilization of Lemmy, Kbin and PieFed says that PieFed uses 5x less data (on e.g. a mobile connection) despite showing 5x more posts, i.e. overall a landing page is 25-fold more efficient per post than Lemmy.
I doubt this has anything whatsoever to do with Rust and more about choices as to what data is sent when.
As it should be.
Not who you replied to, but I know that I’ve seen a handful of such posts over the past week. But no, I’m not going to try to find them. Maybe if I see one in the next day or two, I’ll remember this post and add it.
Individuals might push for that or want that to happen, but it only matters what actual developers or instance owners say.
Hey, I have no skin in the game. I’m just a user, not a developer, so whatever people come up with that I use, I’m not going to complain. I find the language zealots kind of funny.
At a certain point implementation does matter
Yeah, but not between Lemmy and PieFed. I don’t get why people try to interact with Lemmy/PieFed using Mastodon for example, it’s just painful.
No it doesn’t - fragmenting ourselves in a fight to be ‘perfect’ is horribly counterproductive when the alternative is simply being … good, dare I say acceptable, but doing it together.
Its because piefed is looking to de-federate from Lemmy as a whole.
I’m not sure what you mean? Piefed had no plans like that.
That’s literally impossible.
that can only be true for one instance, not for an activitypub software as a whole
This crusade you have going on against the idea of Rust is getting borderline obsessive. Like when you called it an ‘incomplete’ language and never explained what that actually means.
Setting aside the mountain of evidence that you are ignoring here (that I might have a life on the week of Christmas, how you are the one following me across multiple posts, how you seem unwilling to do an internet search on your own to satisfy any actual curiosity you might have about why Rust is not a great language for someone to learn), I will clarify: I have zero beef about the existence of that language, it seems a fine one for anyone who wants to use it, have at it, enjoy yourself.
The underlying point of this post though - although its real purpose was an attempt at humor, but PLEASE don’t ask me to explain “humor” to you as well - is to point out not the existence of the language but its choice to use in this software implementation, which leads to its pace of development being far behind that of PieFed. One primary reason for that being that more contributors seem willing to help out, and their time seems to work to greater effect in terms of constantly adding new features to the project.
But you are taking this far more seriously than I meant to.
You’re the one who’s been writing walls of text about this exact thing incessantly for months, sorry I find your ‘humour’ tiresome. And it’s not stalking to remember things I’ve seen you say in the past.
If you block someone they can’t reply to your posts btw.
They can still message you.
Do with this information what you will.
The reason that Lemmy is slow to develop is not because of Rust, but because of Tankie devs who spend more time managing propaganda and enforcing censorship in and out of their respective instances rather than actually developing the damn software.
I’ve heard that about Dessalines, but not Nutomic, yet for whatever reason Lemmy feature requests sit unanswered for multiple YEARS at a time, compared to like weeks to months on PieFed.
People can do whatever they want to. For myself, I prefer more rather than fewer features, and responsive devs to unresponsive ones.
I don’t mind development being a little slower if it means the software is more stable and performant.
Now, that said, I can’t really speak to the fact that Rust is more performant or stable than some other language X, as I don’t know enough to make such statements. 😅
I’m just saying.
That is a good point… although I wonder how relevant it is with the current number of users of Lemmy.
It could become a future issue if Lemmy / PieFed were to ever take off?
Python will make it so loads of people can check out the codebase and tinker with it IMO.
It’s dead simple, so that’s a big plus compared to Rust. Rust has its own benefits, lets see how it all plays out.
Who could say. Not I. 😁
Its actually less about Python (or Rust), but about using well established frameworks (Flask in the case of Piefed), compared to a lot of NIH in the case of Lemmy.
You’ll appreciate Rust the more you use it. Especially if you come from languages that do not have the same luxuries like Rust.
The type system and the safety guarantees that are enforced by the compiler are so pleasant to work with, I actually do not ever want to use any other language.
This is also one of the reasons why many companies are now choosing to use Rust. It is not just because it is new and “shiny”, but because it has real world benefits. Memory safety, for example. The tooling is also superb.
Yes, you will not be able to write at the speed a Python dev will write a project, but the rules and concepts Rust introduces are very worth it.
I think the importance table of Piefed demonstrates this pretty well:
- Performance 4/5
- Scalability 2/5
- Agility 5/5
- Reliability 1/5
- Security 2/5
- Testability 0/5
- Modifiability 5/5
- Affordability 5/5
- Manageability 5/5
https://codeberg.org/rimu/pyfedi/src/branch/main/docs/ARCHITECTURE.md#desired-quality-attributes
You simply cannot have good reliability or security if you prioritize agility over everything. Same goes for scalability
Also why does testability have a priority of 0?
Lol it’s Java vs C++ all over again!
Guess every generation needs a bit of a fight or something?
These are good points. Memory safety for instance.
A lot of the priorities I presume are since PieFed has been new and it wanted to get out there and attract additional contributors. Once it approaches maturity, surely it could switch to e.g. moar reliability at the expense of agility?
(And I would sure hope that the 0 for testability has already been remedied, now that PieFed is no longer just running on a handful of test instances but is fully in production, deployed on many instances in many countries with thousands of accounts - very unlike when PieFed first got its start)
Lemmy already exists, and despite how many people talk trash about its being developed and run by tankies (e.g. on Reddit, where many refuse to join us here for that reason, although tbf that is only one of several, others being “it’s too complex” and “the user base is too toxic and/or focused on politics” and primarily “there’s too little content”), it does offer a fairly nice user experience. Therefore PieFed decided to be different, i.e. to occupy a different niche (with more features at the expense of less reliability). Ngl that can be quite frustrating at times, but also is quite neat to see as well.
Also the PieFed devs are super responsive to feedback - e.g. see this community https://piefed.social/c/piefed_2025 entirely dedicated to asking for populating the 2025 Roadmap (obviously at the end of last year:-). So if the user base wanted to see different prioritizations, I do believe that it would happen?
Once it approaches maturity, surely it could switch to e.g. moar reliability at the expense of agility?
Unfortunately, you can’t just “switch” to more reliability. That’s not how it works. Reliability is affected by the design and implementation of the software. If your software wasn’t reliable in the beginning, you’ll have lots of “fun time” rewriting and even more “fun time” debugging components to try and make it more reliable.
At some point, this is no longer practically viable and the unreliable parts stay as they are. Especially if the unreliability is a design flaw. This is known as “technical debt”:
While an expedited solution can accelerate development in the short term, the resulting low quality may increase future costs if left unresolved.
However, failure to prioritize and address the debt can result in reduced maintainability, increased development costs, and risk to production systems.
https://en.wikipedia.org/wiki/Technical_debt
As for the 0 priority of testability, I found a test directory in the repo: https://codeberg.org/rimu/pyfedi/src/branch/main/tests
Though I haven’t looked at how much the tests cover, there seems to be some sort of testing. So perhaps this importance table is a bit outdated indeed.
although tbf that is only one of several, others being “it’s too complex”
As I explained in my original comment, Rust has a few strict rules and concepts that force a particular discipline (I guess you could also call it style of code). And since it has those safety guarantees, you need to have things like lifetimes and trait bounds and such. These things naturally make the code harder to read and/or complicated. But as I said, they are worth it and will save you many bugs that might occur at runtime (especially ones you do not want to debug at runtime. like concurrency bugs).
Unfortunately, you can’t just “switch” to more reliability.
For sure, I meant moving forward from that point on, but thanks for filling in the blanks.
At worst, if there was a large team of developers who had coded up the entire project in Python, but then certain sections needed to be re-written, let’s even stipulate that it would be in Rust, then it could still be a good thing to have gotten the project off the ground and made such progress, rather than have it be “perfect” but with barely anyone using it? “Don’t let perfect be the enemy of good” and all that? (Which could perhaps be used to justify some whoppers of bad decisions, so yeah, I’ll preemptively say when used judiciously, as in sometimes even if not always).
although tbf that is only one of several, others being “it’s too complex”
For clarity, when people on Reddit say this, I strongly believe that 99(.99?)% of the time they mean the entire concept of using a federated platform, even as an end-user. People, especially non-technical ones, can end up being remarkably… let’s just say “uncurious”, and highly resistant to change.
And yes, for many applications I agree that Rust is, if not fully superior to C++ then at least a better choice for an inexperienced programmer to choose to use. This article was enjoyable for me to read on that topic. But… that doesn’t make all other languages “wrong” choices, especially if dependent upon others for aid. And all the more so several years ago when that decision of language was made. Like, if the developer(s) simply enjoy using the language, then why not make the whole endeavor fun?
Also as others are pointing out, the existence of library support - notably Flask - is an even larger consideration than the language itself. That is, even if Rust were to be considered superior in virtually all other respects, having such a hard start could still be the deciding factor in favor of that vs. having to write everything from scratch?
“… And you can spin up your own with blackjack and hookers!”
My concern about Lemmy is more that it is developed by authoritarian communists than if the programming language it is based on is less popular
Basically my reason for switching to piefed.
What app do you use for it?
I’m in the trenches of moving away from the tankie soft.
That is another reason for fewer features being developed over there…


























