Live data from Hacker News

Russ Cox is stepping down as the Go tech lead

groups.google.com

241–250 of 396 posts

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

#241
post #19

Earlier quoted context omitted.

What are some things that make it well managed?

The reluctancy to introduce new syntax too quickly (looking at you, TC39 and Babel) makes go an almost maintenance free language. If you learned idiomatic go, you can maintain and patch other libraries in the ecosystem very quickly. Unified codestyle, unified paradigms, unified toolchain. It's a language with harsh opinions on everything. If you manage to get over your own opinions, you'll realize that any opinion up…

Well, if you compare against the absolute bottom of the barrel, it's not too hard to look good.

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

#242
post #216

Earlier quoted context omitted.

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…

> It's impossible to write complex and performant programs without null. Well, clearly there is a need for a special value that is not part of the set of legal values. Things like std::optional etc. are of course less performant. If I can dream, all of this would be solved by 72-bit CPUs, which would be the same as 64-bit CPUs, but the upper 8 bits can be used for garbage collection tags, sentinel values, option type…

> Well, clearly there is a need for a special value that is not part of the set of legal values.

There's a neat trick available here: If you make zero an illegal value for the pointer itself, you can use zero as your "special value" for the std::optional wrapper, and the performance overhead goes away.

This is exactly what Rust does, and as a result, Option, Option>, etc are guaranteed to have zero overhead: https://doc.rust-lang.org/std/option/index.html#representati...

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

#243
post #23
post #19

Earlier quoted context omitted.

What are some things that make it well managed?

Almost zero drama and almost no feature creep or breaking changes. The team seems to have a focus, and does not change it easily. That is important for a programming language, and it doesn’t happen organically.

> almost zero drama

Hm. Wasn't (the lack of) generics pretty drama filled? Especially the way they fought against it for so long.

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

#244
post #185
post #123

gofmt probably has alone saved so much time across the world (and is upstream from every other language ecosystem basically saying "ok let's just autoformat"). I hate what autoformatters do to my code, but I love not having to talk about spacing anymore.

Interestingly enough, I hate autoformatters (and use spaces instead of tabs) in every other language , but in Go you just get used to the way gofmt formats your code from the beginning, and then start to appreciate that you don't spend as much time on it anymore, so it's not a problem (at least for most people).

I've seen a number of autoformats for other languages be way too obsessive about formatting every little detail and edge case, to the point where it just becomes silly. 100% consistency is a fool's errand, and also contributes very very little Once you deal with some major issues (braces, spacing) you very quickly get diminishing returns.

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

#245
post #220
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.

> Wow, that's painful to read. And the dismissive tone of some people including Ian. But to be fair before Rust there was definitely this widespread myth in the dev hivemind that nullable pointers is just the cost of performance and low level control. What’s fascinating is how easy and hindsight-obvious it was to rid code of them. I’ve never had to use pointers in Rust and I’ve worked on quite advanced stuff.

Nullable pointers are fine for those who need them. What we're asking for is non-nullable pointers.

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

#246
post #217

Earlier quoted context omitted.

That's what he said

In part of the comment yes, kind of, but the comment begins by saying "Iterators definitely have one of the strangest syntaxes I've seen". As there is no syntax specific to iterators in Go, I find this a bit hard to understand.

s/syntax/API/

It's not that hard to understand what OP means.

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

#247
post #101
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.

I’m sure if Go had nullable types and/or sum types from the beginning, it’s have been much more popular

Go has nullable types! We want non-nullable types!

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

#248
post #230
post #101

Earlier quoted context omitted.

I’m sure if Go had nullable types and/or sum types from the beginning, it’s have been much more popular

Perhaps, but other languages that look a lot like Go with these additions (e.g. OCaml) have not gained much popularity, despite getting much more love on forums like HN. It's important to remember that the people expressing strong opinions about sum types on the internet are a tiny and non-representative fraction of working programmers.

OCaml has a huge number of challenges besides "popular language plus sum types"

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

#249

Earlier quoted context omitted.

The reluctancy to introduce new syntax too quickly (looking at you, TC39 and Babel) makes go an almost maintenance free language. If you learned idiomatic go, you can maintain and patch other libraries in the ecosystem very quickly. Unified codestyle, unified paradigms, unified toolchain. It's a language with harsh opinions on everything. If you manage to get over your own opinions, you'll realize that any opinion up…

Clutter death that creeps in any language, as I see it. To this day, only a small subset of JS syntax is used; I cannot recall anyone besides me ever using method chaining like .map .filter, etc. There is a reason why almost every good language is somewhat akin to C to this day, and maybe people started over to get rid of the noise.

> I cannot recall anyone besides me ever using method chaining like .map .filter, etc.

Interesting. That's all anyone on my team ever used once it became available.

But, it highlights the point with Go. Working with Go for just a little while means I can easily read and work with nearly any Go project with a very short ramp up.

Post reply on HN