Skip to main content


Actually, I will take C or C++ hands down over Elixir or ANY interpreted language when it comes to performance.
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.
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)