&gt; The compiler does a whole load of checking which can (and therefore should) be automated, which in many other languages is left to the developer. Go code tends to have the property that if it compiles, it probably works as designed.<p>As someone who works with Go daily, these statements are both very untrue. Claiming &quot;if it compiles it works&quot; applies to Go code makes my eye twitchy.<p>For instance, type assertions have no exhaustivity checker. Interface{} and liberal usage of it throws type safety out the window.<p>&gt; the package management is lovely,<p>Go doesn&#x27;t have package management per SE, just vendoring.