title: Why convenience keyword is even needed in Swift?
body: <p>Since Swift supports method and initializer overloading, you can put multiple <code>init</code> alongside each other and use whichever you deem convenient:</p>
  
  <pre><code>class Person {
      var name:String
  
      init(name: String) {
          self.name = name
      }
  
      init() {
          self.name = "John"
      }
  }
  </code></pre>
  
  <p>So why would <code>convenience</code> keyword even exist? What makes the following substantially better?</p>
  
  <pre><code>class Person {
      var name:String
  
      init(name: String) {
          self.name = name
      }
  
      convenience init() {
          self.init(name: "John")
      }
  }
  </code></pre>