Re:"14 Years of Go" by Rob Pike
by ogogmad on Tuesday February 27, 2024 @01:18PM
(#39527472)
The world seems like it's moving to ML. That needs matrices, complex numbers, autodiff, different fixed/floating point types. All four of these need operator overloading.
[ Parent
| on HN ]
Could you explain _why_ they need overloads and functions don't work? That does not immediately follow for me.
Autodiff requires interpreting the same piece of code using "dual numbers" that would normally expect "real numbers". This needs operator overloading combined with generics.
Your last sentence seems fishy to me. Are you suggesting that support for C++ like operator overloading is a necessary condition for, say, autodiff? I thought Go is a Turing complete language.
Operator overloading is about syntax and type safety. Brainfuck is Turing complete.
I agree it is about syntax. But how is it about type safety?
You might want the same piece of code to work correctly under different numerical types. Answer: Op overloading + generics.
E.g. Dual numbers for autodiff; 2x2 matrices of quaternions for texture mapping; matrices of differing floating point types for machine learning. Why should I implement the same matrix operations a million times over?