Elixir despite being a compiled language, it somehow behaves like an interpreted language. For instance
Usually you would not put an
System.get_env call as a module attribute since it is evaluated at compile time and usually you are looking to have these things configured at run-time.
Compile vs Runtime evaluation can results in issues in different production environments, at times what you really want is for example an environment variable to be evaluated at runtime, instead of at compile-time or the other way around.
For more information on this topic you can checkout the following amazing posts: