11 ms·
> They have completely different semantics, performance characteristics Many times it is the different semantics that allow for better performance. If you can
by jimbokun 5y ago
> They have completely different semantics, performance characteristics
Many times it is the different semantics that allow for better performance.
If you can add new methods or change their implementation at runtime, performance optimizations get a lot trickier, for example.
The immutability that's foundational to Elixir and Erlang enable the incredible scaling capabilities of the Erlang VM.
- pmarreck 5y ago> The immutability that's foundational to Elixir and Erlang enable the incredible scaling capabilities of the Erlang VM This. If you want at least one order of magnitude of scaling to come "for free" (note: further orders of magnitude may still cost you), the BEAM VM will hook you up thanks to this fundamental design decision
- chrisseaton 5y ago> If you can add new methods or change their implementation at runtime, performance optimizations get a lot trickier This particular example is a non-issue though - it's completely solved through dynamic deoptimisation (as in the machine code with and without method redefinition is exactly the same.)