title: What's the point of having pointers in Go?
body: <p>I know that pointers in Go allow mutation of a function's arguments, but wouldn't it have been simpler if they adopted just references (with appropriate const or mutable qualifiers). Now we have pointers and for some built-in types like maps and channels implicit pass by reference.</p>
  
  <p>Am I missing something or are pointers in Go just an unnecessary complication?</p>