> 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…
Rob Pike interview
191–200 of 273 posts
Re: Rob Pike interview
#192Earlier 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.
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
#193A little biased don't you think?
Re: Rob Pike interview
#194Earlier 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.
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
#195Earlier 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…
Re: Rob Pike interview
#196Really? 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.
https://github.com/cloudflare?q=&type=source&language=go
Compared to the 11 projects they have released in Rust:
Re: Rob Pike interview
#197Earlier 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.
Re: Rob Pike interview
#198I 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 14, definitely not.
Re: Rob Pike interview
#199Earlier 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
(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
#200Earlier 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.