Julia‘s high productivity may have lead to this. Because packages are sometimes not easily discoverable or well-documented, for many tasks discovering and learning someone else‘s package may take longer than writing one from scratch. We explore the space of possibilities quite well because of this. The flipside is that we get multiple similar but incompatible efforts and individual packages sometimes don‘t get battle-tested enough.
I feel as though we have reached a stage where some consolidation is happening both through unified interfaces and filling feature gaps.
Many core components of the Julia ecosystem for data science or statistics are already top-notch and sometimes even unmatched.
For AD, my ride has been bumpier than I had hoped and due to my lack of familiarity with the domain I don‘t see a clear path forward. In my experience we are quite far from being able to just differentiate most things we would expect to be able to. Many times fairly simple computations don‘t AD and it‘s incredibly time-consuming to track down why they don‘t, and even when they work, any time you update your dependencies you could be breaking AD for your application. Some of that is probably due to the inherent difficulty of what the AD packages are trying to accomplish, but many times I feel that it‘s just that the code path has not bern sampled even though it‘s not far-fetched.