Да, это необходимо.Система времени исполнения Erlang написана на C, а большая часть стандартной библиотеки написана на Erlang.
В чем причина этого?
Какая альтернатива?Чтобы выполнить любой код Erlang, вы должны иметь уже запущенную систему времени выполнения, и поэтому она не может быть написана на Erlang.Он может быть написан на:
Сборка
C
C ++ или на другом языке
Erlang может выполняться без времени выполнения
Сборка, очевидно, является плохим выбором: вам придется почти полностью переписать ее для любого нового процессорацель, и это будет гораздо сложнее поддерживать.
C обеспечивает отличную производительность и портативность, и в любом случае потребуется возможность вызова кода C из Erlang.Это выбор, сделанный не только Erlang, но и Python, Ruby, Perl и т. Д.
C ++ усложняет переносимость (в некоторых ОС доступны компиляторы C, но нет компиляторов C ++; качество компиляторов C ++ варьируетсяБольше);другие языки - даже в большей степени (наряду с производительностью, возможно, требующей их собственной среды выполнения и т. д.).
Последний вариант сделает Erlang совершенно другим языком.