Hacker News new | ask | show | jobs
by overcyn 2681 days ago
No the two conflicting statements are.

1. Go doesn't have generics because the authors didn't have strong grasp of type theory.

2. Go doesn't have generics, not from a lack of knowledge, but because the authors' real world software engineering experience had shown to them it wasn't important.

3 comments

Yeah, the second statement is also valid, though definitely not what I got from the parent's comment.

Though, in that case, I think the argument is more like:

  1. That shape is equilateral
  2. That shape is equiangular
It turns out it's a square. Rob Pike's public comments on the subject do seem to betray a weak grasp of actual type theory. Or at least one that is about as strong as it could ever get if your knowledge is primarily informed by practical experience with C++ or Java-style deeply broken type systems. But it's also true that Go's found an alternative approach that gets the job done. Or at least, gets the job done if you're writing the types of programs that he's writing.

So, even with the alternative statement, I still see no argument here.

I am not Rob Pike and therefore cannot provide proof of his grasp of type theory. But I also don't understand the desire to question and debate the knowledge of someone I've never met and has no influence on my life.

I have used Go extensively and would disagree with the idea that the lack of generics in go was ill-informed (and therefore a mistake). I find that Go's limited number of features leads to simpler libraries that are much easier to comprehend and use effectively. And in situations where I previously would have reached for generics I am forced to find a different approach and the end result is often better. Yes it does have its drawbacks and is not a perfect solution, but as far as engineering decisions go, I feel it was a successful one.

>Go doesn't have generics, not from a lack of knowledge, but because the authors' real world software engineering experience had shown to them it wasn't important.

What do you mean by "real world software engineering experience", Acme or Plan9? These are silly academic projects with tens of installations at best.

If your only metric is installations I'd say go is doing quite well at least.
Ken Thompson was one of the original authors of Unix
We are discussing Pike's profound engineering experience which constitutes the background of his bold claims about language design.
So really this isn’t a discussion about the design of Go (of which Ken Thompson was a part of) but just a chance to trash on someone you don’t like.
Well that was what I was trying to say anyway. Thanks for clarifying!