Though concurrency gets all the hype, it's implicit interfaces which are the deepest, most useful feature of go for me - making it clear that interfaces are defined at the point of use, not at the point of definition.
Have to agree about the lack of inheritance - it's the best thing about Go is avoiding all that abstraction that people pile on top of simple concepts, leading to logic being spread around lots of different files. You can go a long way with just structs and functions.
I do miss inheritance sometimes - when I first started using go especially I used to try to create my own version of inheritance with Go - it didn't end well.
Though concurrency gets all the hype, it's implicit interfaces which are the deepest, most useful feature of go for me - making it clear that interfaces are defined at the point of use, not at the point of definition.
Have to agree about the lack of inheritance - it's the best thing about Go is avoiding all that abstraction that people pile on top of simple concepts, leading to logic being spread around lots of different files. You can go a long way with just structs and functions.
I do miss inheritance sometimes - when I first started using go especially I used to try to create my own version of inheritance with Go - it didn't end well.