ComponentArrays vs LabelledArrays

I’ve been a user of ComponentArrays.jl for a while. Just recently discovered LabelledArrays.jl. They strike as very similar. Are there any fundamental differences between them?

Just as example, this is the kind of use for which I employ ComponentArrays:

Are there any advantages of LabelledArrays over ComponentArrays in that case?

1 Like

ComponentArrays.jl is probably just better at this point.

6 Likes

Sorry for the necropost, but would you say that this is still the case?

I found ComponentArrays.jl to be a really cool package, but after using it for a couple of days I run into a couple of issues that made me appreciate the subtleties of the package. I am opening PRs to address some of these, but I think it would be great if the two packages were to merge to one, so that we don’t write code and fix bugs twice :smiley:

What do you think?

Things are pretty much just going to ComponentArrays.jl at this point. There’s no reason to kill LabelledArrays.jl, it does what it does, but ComponentArrays.jl has a much bigger feature-set so we advocate its use in the docs.

1 Like

Perhaps I am missing context here, but I assume that keeping LabelledArrays.jl has a maintenance cost? Over 2022, there were almost twice as many commits to LabelledArrays.jl as compared to ComponentArrays.jl.

My point is that if the efforts to maintain LabelledArrays.jl were instead channeled to ComponentArrays.jl then we could end up with a more robust package.

I am somewhat biased here because I ended up opening 3 issues and 4 PRs after a few days of interacting with ComponentArrays.jl.

The amount of work into LabelledArrays.jl has been effectively zero. It’s straightforward to maintain and takes no time.