@Valentin Yes. In general: (i) it is simpler to write performant code for `NullableArray` objects than it is for `DataArray` objects; (ii) where applicable, passing a `NullableArray` argument into an extant `AbstractArray` interface tends to yield better performance than does passing in a `DataArray` argument. I've written a blog post about the project for the Julia Summer of Code that provides a couple of comparison data points. It should be published relatively soon.
On Saturday, September 19, 2015 at 4:47:48 PM UTC-7, Valentin Churavy wrote: > > Congratulations. I am looking forward to using it. Are the performance > characteristics as good as expected (compared to DataArray?) > > On Sunday, 20 September 2015 02:38:08 UTC+9, David Gold wrote: >> >> I'm happy to announce that a tagged and registered beta release of >> NullableArrays.jl <https://github.com/JuliaStats/NullableArrays.jl> is >> now available for use with the Julia 0.4 release candidates. This is the >> latest stage of my work for the Julia Summer of Code '15 program, and I >> hope to continue to be involved in its development. I'd be remiss not to >> thank Alan Edelman's group at MIT, NumFocus, and the Gordon & Betty Moore >> Foundation for their financial support, John Myles White for his mentorship >> and guidance, and many others of the Julia community who have helped to >> contribute both to the package and to my edification as a programmer over >> the summer. >> >> NullableArrays.jl provides the NullableArray{T, N} type, which is a >> "struct-of-array" alternative to Array{Nullable{T}, N}. Our main concern in >> developing this package has been to replace DataArrays.jl in providing >> support for the representation of missing values in statistical computing. >> However, the NullableArray type should be useful in any implementation that >> would otherwise involve an Array of Nullable objects, since its >> struct-of-array design allows for a number of optimizations. The >> NullableArray type takes advantage of the AbstractArray interface and the >> package includes specialized implementations for methods such as map, >> reduce, broadcast, and a number of Vector-specific methods. >> >> Documentation is currently available in the README and through the Julia >> REPL's help mode, with centralized online documentation coming shortly. >> >> I welcome you all to try out the package, file bug reports and feature >> requests, and, if you are so inclined, submit PRs. Happy coding! >> >> David >> >
