lemmy is a piece of opinionated foss software that attempts to be an alternative to reddit, coded by a tankie
kbin is a piece of opinionated foss software that attempts to be an alternative to reddit digg, coded by a gun nut and abandoned. mbin is a continuation
piefed is a piece of opinionated foss software that attempts to be an alternative to reddit, coded by a control freak with (formerly) hard-coded questionable moderation
there’s a couple of others like misskey/sharkey. all of them are broken and wonderful. piefed seems to be more feature-rich. by way of miracle, somehow these are interoperable with each other and in more broken way, with mastodon. i heard there lie horrors within lemmy codebase, and updating it is major pain. these all attempt to do slightly different things and so features provided by each are different (kbi/mbin has separate upvote and boost, and who up/downvoted/boosted is always visible to public, all of that is always technically public, but hidden in lemmy)
tyler@programming.dev 18 hours ago
Piefed is also written in python. No clue why you would do that when you know that you’re going to be dealing with a massive amount of network traffic, more so than most server infra. Lemmy already struggles with certain amount of traffic and that’s written in rust.
Takes a special kind of person to write federated software and they all seemingly make really really strange decisions when doing so.
TranquilTurbulence@lemmy.zip 17 hours ago
The idea behind Python is to get the community to contribute. More people know Python than Assembly or Fortran. At some point, running a FOSS project like Piefed becomes a numbers game. Having more developers is useful in the beginning.
If Piefed grows significantly, it might make sense to rewrite the whole thing in a different language, but right now, contributions matter more than efficiency.
tyler@programming.dev 5 hours ago
So you set up a nice strawman with assembly and fortran there (which would never be used for a web server) instead of suggesting a realistic option like C# or the JVM, both of which have much larger communities of people that actually know what they’re doing.
You’d get just as many contributions in Java or Kotlin and the quality would be higher as well.
The decisions at the start of the project have the most influence on the project, more so than anything ever will later down the line.
Munkisquisher@lemmy.nz 16 hours ago
Or you follow the python ethos and when it matters, you profile the code, and rewrite only the modules that need it in a lower level language.
TranquilTurbulence@lemmy.zip 12 hours ago
That would make more sense. Best of the both worlds.
Ziggurat@jlai.lu 8 hours ago
Spoiler alert, it happens too in proprietary software, physical engineering, and as soon as there is a corporate structure and a quality department it’s even worse because you need to explain why you want to spend more money, and document the impact which means do a shit load of paperwork for every change
ragingHungryPanda@piefed.keyboardvagabond.com 12 hours ago
in general I feel the same way about python, but the federation traffic is done with redis queues as a background task and my servers can easily run around 2.5-3k messages per second before spinning up another pod. The rest of the load is, of course, when using the UI, but with most of the load being federation, it’s not that big of a deal when you have a separate container/pod with reasonable resource limits.