Interesting. I also really wanted to like go but the language feels so unexpressive and weak when compared to python (interface{} anyone? No operator overloading? Return value as exception?)
I got much happier after trying out rust, proving that new languages don't have to feel awkward and tedious to use.
As someone who has used a multitude of languages ranging from FORTRAN to C/C++/Objective-C to C# to Java to Smalltalk and Python, I do not feel limited in Go with respect to expressiveness. Language design is always a balance between power and simplicity, and I've explored both ends of the spectrum. I'll take the simpler languages (such as Go, Python and Smalltalk) any day. Funnily, I've never used operator overloading and I don't miss it one iota. And there are pros and cons to using exceptions. I like the simplicity of Go's error handling.
Comment
Interesting. I also really wanted to like go but the language feels so unexpressive and weak when compared to python (interface{} anyone? No operator overloading? Return value as exception?)
I got much happier after trying out rust, proving that new languages don't have to feel awkward and tedious to use.
Replies
As someone who has used a multitude of languages ranging from FORTRAN to C/C++/Objective-C to C# to Java to Smalltalk and Python, I do not feel limited in Go with respect to expressiveness. Language design is always a balance between power and simplicity, and I've explored both ends of the spectrum. I'll take the simpler languages (such as Go, Python and Smalltalk) any day. Funnily, I've never used operator overloading and I don't miss it one iota. And there are pros and cons to using exceptions. I like the simplicity of Go's error handling.