Things about programming I learned with Go
Minor nitpicks, from someone who really likes Go:<p>&gt;  It is possible to have both dynamic-like syntax and static safety<p>Well, you can learn that one by coding in C#, too. In fact, I have the feeling this is a general trend across several relatively popular languages these days - provide as much as possible of the benefits of dynamic typing while keeping the benefits of static typing.<p>I sometimes think how nice it would be if I could write my code entirely without type declarations and have the compiler or some preprocessor figure out as much of the type information as possible.<p>&gt; It’s better to compose than inherit<p>It depends, really. Personally, I think composition is the simpler solution more often than inheritance, but sometimes it is not.<p>I completely agree about the error handling, though - at first it was very tedious to handle all errors explicitly, but after I while I came to appreciate it. Once I had fallen into the habit of checking for errors without having to think about it too much, detecting errors became much easier, and deciding if I could &quot;deal&quot; with some error or escalate it (possibly to the point of terminating my program) became more straightforward, too.