title: Default Value vs. Keyword Argument
body: <p>Can someone explain me the difference between using a default value for an argument and using keyword argument?</p>
  
  <p><strong><em>Default Value</em></strong></p>
  
  <pre><code>def test1(var1, var2="2", var3=3)
    puts "#{var1} #{var2} #{var3}"
  end
  
  test1(1)         # =&gt; 1 2 3
  test1(1, "2", 3) # =&gt; 1 2 3
  </code></pre>
  
  <p><strong><em>Keyword Argument</em></strong></p>
  
  <pre><code>def test2(var1, var2: "2", var3: 3)
    puts "#{var1} #{var2} #{var3}"
  end
  
  test2(1)         # =&gt; 1 2 3
  test2(1, "2", 3) # =&gt; 1 2 3
  </code></pre>
  
  <p>I can't see any difference between them but I feel that I'm missing something because I've read that the Keyword Argument was a much-awaited feature for ruby 2.0</p>