It was motivated by consistency with strings. Initially there was Array <: 
AbstractArray, but ASCIIString <: String. So to be consistent between those, 
you have the choice of renaming things to get either

1) ConcreteArray <: Array and ASCIIString <: String or
2) Array <: AbstractArray and ASCIIString <: AbstractString

Since 1) would be a really difficult change to make because of all the existing 
code, 2) was chosen. 



> On Oct 21, 2015, at 3:32 PM, DNF <[email protected]> wrote:
> 
> I see that we are thinking the same way here :) I understand that there has 
> been a push toward renaming abstract types AbstractXXX. Unless all abstract 
> types are going to get the 'Abstract' prefix, I don't quite understand this.
> 
> On Wednesday, October 21, 2015 at 9:19:30 PM UTC+2, Gabriel Gellner wrote:
> Continuing to think about all the ideas presented in this thread. It seems 
> that the general advice is that almost all functions should at first pass be 
> of "Abstract" or untyped (duck typed) versions. If this is the case why is 
> Abstract not the default meaning for Array? Is this just a historical issue? 
> This feels like the language design is sort of fighting this advice and 
> instead it should have been that we have Array meaning AbstractArray and 
> Array meaning something like ConcreteArray to put the incentive/most natural 
> way to add types. Similar for Vector, Matrix etc.

Reply via email to