Re:Go 1.3 is released
by munificent on Thursday June 19, 2014 @12:40PM
(#7916996)
> Complicating parsers, the grammar, readability
Operator overloading has absolutely no effect on the parser or grammar.
It may harm readability but that's more a question of naming. An operator is just a name. If you use that name to refer to something unexpected, you'll harm readability. If you use it for something intuitive, you'll improve it.
Re:Go 1.3 is released
by gejjaxxita on Thursday June 19, 2014 @11:33AM
(#7916624)
I don't disagree with you. I'm not suggesting that Go designers made the wrong decision with the goals they had. I am jealous that it's less useful to me though.
forgive my ignorance, why is operator overloading particularly useful in scientific computing?
Because it lets your math code look more like math and less like code.
v := Vector{}
v2 := Vector{}
to add the two vectors, currently you have to do something like result := v.Add(v2)
rather than the nicer result := v + v2
In the small scale, it doesn't seem like a big deal. In a large and complicated scientific program, it can make the code a lot harder to read.Note: I think it is good that Go does not have operator overloading, though I think it's a shame that means it's not as good for scientific & math programming.
Re:Go 1.3 is released
by aaronblohowiak on Thursday June 19, 2014 @12:17PM
(#7916861)
So your code can still look like math when the operands are complex types.
1. String concatenation (Go has it) 2. Matrix/vector operations
That's it. Any other use case for operator overloading is dubious at best. It sucks for scientific programmers, but Go is a general purpose language, not a Scientific Programming language.
Complicating parsers, the grammar, readability, all those things, just to please your sub-group -> no thanks.