News for hackers. Stuff that matters.
Re:Faster Sorting with Go Generics by mirceal on Saturday April 02, 2022 @04:19PM (#30891338)
if err != nil { return nil, err }

code poetry right there. it's so good that you have to repeat this over and over again!

Re:Faster Sorting with Go Generics by socialdemocrat on Saturday April 02, 2022 @08:15PM (#30892889)
It sucks a bit, but I find the tradeoff quite good. The Go folks have managed to make a language which is quite low level and with a small fairly transparent feature set which still manages to produce code which is not too verbose.

Java and C# for instance despite being much higher level languages tend to require far more verbose code.

I have played with some crypto code and concurrency in all languages to compare and was pleasantly surprised by how much more compact Go code ended up being while also being easy to read and using fairly simple constructs.

You can often get smaller Java and C# code but at the expense of using far more complex and abstract concepts.

There is a sense of good balanced taste in how Go featured and libraries are made which often lacks in many other languages.

Re:Faster Sorting with Go Generics by mirceal on Sunday April 03, 2022 @12:44AM (#30894529)
i think go (as any other language) shines in some use cases, is meh in some use cases and straight-up sucks in others. the problem i'm seeing is the cargo cult where basically go is the ultimate answer and everything has to be rewritten in it.
Re:Faster Sorting with Go Generics by doctor_eval on Saturday April 02, 2022 @09:47PM (#30893474)
Yeah, the fact that I can write a production capable JSON API server in about 5 lines of code with no external dependencies is golden. Compile and start times are tiny. Native executables are brilliant. The ergonomics of Go go well beyond just LOC.
Re:Faster Sorting with Go Generics by esprehn on Saturday April 02, 2022 @07:46PM (#30892715)
To be fair in rust you get to write .into() or Ok a lot.

I do find Go's error handling annoying but rust seems similar for line noise. It's more compact noise, but it's all there.

Re:Faster Sorting with Go Generics by maleldil on Saturday April 02, 2022 @09:42PM (#30893422)
Those are for the cases where you're creating or transforming an error. In those scenarios, Go's handling isn't that bad.

The issue is having to write `if err != nil { return nil, err }` versus `func()?`. The former gets old really fast.

Not to mention the other benefits of monadic error handling when compared to glorified error codes.

Re:Faster Sorting with Go Generics by mcronce on Sunday April 03, 2022 @01:24AM (#30894689)
Even transforming an error is taken care of by ?

func()? desugars to (more or less)

    match func() {
        Ok(v) => v,
        Err(e) => return Err(e.into())
    }
I'm also not really sure what the complaint is. Go doesn't do any more implicit type conversion than Rust does. There are numerous solid arguments for Go over Rust, but error handling and automatic type punning aren't on the list.
Re:Faster Sorting with Go Generics by avgcorrection on Saturday April 02, 2022 @08:48PM (#30893117)
> To be fair in rust you get to write .into() or Ok a lot.

Sure. If “fair” means “not comparable at all”.

if-condition-return using two variables is not comparable to one function/macro call.

Re:Faster Sorting with Go Generics by burnished on Saturday April 02, 2022 @10:06PM (#30893633)
yeah errors appear to be a wart