Live data from Hacker News

Rob Pike interview

evrone.com

191–200 of 273 posts

Re: Rob Pike interview

#191
post #130

> Although it's far from certain, after over a decade of work it looks like a design for parametric polymorphism, what is colloquially but misleadingly called generics... What exactly is misleading about generics? The psychology of thought leaders is fascinating. The term generics is colloquially understood to mean parametric polymorphism and here's Pike redefining the term to draw some distinction that doesn't reall…

You know, Pike was at Bell Labs for a few decades when it was the premiere computer science research place on the planet. It's possible that he has a more technical definition of generics in mind here. (Or he could be being evasive. What's quite unlikely is that he doesn't know the real definition of generics.)

Re: Rob Pike interview

#192

Earlier quoted context omitted.

I shouldn't need an industrial-strength editing engine to efficiently express my ideas. (And don't, if I'm using a nice expressive language.)

Generally speaking, Go is one of the easiest languages to write with a simple text editor. Rust is among the hardest due to its complexity and demanding static analysis. This isn't a bad thing, and tools like rust-analyzer make writing Rust a lot easier. But rust-analyzer is amazing technology from the future; hardly an ordinary text editor plugin.

OK, I'll bite...

The demanding static analysis and clear compiler errors actually make it easier and more robust to write unaided for me. Especially when it comes to refactoring -- it's essentially a process of resolving the compiler errors and you can be pretty confident you've arrived at a correct result.

Source: I write Rust everyday in a plain text editor without syntax highlighting.

Re: Rob Pike interview

#194

Earlier quoted context omitted.

> Go itself is probably the least software engineering friendly language out there My experience with software engineering went from "the language (type system, grammar, syntax, etc) is super important!" to "the language is one of the least important considerations in choosing a language". The more important features are tooling and ecosystem. I don't want to have to learn a new configuration language or imperative D…

> Go is a great language for software engineering Is it though? While tests in go are not terrible, to be a truly effective software engineer (vs just a programmer or dev) you want a very good test and documentation story, and there are languages out there with far, far, better tests and documentation primitives than Go.

Can you name a few? Genuine question. I've only really written a lot of tests in Python and Go, and I really dislike the python tests I've had to write. I don't think it's so much the language itself, but that python is so flexible with the mocking you can do that it enables code that is really tedious to test. With Go you have much more limited ability to mock things, so there are added constraints for code to be testable.

Similarly, with documentation, I really like that the godoc toolchain has resisted all the markup and annotation syntaxes that you see in Java. And I like that Go's convention of using a public URL as the module import path helps enable sites like godoc.org.

I find the language itself slightly more than mediocre. But I really like the toolchain and the restraint of the maintainers.

Re: Rob Pike interview

#195
post #25

Earlier quoted context omitted.

This isn't true at all. Go is not the tool of choice for experienced professional programmers for exactly this reason. The ability to quickly refactor code is very important and Go fails at it horribly for a number of reasons. 1) sheer verbosity. 2) multiple return makes altering function signatures tedious. 3) no generics mean code is written in hard to refactor styles out of the box 4) poor reflection support 5) po…

> Go is not the tool of choice for experienced professional programmers for exactly this reason. that's really funny, because I always thought of Go as the language that programmers who were aging out flocked to because it has 1) google-cred 2) familiar algol syntax 3) close enough to C++ to make a run for it 4) (systems-wise) safe enough to make it worth it 5) hip enough that you don't seem like an aging out program…

I had always thought the same thing about high use by aging out coders. Don't know how representative it is but the just released Go annual survey results seem to show that isn't the case.

Re: Rob Pike interview

#196

Really? Outside Google, I'm not aware of major orgs that use GO. I see the same .net C# stack, python, Ruby...... Java and PHP.

Cloudflare, Cloudstrike, Uber and Dropbox are 4 public companies that I know use Go pretty heavily. And there plenty more startups using Go. In VC-backed startup land, I'm pretty sure Go has higher penetration than C# or PHP.

Here are the 58 open source cloudflare projects written in Go:

https://github.com/cloudflare?q=&type=source&language=go

Compared to the 11 projects they have released in Rust:

https://github.com/cloudflare?q=&type=source&language=rust

Re: Rob Pike interview

#197
post #160
post #22

Earlier quoted context omitted.

I would entreat you to not be afraid of Golang. To be frank its adoption speaks to a desire to make software that does not require (or, often, benefit from "staff SWE" skills). Treat it as what it is, a jumped-up, terser, and in some ways gutted Java, and give it another go. It is designed, to a fault--and this is a little pejorative, I absolutely do not enjoy writing Golang because of it--to be not that hard .

golang is not terser than Java for any non-trivial code bases, it's quite the opposite.

Go is what Java 1.0 could have been, however we are already on Java 14.

Re: Rob Pike interview

#198
post #92
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 was (and is, IMHO) a better Python And in my opinion, it is a better Java. It succeeds in the niche where Java is used today: big softwares, shared by numbers of teams, working on different timezones and in different languages, and with varying degrees of skill. Go is so stubborn it takes the fun out of programming and ironically that's a good thing: when code can't be tied to anything personal, it is much more…

Better Java 1.0, yes.

Better Java 14, definitely not.

Re: Rob Pike interview

#199

Earlier quoted context omitted.

Cloudflare, Cloudstrike, Uber and Dropbox are 4 public companies that I know use Go pretty heavily. And there plenty more startups using Go. In VC-backed startup land, I'm pretty sure Go has higher penetration than C# or PHP.

Here are the 58 open source cloudflare projects written in Go: https://github.com/cloudflare?q=&type=source&language=go Compared to the 11 projects they have released in Rust: https://github.com/cloudflare?q=&type=source&language=rust

Yes, we (Cloudflare) use much more Go than Rust. But we do use a lot of both. There are teams that work exclusively in either language, there are teams that do none, and there are teams that do both.

(My team actually uses Go, and almost ended up using some Rust, but decided in the end not to, for good reasons.)

Re: Rob Pike interview

#200
post #197
post #160

Earlier quoted context omitted.

golang is not terser than Java for any non-trivial code bases, it's quite the opposite.

Go is what Java 1.0 could have been, however we are already on Java 14.

I usually note that it matches up pretty favorably with Java 1.4, and now there are some ten-percent jokes to be made...
Post reply on HN