Live data from Hacker News

Rob Pike interview

evrone.com

101–110 of 273 posts

Re: Rob Pike interview

#101
post #26

I have huge respect for Rob Pike but there's a bit of revisionist history going on here. Go was originally envisioned as a systems programming language. It was often called "a better C". This exposed Rob Pike's lack of experience in the area (IMHO) because anyone who had done any systems programming at all knew that garbage collection made any systems language a nonstarter. Where Go succeeded was completely unintenti…

"Systems programming" isn't limited to OS kernels. I'd call, say, the Coreutils programs "systems programming." But it'd make perfect sense to implement those (or things like them) in Go†. And that's the niche I see a lot of modern Go software addressing, too: simple new OS-packagable CLI utilities, able to be written with less gotchas than if they were written in C.

† I say this because we already have an alternative to GNU Coreutils for memory-constrained embedded systems, in the form of Busybox. If Coreutils had to "serve two masters"—be both powerful at scale on big multi-core systems, and functional on tiny embedded boxes—then Go would make less sense. (Rust would be pretty good for that, though. See e.g. ripgrep.)

Re: Rob Pike interview

#103
post #43
post #35

Earlier quoted context omitted.

> Go was originally envisioned as a systems programming language. It was often called "a better C". This exposed Rob Pike's lack of experience in the area (IMHO) because anyone who had done any systems programming at all knew that garbage collection made any systems language a nonstarter. Yeah, Rob Pike and Brian Kernighan definitely lacked experience in C and systems programming.

AFAIK Brian Kernighan was never involved with the development of Go. He just likes to try new things and wrote a book about it. Rob Pike is probably most famous for his involvement in Plan9 (prior to this). I honestly don't know what this experience entailed.

> This exposed Rob Pike's lack of experience in the area

You don't write an UNIX derivative with a lack of system programming experience.

Re: Rob Pike interview

#104

Go is the language that made me realize I’m not much of a production quality software engineer. Normally I would be quite happy riffing with ideas in Ruby or Python, and just running my code and iterating trying to figure out what to do. When I tried this in Go, every time I wanted to change the shape of my code to try doing things slightly differently I had to do a lot of work to get the code to compile again. I fee…

I had an initial period where Go felt really difficult, coming from Python. Now I've adapted and I actually feel like refactoring things is easier than it was before coming to Go. Just the fact that arguments and their return values are more strictly defined helps a lot.

Re: Rob Pike interview

#105
post #43

Earlier quoted context omitted.

AFAIK Brian Kernighan was never involved with the development of Go. He just likes to try new things and wrote a book about it. Rob Pike is probably most famous for his involvement in Plan9 (prior to this). I honestly don't know what this experience entailed.

If you didn't know you should have clarified before making such sweeping statements. Who knew writing an OS would count as systems programming experience.

"writing an OS" is a sweeping, unsupported and inaccurate statement. You can be involved in Linux and, say, write the ext4 filesystem or Wifi drivers. Those are pretty low-level. You could also write shell utilities like ls in probably anything where you're just using OS APIs. Is that low-level? I would say not.

Re: Rob Pike interview

#106
post #26

I have huge respect for Rob Pike but there's a bit of revisionist history going on here. Go was originally envisioned as a systems programming language. It was often called "a better C". This exposed Rob Pike's lack of experience in the area (IMHO) because anyone who had done any systems programming at all knew that garbage collection made any systems language a nonstarter. Where Go succeeded was completely unintenti…

> It attracted Python refugees Honest question: other than parallelism and performance, what are the main reasons someone would switch from Python to Go?

I think a major one is simply the easy of deployment - one self serving binary is quite refreshing after dealing with wsgi etc.

I suppose the static analysis is quite cool too...

Re: Rob Pike interview

#107
post #26

I have huge respect for Rob Pike but there's a bit of revisionist history going on here. Go was originally envisioned as a systems programming language. It was often called "a better C". This exposed Rob Pike's lack of experience in the area (IMHO) because anyone who had done any systems programming at all knew that garbage collection made any systems language a nonstarter. Where Go succeeded was completely unintenti…

> It attracted Python refugees Honest question: other than parallelism and performance, what are the main reasons someone would switch from Python to Go?

[deleted]

Re: Rob Pike interview

#108
post #26

I have huge respect for Rob Pike but there's a bit of revisionist history going on here. Go was originally envisioned as a systems programming language. It was often called "a better C". This exposed Rob Pike's lack of experience in the area (IMHO) because anyone who had done any systems programming at all knew that garbage collection made any systems language a nonstarter. Where Go succeeded was completely unintenti…

> It attracted Python refugees Honest question: other than parallelism and performance, what are the main reasons someone would switch from Python to Go?

[deleted]

Re: Rob Pike interview

#109

Through kube and terraform? Are there other major tools?

Jaeger, prometheus, envoy, coredns, etcd, containerd, notary, linkerd, drone.io, helm, linkerd, grafana, traefik, caddy, gitea, rancher, moby/docker etc.

Didn't check others, but envoy I'm 100% sure is in C++

Re: Rob Pike interview

#110
post #26

I have huge respect for Rob Pike but there's a bit of revisionist history going on here. Go was originally envisioned as a systems programming language. It was often called "a better C". This exposed Rob Pike's lack of experience in the area (IMHO) because anyone who had done any systems programming at all knew that garbage collection made any systems language a nonstarter. Where Go succeeded was completely unintenti…

> It attracted Python refugees Honest question: other than parallelism and performance, what are the main reasons someone would switch from Python to Go?

I haven't switched from Python to Go, but I program heavily in both languages and can offer an additional point here:

Go makes it easy to produce binaries for any target platform that execute without requiring a working Go installation.

This ease of packaging makes Go my default language when I'm writing developer tooling - for example, if I know that team-mates are going to have to run tools that I write but I don't want to make assumptions about their development environments.

There is one caveat: This only works well if you avoid platform-specific functionality (e.g. syscall package) and CGO.

Post reply on HN