title: In Scala; should I use the App trait?
body: <p>I've just started learning Scala and many of the tutorials that I'm following are using a combination of different representations for a <code>main</code> method. Aside from the familiar main method; there's also the use of traits <code>App</code> or <code>Application</code>.
  It appears that <code>Application</code> has been deprecated and is not recommended, but I can't find any information that explains much beyond this about each of these ways to define an entry point.</p>
  
  <p>So, I'm wondering if someone could explain to me:</p>
  
  <ul>
  <li>How do the traits <code>App</code> and <code>Application</code> work?</li>
  <li>Why is the trait <code>Application</code> no longer recommended and what does the <code>App</code> trait do that is different?</li>
  <li>Where should I use the traditional main method and when should I use <code>App</code> to start my program? What's the difference between the two approaches?</li>
  </ul>