I think it would be great if the Julia ecosystem could stay connective but modular, so it doesn’t end up like the fragmented ecosystem of R. One thing that would be really nice is interoperability among different types used for different applications, but I am unsure how to do this in practice.
As always, an example makes it easier. Say I use the Quandl.jl package to download some financial data, which comes in the
TimeArray format defined in the TimeSeries package. I then want to do a regression analysis on the data (e.g. to look for temporal autocorrelation), so I load the GLM package, which is easiest to use if your data is in a
DataFrame. I can fairly easily write a
convert(DataFrame, x::TimeArray) function for my project. But it seems like this is functionality that thousands of users may want to use thousands of times, so it’d be nice to make it available.
AFAICS there are two possibilities: 1) submit the
convert function to either DataFrames or TimeSeries - this would incur a dependency on the other package for that package, and would almost certainly be unpalatable; or 2) create a new package ConvertTimeArraysToDataFramesAndViceVersa.jl, that depends on both, which seems like it could easily bloat the package ecosystem.
Any well-established solutions? Perhaps the fabled optional dependencies that may come with Pkg3?