That is what he wants you to believe but the real reason is that the language #Mastodon is written in, Ruby on Rails, works fine on smaller instances, but doesn't scale well for large instances so there is a drop off in performance the larger the user population becomes.
Ruby makes it easy to program for beginners, but just like #Python it wasn't designed with concurrency and performance in mind. It grew popular because its expressive power coupled with DRY conventions made it a very quick way to develop web software so long as you could throw more and more hardware at it and restart the server processes before they went south.
People who have switched from #Ruby to #Elixir (#Rebased & #Pleroma are like Mastodon but written in Elixir) just see incredible improvements of their hardware usage just drop right through the floor, and yes, Elixir is the best software language for high concurrency applications, until some high CPU operations need to be processed in another new programming language, better known as #Rust.
@admin@curtis@lain@alex To be fair one could blame an uptick in users for the slow performance, if the software doesn't scale, you need both ingredients to make the soup
Erlang VM is written in C. It has a concept of a lightweight "process" that can share memory with other processes. It spins up a real OS process for each core on your machine, then a scheduler let's you run thousands of async Erlang "processes" while managing who gets access to the CPU. In web frameworks like Phoenix, each HTTP connection is a process. So you can serve thousands of users at once with tne default configuration. You could go ahead a write a system like that from scratch in C, but you'd be wasting a lot of time.
@alex@nanook@lain@admin As much as some of these parts are correct: Not only are a lot of Pleroma's performance hits targeted directly at PostgreSQL, but Phoenix's async abuse and still moderately sized parsing engine. Not to mention, Pleroma is a _fuck_ ton of repositories slapped on. Perl is written in C, but that sure doesn't mean it's a fast language. Erlang *VM* is, after all, a virtual machine language, mean the source is compiled at byte time like it's done with Java, and while that has decent performance, you still can get some additional speed boosts.
I do agree, C is a bit overkill, considering I already thought treebird was annoying for that, but I started Wormhole in C++ because there are some nice things that come out of native software, some advantages that come out of using C++, such as being able to serve easily as a distributable binary (that could come with distro's or in OS repos) with things like easy runtime modules, all without even a hit of performance. There's always memory usage, which isn't exactly in the best state with Pleroma (or, "could be much lighter", i should rather say)