On 4/9/13 4:17 AM, Russel Winder wrote:
On Mon, 2013-04-08 at 23:51 +0200, Paulo Pinto wrote:
[…]
Lets not forget the lack of generics, the religious view against dynamic
linking and errors for unused variables and imports.

OK so every language has it's religious side: Go's obsession for static
linking is indeed a problem and cgo is not really the solution.

I think this thread has collected a good amount of arguments (of the devil's advocate style) you might also encounter from informed attendees during and after your talk.

I expect arguments against D to be mainly based on completeness of definition, quality of implementation, and of course current adoption.

I have yet to find anyone who can tell me why Go must have generics with
a cogent argument that makes sense to me. OK so C++ has generics;
templates, how wonderful. Java has generics, and type erasure, great.
Scala, Ceylon and Kotlin have huge infrastructure to reify generics on a
platform with unreified generics. At least C# got that right. Why is the
Go idea of total separation of state and behaviour not a good
experiment, after all JavaScript, Python, etc. have shown this works
even without static type checking.

I think one of the less savory things the Go culture has done is to compromise the notion that generics are desirable in that language, to the extent that n00b posts asking about it are met with derision.

Lack of generics makes it very tenuous to do meaningful work on algorithms and their associated data structures. To compound the matter, Go itself doesn't follow its own preaching (thou shall shun generics and use interfaces throughout) for its own essential data structures (arrays, associative arrays, and channels) - all of which are generic in ways unattainable to client code. You can only go this far by claiming two data structures are enough and algorithms based on map/reduce are unneeded because there are loops.

I have some material for an article entitled "Why Go is not my favorite programming language". I decided in the end to cease work on that because it would be too controversial.


Andrei

Reply via email to