Elixir inherits a lot of concepts from Erlang/OTP, and the application's behaviour is one of those concepts. For the Erlang VM, an application is a component that can be started and stopped as a single unit, and is described by an .app file (for example, hello_world.app) that defines, among other things, the Application Module Callback. This is a module that needs to implement a start/2 function that's responsible for kickstarting the application, usually by spawning its top-level supervisor (in the next chapter, you'll learn all about supervisors). In a way, you can think about the start/2 function as the common main entry point on applications developed with other programming languages.
Because we're using Elixir, we don't need to explicitly specify the .app file. The Elixir compiler...