7 ms·
> Leaving the Erlang ecosystem (e.g. shelling out) always felt painful - https://hexdocs.pm/rambo/Rambo.html - https://hexdocs.pm/elixir/1.12/Port.html -
by linkdd 5y ago
> Leaving the Erlang ecosystem (e.g. shelling out) always felt painful
- https://hexdocs.pm/rambo/Rambo.html
- https://hexdocs.pm/elixir/1.12/Port.html
- https://github.com/Pyrlang/Pyrlang
- https://github.com/goerlang/node
- https://erlang.org/doc/apps/erl_interface/ei_users_guide.html
- https://erlang.org/doc/tutorial/nif.html
> Integrating with Kubernetes was painful
- https://hexdocs.pm/libcluster/readme.html
- https://hexdocs.pm/k8s/usage.html
> OTP has its own ways of doing everything and they are often counter to general best practices (e.g. doing hot releases instead of rolling new containers)
Now this is opinionated. Hot releases are used mostly if you want to upgrade your drone's software while it's flying. Surely you don't want it to crash?
Or if you're a telecom company (like the creator of Erlang), you don't want an upgrade to kill the on-going communications. Same for a MMO, you don't want an upgrade to disconnect your players.
Docker/Kubernetes is not "general best practices". It's only one way out of many. And if you don't need the use cases above, you can put your application in a Docker container and restart it for upgrades, this is how 90% of Elixir/Phoenix webapps are deployed.
> One of the neat things about OTP is that you can migrate processes between nodes that are connected in a mesh network. The documentation is really light on how to do this.
- https://hexdocs.pm/horde/
- https://hexdocs.pm/highlander/Highlander.html#content
- https://github.com/ringling/distro
> The only language that comes close to Elixir for me is Rust
How? They solve completely different problems. Could you explain?
- jb3689 5y agoMy time with Elixir is pretty stale at this point (5-6 years ago; haven't touched it much in the past 4) so I'm glad to see there are better solutions today > How? They solve completely different problems. Could you explain? I don't disagree. The main crossover for me has been in productivity/expressiveness/safety. Can I easily write the programs I want to write with it or am I fighting the language and tooling constantly? Do I have high confidence in the correctness of my solution? Does the solution feel easy to maintain and extend? I haven't done enough with Rust to comment on how it fairs for larger projects, but my experiences with it for smaller problems has been very positive