Then you get into the real world where you work with classes named “AbstractFactoryFucker” that implements an interface “ThingsIterator” that has no code yet is an Abstract class to “HolyGoddlyClass”. And this six levels deep. None of these objects are actual objects you can relate to or intuitively understand by their name, so instead you have to keep a mental model of the entire thing in your head.
We’ve also seen an improvement in code clarity. We’re converting our notifications system from Java to Elixir. The Java version used an Actor system and weighed in at around 10,000 lines of code. The new Elixir system has shrunk this to around 1000 lines. The Elixir based system is also faster and more consistent than the Java one and runs on half the number of servers.