Elixir noob here. I am contemplating climbing the Elixir learning curve to gain some security of an existing product and would like to entertain this discussion to decide if I should bother with Elixir or attempt some other platform or do nothing at all. From my brief dip into the water, I’ve learned that Elixir-based software can be distributed as a beam that does not contain debug symbols. Stop me here if I have that all wrong.
Background: I already have a NodeJS+Express+Socket.IO app that serves as a cloud-based, for-profit service. I am considering Elixir as a complete port of the codebase to a still for-profit system that allows self-hosting. In the absence of this port, I would be distributing a minified JS bundle, probably from webpack.
For the basis of comparison of Elixir to JS in this respect, I’d like to use a classic compiled language, such as C as a benchmark.
On a scale of 1-10, where 1 is the system distributed as C source code and makefiles, and 10 is the system distributed in binary but runnable form of the C source code, place both the minified NodeJS and the distributed Elixir beam on that scale with respect to the following two scenarios. I hope that makes sense.
Scenario 1) Defeating the system’s monetization efforts. An analog would be to hack the MS Windows distribution to defeat it’s license enforcement so I could enjoy free Windows for life (sic).
Scenario 2) Completely lifting the IP, rebranding it, and selling it as one’s own. An analog would be to hack the MS Windows distribution, reverse engineer it, rebuild it as my own OS, and either selling it or giving it away to all.
I am aware of the issue that observable network traffic poses. Please answer on the merits of the hackability of the distributed files, not the hackability of the overall system. My intent of this post is to gauge risk/reward of a port of a working system from JS to Elixir.