I can not write a function dealing with arbitrary values.
Somethind I’d do in Java with
public static <T extends IIncrementable> T increment(T val) { val.increment(); return val; }
is impossible to do in Go.You can not abstract over types, and write metric fucktons of duplicated code. I’ve tried porting some of my Java code, and it quickly grew to some classes being duplicated hundreds of times, once for every type. Fixing bugs became a nightmare.