We've been playing around with Go where I work. The concurrency model is great, and the type/object/interface approach is pretty flexible. The language designers also succeeded in eliminating many of the pain points they felt with C/C++/Java: dependency bloat and compilation speed. My workflow with Go has more in common with an interpreted language than anything else.
However, the lack of generics seems like a pretty bad oversight. It's annoying to rewrite common functional operations (e.g. map, reduce) over and over again with slightly different argument types (or sprinkling type casts all over your code).
However, the lack of generics seems like a pretty bad oversight. It's annoying to rewrite common functional operations (e.g. map, reduce) over and over again with slightly different argument types (or sprinkling type casts all over your code).