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
Lemmy is so heave that @[email protected] replaced his lemmy instance with a piefed instance and it’s using less resources. I like Rust, but like every tool, it has to be used properly.
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 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.
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.
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.
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.
Which paradigm do you even refer to? Lifetimes? A C++ developer who cannot understand lifetimes (at least conceptually) in a day is a terrible developer.
I would know, I work with such people.
To answer your first question, I’ve definitely spent days of my life trying to fix c++ templates because the compiler won’t fucking tell me what’s actually wrong. It loves telling me some unrelated copy constructor is deleted though… And all of that is actually worse with new stuff like ranges. Which are great on paper, but are a maintainability nightmare.
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.
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.
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 a big fan of lapis. It’s built on openresty, a fork of nginx that embeds luajit into it. This means you can make use of all the features nginx has in your application. It’s really fast in my experience.
There isn’t really much of an ecosystem around lua, lapis is really the only “proper” framework. There is stuff like redbean and mako which are cool, but not as complete/friendly to use as lapis imo.
Luarocks can be a bit of a pain as well (make sure to install packages for lua 5.1).
Lapis is made by the same person who made itch.io too, which i think it cool.
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!
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é .
the comment you’re replying to is saying python, the old less shiny language, is more well known and more widely used by a larger number of developers than rust, the original stinger of the meme. that’s not the goalposts moving. that’s the goalposts being planted firmly at the 100 yard line like how they are in Canadian football
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
I mean, everyone writes one-off python scripts here and there, so the number is obviously very inflated (look at the powershell/bash numbers for example)
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??
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.
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.
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.
Is that the one I keep seeing kneehigh sock memes about?
For rust you need leather socks.
leather kneehighs?
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.
Way more people work with python, productively is arguable
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
Lemmy is so heave that @[email protected] replaced his lemmy instance with a piefed instance and it’s using less resources. I like Rust, but like every tool, it has to be used properly.
Is the project called PyFed?
Python and bootstrap. Honestly, piefed feels like someone’s final cs50 project - which is why I’m hesitant to jump.
bootstrap 🤢🤮
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!
Why would it be a better fit?
Resource efficiency is important for self hosted software. That’s one reason matrix is a pita to self host, for example.
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.
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.)
This is the most fediverse thread I’ve seen in years
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.
Which paradigm do you even refer to? Lifetimes? A C++ developer who cannot understand lifetimes (at least conceptually) in a day is a terrible developer.
I would know, I work with such people.
To answer your first question, I’ve definitely spent days of my life trying to fix c++ templates because the compiler won’t fucking tell me what’s actually wrong. It loves telling me some unrelated copy constructor is deleted though… And all of that is actually worse with new stuff like ranges. Which are great on paper, but are a maintainability nightmare.
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.
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.
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 a big fan of lapis. It’s built on openresty, a fork of nginx that embeds luajit into it. This means you can make use of all the features nginx has in your application. It’s really fast in my experience.
I have a medium-ish project written in lapis here: https://codeberg.org/irelephant/kittygram
There isn’t really much of an ecosystem around lua, lapis is really the only “proper” framework. There is stuff like redbean and mako which are cool, but not as complete/friendly to use as lapis imo.
Luarocks can be a bit of a pain as well (make sure to install packages for lua 5.1).
Lapis is made by the same person who made itch.io too, which i think it cool.
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
The author makes some good points, interesting read. Thanks for the link.
It’s not popular if you rate it by actual usage, which is probably more meaningful than it seeming kind of cool.
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é .
the comment you’re replying to is saying python, the old less shiny language, is more well known and more widely used by a larger number of developers than rust, the original stinger of the meme. that’s not the goalposts moving. that’s the goalposts being planted firmly at the 100 yard line like how they are in Canadian football
I like the way you phrase things there, pal. 👌
59%(edit: 58% apparently) vs. 15% but who’s counting, right?- source, for 2025
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
I mean, everyone writes one-off python scripts here and there, so the number is obviously very inflated (look at the powershell/bash numbers for example)
If that helps prepare them to contribute to PieFed, while not knowing Rust would be an impediment, then that’s a good thing, in this case?
If it’s Python, that’s 58%. SQL is 59% and I would be pretty surprised if piefed is pure SQL
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.
A true pragmatist
Certified facts!
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.