
"In any moment of decision, the best thing you can do is the right thing, the next best thing is the wrong thing, and the worst thing you can do is nothing." – Theodore Roosevelt
Some decisions have a lasting impact. Others are easily reversible. When faced with easily reversible decisions, make them quick! When not so simple to change, go slow, consider the impact of having to change them.
The PoC so far has been all JavaScript, Electron has matured and by sticking to vanilla JS, I've dodged a few bullets as far as dependencies go. However, I have a few challenges with JavaScript that I'm not sure will be easily overcome. The plugins / plugin system, while still simple, suffices but its not a full or 'proper' system yet. Licensing and Anti-Piracy is more of a challenge due to the scripting language (vs. a compiled language), and there are a few options here. Lastly, but not a small thing, I get a 'yuck' feeling when coding JavaScript compared to other languages, especially compared to things like Elixir.
I've been playing around with Elixir for about 9 months now, the last few more dedicated to really understanding the underlying Erlang language and OTP. I really like it. Recently (about a month ago), I stumbled across the Elixir Desktop project. Phoenix/LiveView in a desktop application? Hmmmmmm... Compiled code, the BEAM, Functional Programming, in a desktop application ... The distributed and concurrent nature of Elixir is wasted (for now) in this, but I don't know where this product will end up, so is it a bad thing to have the option to support some concurrency if I ever need it?
I may just need to build out a second PoC in Elixir Desktop to see where it takes me. I'm unsure but have a pretty good feeling that it's possible to have a more robust plugin system in Elixir than JS will allow for and the licensing concerns may be simpler in Elixir (I'm unsure).
Wish me luck!