I have written and maintained a piece of testing/control software. It was originally horrible “old” spaghetti Labview. I maintained it for a while then wrote a replacement with Labview’s actor framework. I agree that the AF seems to be the only reasonable way to write certain kinds of larger application. However, the actor framework was, for me, just barely good enough to be usable.
- The debugging story is very bad: There were community efforts to write some tools to help, but they amounted to downloading software from a forum post.
- Development is incredibly tedious: Creating a new actor, or message, or (god forbid) implementation of an abstract message. They all take SO many clicks across lots of files in a slow IDE. Tedious and error prone.
- Distributing actors across nodes is not supported by the framework.
- There is no concept of supervision trees, so if you want “let it crash” robustness, you’ll be writing that yourself
I wish it were different, because at its heart I kind of love the idea of a strongly-typed dataflow language.
Edit: I want to point out that despite how personally ugly I found the experience, I’m not sure there was a better choice. I would love to have used Elixir, but what (non-software) engineering company can hire for that?