Live data from Hacker News

Russ Cox is stepping down as the Go tech lead

groups.google.com

291–300 of 396 posts

Re: Russ Cox is stepping down as the Go tech lead

#291

Out of interest, why are people so confident in Google when it comes to Go, yet every other day there's articles about how Google can't be trusted in related to Dart/Flutter which are soon to be abandoned?

I don't trust Google.

I trust specs[1], multiple implementations[2], and how easy it is to bootstrap a compiler[3].

[1]: https://go.dev/ref/spec

[2]: https://gcc.gnu.org/onlinedocs/gccgo/ (even if feature parity isn't quite there yet)

[3]: Instead of requiring double-digits compilation steps that each take too long to be reasonable.

Re: Russ Cox is stepping down as the Go tech lead

#292
post #216
post #122

Earlier quoted context omitted.

Wow, that's painful to read. Separating the concept of pointers and nullable types is one of the things that I think go having from the beginning would have made it a much better language. Generics and sum types are a couple of others.

False things programmers believe: All reference types should be able to take a null value. It's impossible to write complex and performant programs without null. It's impossible to write complex and performant programs without pointers. References always hold a memory address in a linear address space. (Not even true in C!) Every type is comparable. Every type is printable. Every type should derive from the same comm…

Without pointers in some form or another, you can’t refer to allocated memory. You can change the name of pointers but they are still pointers.

Re: Russ Cox is stepping down as the Go tech lead

#293
post #283
post #2

Thank you, rsc, for all your work. Development in Go has become much more enjoyable in these 12 years: race detector, standardized error wrapping, modules, generics, toolchain updates, and so on. And while there are still things to be desired (sum types, better enum/range types, immutability, and non-nilness in my personal wishlist), Go is still the most enjoyable ecosystem I've ever developed in.

Don't forget that the semantic change of traditional 3-clause "for" loops: https://go101.org/blog/2024-03-01-for-loop-semantic-changes-... Because of this change, Go 1.22 is actually the first Go version which seriously breaks Go 1 compatibility, even if the Go official doesn't admit the fact.

Are there cases where people actually rely on the previous behavior?

I always assumed that it was considered faulty to do so.

Re: Russ Cox is stepping down as the Go tech lead

#294
post #216
post #122

Earlier quoted context omitted.

Wow, that's painful to read. Separating the concept of pointers and nullable types is one of the things that I think go having from the beginning would have made it a much better language. Generics and sum types are a couple of others.

False things programmers believe: All reference types should be able to take a null value. It's impossible to write complex and performant programs without null. It's impossible to write complex and performant programs without pointers. References always hold a memory address in a linear address space. (Not even true in C!) Every type is comparable. Every type is printable. Every type should derive from the same comm…

> Every type is printable.

It’s 2024, every type is jsonable!

Re: Russ Cox is stepping down as the Go tech lead

#295

Earlier quoted context omitted.

Nomination for RSC's greatest technical contribution: module versioning. Absolutely fundamental to the language ecosystem. https://research.swtch.com/vgo-intro

The interesting thing is - this went pretty much against the community at the time. At the time, the community seemed to have settled on dep - a different, more npm-like way of locking dependencies. rsc said "nope this doesn't work" and made his own, better version. And there was some wailing and gnashing of teeth, but also a lot of rejoicing. That makes me a bit sad that rsc is leaving. On the other hand, I don't re…

[deleted]

Re: Russ Cox is stepping down as the Go tech lead

#296

Earlier quoted context omitted.

"That's why go's toolchain isn't as messed up as npm, yarn, grunt, ..." And let's be honest, Rust toolchain is pretty messed up too. Want to cross-compile with go? Set the GOOS variable and you are done. On Rust you need to curl-sh rustup, switch to nightly, add new targets, add target to your cargo and cross fingers it works this week.

To be fair, with Go it's still painful to work with private repositories. And I'm invoking Cunningham's Law here when I say there's no convenient way to do so. If you want to use a private repository (let's say it's a private GitHub repository), then you either have to do it the bad way (setting up your own GOPROXY and setting it up securely, which implies also ensuring it's not leaking your source code elsewhere for…

1) git config --global url.ssh://git@github.com/.insteadOf https://github.com/

2) export GOPRIVATE='github.com/_company/*'

Re: Russ Cox is stepping down as the Go tech lead

#298
post #2

Thank you, rsc, for all your work. Development in Go has become much more enjoyable in these 12 years: race detector, standardized error wrapping, modules, generics, toolchain updates, and so on. And while there are still things to be desired (sum types, better enum/range types, immutability, and non-nilness in my personal wishlist), Go is still the most enjoyable ecosystem I've ever developed in.

Nomination for RSC's greatest technical contribution: module versioning. Absolutely fundamental to the language ecosystem. https://research.swtch.com/vgo-intro

[deleted]

Re: Russ Cox is stepping down as the Go tech lead

#299
post #283
post #2

Thank you, rsc, for all your work. Development in Go has become much more enjoyable in these 12 years: race detector, standardized error wrapping, modules, generics, toolchain updates, and so on. And while there are still things to be desired (sum types, better enum/range types, immutability, and non-nilness in my personal wishlist), Go is still the most enjoyable ecosystem I've ever developed in.

Don't forget that the semantic change of traditional 3-clause "for" loops: https://go101.org/blog/2024-03-01-for-loop-semantic-changes-... Because of this change, Go 1.22 is actually the first Go version which seriously breaks Go 1 compatibility, even if the Go official doesn't admit the fact.

> since Go 1.22, every freshly-declared loop variable used in a for loop will be instantiated as a distinctive instance at the start of each iteration. In other words, it is per-iteration scoped now. So the values of the i and v loop variables used in the two new created goroutines are 1 2 and 3 4, respectively. (1+2) + (3+4) gives 10.

I think you are assuming more guarantees than are actually guaranteed.

You have a well-documented history of making incorrect claims about Go compiler and runtime behaviors, so this isn't surprising.

> since Go 1.22, you should try to specify a Go language version for every Go source file

What on Earth?? Absolutely 100% not.

Re: Russ Cox is stepping down as the Go tech lead

#300
post #2

Thank you, rsc, for all your work. Development in Go has become much more enjoyable in these 12 years: race detector, standardized error wrapping, modules, generics, toolchain updates, and so on. And while there are still things to be desired (sum types, better enum/range types, immutability, and non-nilness in my personal wishlist), Go is still the most enjoyable ecosystem I've ever developed in.

Nomination for RSC's greatest technical contribution: module versioning. Absolutely fundamental to the language ecosystem. https://research.swtch.com/vgo-intro

Fundamentally broken model of versioning, but I guess nobody really cares.
Post reply on HN