In .NET libraries, we have historically favored classes (abstract or otherwise) over interfaces. See Choosing Between Classes and Interfaces. The main reasoning is that you can add members to a class over time, but once you ship an interface, it can never be changed. You can only add new interfaces.
In light of this, we should remove the IArrowArray interface, and instead just the base Array class as the abstraction for all Arrow Arrays.
As part of this, we should also consider renaming Array because it conflicts with the System.Array type. Instead we should consider naming it ArrowArray to make it unique from the very common System.Array type in .NET.
Reporter: Eric Erhardt / @eerhardt
Note: This issue was originally created as ARROW-5546. Please see the migration documentation for further details.
In .NET libraries, we have historically favored classes (abstract or otherwise) over interfaces. See Choosing Between Classes and Interfaces. The main reasoning is that you can add members to a class over time, but once you ship an interface, it can never be changed. You can only add new interfaces.
In light of this, we should remove the IArrowArray interface, and instead just the base
Arrayclass as the abstraction for all Arrow Arrays.As part of this, we should also consider renaming
Arraybecause it conflicts with the System.Array type. Instead we should consider naming itArrowArrayto make it unique from the very common System.Array type in .NET.Reporter: Eric Erhardt / @eerhardt
Note: This issue was originally created as ARROW-5546. Please see the migration documentation for further details.