News for hackers. Stuff that matters.
Re:Eight years of Go by pcwalton on Friday November 10, 2017 @02:14PM (#15672167)
You're still writing separate functions (implementations of sort.Interface) to sort different types.
Re:Eight years of Go by fauigerzigerk on Friday November 10, 2017 @03:20PM (#15672627)
For sorting slices you only have to pass one function:

  sort.Slice(s, func(i, j int) bool { return s[i].X < s[j].X })
Re:Eight years of Go by ori_b on Friday November 10, 2017 @03:04PM (#15672512)
But this is something you often need to do for any non-trivial type, even with generics. There's a reason that C++ std::sort<> takes a comparator, or why Rust requires you to implement the 'Ord' interface.

Again, it's a little clunkier in Go, but not unusably so.

Re:Eight years of Go by pcwalton on Friday November 10, 2017 @03:36PM (#15672760)
You need to define how to order things in other languages (though not in languages where you can automatically derive implementations like Haskell or languages with built-in polymorphic comparison like OCaml) but you don't need to define how to swap elements over and over.
Re:Eight years of Go by ori_b on Friday November 10, 2017 @04:49PM (#15673342)
Yes, I'm aware. That's the clunky part that I was referring to (although, you can still avoid it for slices, and simply pass a single compare function.)

Go is far from my favorite language, but the sheer amount of bad criticism by people that clearly don't use the language annoys me.

Re:Eight years of Go by dualogy on Friday November 10, 2017 @02:19PM (#15672210)
A little boilerplate hasn't killed anyone. If you're talking about "100s of different Enterprise Business Objects (TM) structs", something is probably off in the overall program design and/or code-gen should probably be introduced regardless of the 'sort' (and related typically-generics use-cases) question, as that sounds like something to be largely derived from pre-existing schemas of some sort..
Re:Eight years of Go by pcwalton on Friday November 10, 2017 @02:25PM (#15672246)
> A little boilerplate hasn't killed anyone.

It's annoying, especially since basic generics are simpler than interfaces.

> If you're talking about "100s of different Enterprise Business Objects (TM) structs"

I don't write enterprise software. I sometimes need to sort things.