3 ms·
Erlang, which Elixir compiles to, is literally built for low latency. It prioritizes latency while almost every other language prioritizes throughput.
by impulser_ 3y ago
Erlang, which Elixir compiles to, is literally built for low latency. It prioritizes latency while almost every other language prioritizes throughput.
- edvinbesic 3y agoIs it fairer to say that Elixir compiles to Erlang or that Erlang & Elixir compile to Beam byte code? Genuine question.
- di4na 3y agoNeither but the former is closer to it.
- swixmix 3y ago"Elixir compiles into BEAM byte code (via Erlang Abstract Format). This means that Elixir code can be called from Erlang and vice versa, without the need to write any bindings. All Elixir modules start with the Elixir. prefix followed by the regular Elixir name." From https://elixir-lang.org/crash-course.html https://elixir-lang.org/crash-course.html "Erlang/Elixir Syntax: A Crash Course"
- di4na 3y agoYes, the Erlang Abstract Format is at least half a dozen IR above the bytecode, and lowering this is done by the erlang compiler.
- vgatherps 3y agoErlang is built for easily achieving fairly low and reliable latencies, with easy distribution/concurrency primitives, and building highly reliable systems. It’s not very good for “make packet in to packet out as fast as possible at the cost of all else”. All of the abstraction layers come at a performance cost and aren’t all useful in the first place for low latency trading systems.
- lawik 3y agoYeah, I think I adressed this in the article and I hope it came across. If latency is the one singular goal the design should be quite different.