title: What is the difference between as.tibble(), as_data_frame(), and tbl_df()?
body: <p>I remember reading somewhere that <code>as.tibble()</code> is an <em>alias</em> for <code>as_data_frame()</code>, but I don't know what exactly an <em>alias</em> is in programming terminology. Is it similar to a wrapper?</p>
  
  <p>So I guess my question probably comes down to the difference in possible usages between <code>tbl_df()</code> and <code>as_data_frame()</code>: what are the differences between them, if any?</p>
  
  <p>More specifically, given a (non-tibble) data frame <code>df</code>, I often turn it into a tibble by using:</p>
  
  <pre><code>df &lt;- tbl_df(df)
  </code></pre>
  
  <p>Wouldn't </p>
  
  <pre><code>df &lt;- as_data_frame(df)
  </code></pre>
  
  <p>do the same thing? If so, are there other cases where the two functions <code>tbl_df()</code> and <code>as_data_frame()</code> can not be used interchangeably to get the same result?</p>
  
  <p>The <a href="https://www.rdocumentation.org/packages/dplyr/versions/0.5.0/topics/tbl_df" rel="noreferrer">R documentation</a> says that</p>
  
  <blockquote>
    <p><code>tbl_df()</code> forwards the argument to <code>as_data_frame()</code></p>
  </blockquote>
  
  <p>does that mean that <code>tbl_df()</code> is a wrapper or alias for <code>as_data_frame()</code>? R documentation doesn't seem to say anything about <code>as.tibble()</code> and I forgot where I read that it was an alias for <code>as_data_frame()</code>. Also, <a href="https://www.rdocumentation.org/packages/tibble/versions/1.2/topics/as_tibble" rel="noreferrer">apparently</a> <code>as_tibble()</code> is another alias for <code>as_data_frame()</code>.</p>
  
  <p>If these four functions really are all the same function, what is the sense in giving one function four different names? Isn't that more confusing than helpful?</p>