In a data science context, the key operations are math, so overloading makes a lot of sense and is massively helpful in implementing algorithms and equations. I go back and forth on the wisdom of some of the other common uses — filtering, etc. In addition to the problems that have been mentioned, there are often hidden and infrequent but painful performance issues.
Re:Go+: Go designed for data science
by marcus_holmes on Saturday March 27, 2021 @06:01PM
(#26606011)
I often think that maths could use the same slap around the chops. Less arcane operators and symbols, more explicit function names please!
I consider it kind of important that the notation for expressions like “A²” doesn’t depend on whether A is an integer, real number, complex number, matrix, random variable, etc., (even if the results do) or what the specific domain is, but if you feel like it’s important to embed all of that context in the exponent operator... give it a try :)
(And whether “2” is integer, real, rational, complex, etc)
Re:Go+: Go designed for data science
by marcus_holmes on Saturday March 27, 2021 @09:00PM
(#26607123)
Yeah, but operator overloading doesn't say any of that. You have no idea what the "^" operator does, depending on the operands
Re:Go+: Go designed for data science
by FridgeSeal on Saturday March 27, 2021 @08:22PM
(#26606928)
Ehhh, it would seem that way, but the compactness of the syntax functions to get out of the way and help you understand the overall structure. Having longer function names ends up getting in your way more often than not in my experience.
But I always think that maybe we should be using new operators for this, instead of overloading existing ones that have other, different, meanings in different contexts.