I would like to announce the upcoming v0.1.0 version of StaticArrays, which marks a certain point of maturity in this package. Bluntly put, the goal of StaticArrays is to improve performance over `Base.Array` for small arrays and when the size of an array is a (compile-time) constant. In this case, many optimizations can be made, including stack-allocating the container, unrolling loops and writing specialized algorithms for specific sizes (e.g. 3x3 eigendecomposition is much faster with a specialized algorithm than via LAPACK). A sample of speedups on 3x3 matrices of Float64 is:
There is a significant advantage in using statically sized array for 2D and 3D geometry and similar applications where the dimensionality is small and known in advance.
Julia has a rich history of fixed size array packages, including FixedSizeArrays.jl (originally for Julia v0.4) and ImmutableArrays.jl (originally for Julia v0.3). Discussions (including the worry that we would need yet another package for Julia v0.6!) have lead the StaticArrays repository to be moved to the JuliaArrays github organization, https://github.com/JuliaArrays/StaticArrays.jl and a decision to move forward with this package. After discussions with Simon Danisch, we would like to recommend new users utilize StaticArrays, while existing users of FixedSizedArrays might consider porting over to StaticArrays sometime during the life-cycle of Julia v0.5 (of course both FixedSizeArrays and ImmutableArrays remain fully functional). Advantages include compatibility with and subtyping of `AbstractArray`, and wide range of provided array types, and some measurable but modest speed improvements.
PS - I would love to see an announcements page on Discourse!