You can use a BEAM system to orchestrate other code, too. As ports, port drivers, nifs, c-nodes, just other OS processes spawned and using IPC/sockets. Lots of options. Using Erlang to supervise an OS process doing work perhaps enhances the isolation principles of BEAM.
oh interesting wasnt really aware
so you could use beam to orchestrate go or rust services communicating over IPC? Nice
See also CloudI a Cloud System built using Erlang - https://cloudi.org/index.html
TY! Very interesting!
To add to that, the BEAM has binaries as a data type so when you're talking to a foreign program you can quickly prototype or design binary protocols once you get tired of parsing/encoding JSON or XML or something at the edges. Depending on the facilities of the foreign language it might be more or less feasible, of course.
The binary interface makes interop easier with other langauges. A note of incompatibility in versions after OTP-24 with those before.