[OT] Go officially won't get generics

Paulo Pinto via Digitalmars-d digitalmars-d at puremagic.com
Fri May 9 05:48:12 PDT 2014


On Friday, 9 May 2014 at 11:46:20 UTC, Chris wrote:
> On Friday, 9 May 2014 at 07:38:46 UTC, Paulo Pinto wrote:
>> On Friday, 9 May 2014 at 07:05:59 UTC, Bienlein wrote:
>>>
>>>> Well, he had previously stated that there would be no 
>>>> breaking changes, and that if there were changes it would 
>>>> have to be called "go version 2 or something". So when 
>>>> generics were brought up he stated that there were no plans 
>>>> for generics and "I said we are going to leave the language, 
>>>> we are done" (with version 1 semantics).
>>>>
>>>> Ola..
>>>
>>> Robert Pike says in this thread 
>>> (https://groups.google.com/forum/?hl=de#!topic/golang-nuts/3fOIZ1VLn1o):
>>>
>>> "Go has type switches, and therefore no need for the Visitor 
>>> Pattern.". He has exactly the same mindset as Niklaus Wirth 
>>> and Oberon never got templates. Future will tell... Would be 
>>> a nice thing to bet a dime on whether Go will have generics 
>>> or not. I bet not ;-).
>>
>> Oberon did eventually get some basic form of templates in 
>> Active Oberon, but that was not under Wirth's supervision.
>>
>> He actually went into the other direction by making a 
>> minimalist version of Oberon with Oberon-07.
>>
>> I had the opportunity to meet Wirth at CERN, when he and a few 
>> ETHZ members took part on the Oberon Day, back in 2004.
>>
>> He is really great guy, but he could not understand why Oberon 
>> was being ignored in the industry. As he expected the desire 
>> for quality would drive developers to it.
>>
>> In a similar vein to Rob Pike writing the blog post why he 
>> thinks C++ developers don't care for Go, Niklaus Wirth wrote a 
>> long article about the industry lack of interest in minimalist 
>> languages.
>>
>>
>> The problem they fail to understand, or acknowledge, is that 
>> large scale architectures in simple languages usually lead to 
>> complex code with lots of boilerplate.
>>
>> --
>> Paulo
>
> With generics you mean templates, right? I started to use 
> templates in D, although I wasn't convinced. But the more I use 
> them the more I appreciate them. If you work with one or two 
> basic types, templates don't seem to make much sense. But when 
> you use the power of D, like having arrays of structs that hold 
> arrays of structs etc., then templates start to make sense.
>
> The thing is, the language has to be designed in a way that 
> templates make sense and can be used throughout the language. 
> If not, better not to introduce them. D, at a certain point in 
> time, started to be designed around templates, or with 
> templates in mind. I think it was Andrei who convinced Walter 
> to do that. But in my view the language has to cater for 
> templates for them to be useful. Introducing them randomly for 
> the sake of having them will not work.

Agreed.

The issue being that to design a strong typed language in 2007 
without support for genericity, does not make much sense. When 
all other mainstream languages have adopted them.

Lets not forget that CLU (1975) and Ada (1980) were among the 
first ones to support it.

The initial version of C++ STL was actually based on a 
preliminary version done in Ada.

Even .NET was actually designed with generics support in mind 
(1999):

http://blogs.msdn.com/b/dsyme/archive/2011/03/15/net-c-generics-history-some-photos-from-feb-1999.aspx


--
Paulo


More information about the Digitalmars-d mailing list