| > Object-Oriented programming doesn't have a place in our hearts, Go is object oriented. > I hate to say it, but I just don't trust Microsoft. But you trust Google? well known for discontinuing products or abandoning them ( GWT?,... ) > It's a statically typed language that treats functions as first class citizens Without some form of generics/type classes you can't fully take advantage of Go first class functions to do classical functional programming. > It's not object oriented it's completely object oriented, it has methods on values,composition through struct embedding and implicit interfaces for polymorphism. It ticks every box of a OO language. > is easy to deploy (compiled & doesn't depend on a runtime like JVM or .NET core) Go actually has its own runtime, it's just included in the binary resulting from the compilation. > doesn't have exceptions (yay) Go has panics which are exceptions. I personally find Go useful but don't like the limitations of the language. And they are showing already with more and more untyped API ( context.Values(interface{})interface{} ). Go relies way to much on runtime behavior like type assertions for a so called statically typed language. Go basically asks the developer to do the compiler's job. Because the compiler doing its job would make it slow (?!?). So you find yourself doing a lot of copy paste, writing your own parsers, code generators and manifests to use go gen, use tricks that make code ugly, or just say "fuck" to types and use "interface {}" when you are tired of all that. .net core isn't ready for production, but when it does it will support both F# and C# + a vast ecosystem of libraries useful for web development, gaming (unity), mobile and desktop apps (Xamarin GUI libs ...), while Go users will be stuck with that poor type system writing extremely verbose code because they believe that generic programming is bad. |