tidyr
tidyr replaced separate() with a family that says what it does.
A side-by-side editorial comparison of Distributions.jl and dplyr — release velocity, themes, recent moves, and the top alternatives to consider.
Julia's distribution library grinds forward one distribution at a time
Distributions.jl ships small, frequent releases against a large and settled API surface. Recent work splits between correctness fixes to individual distributions (LogitNormal formulas, Semicircle quantiles, Truncated Chernoff), incremental fitting support such as sufficient statistics and MLE for Chi and Chisq, and infrastructure moves like more consistent error types and global sparsity tracing through constructors.
After two quiet years dplyr widened its verb vocabulary in one release
dplyr sat on patch releases from late 2023 until 1.2.0 landed in February 2026, and that release did a lot at once: a filter_out() counterpart to filter(), elementwise when_any() and when_all(), and three new recoding verbs alongside case_when(). It also rewrote if_else(), case_when() and coalesce() in C via vctrs, and promoted .by and reframe() from experimental to stable. The follow-up 1.2.1 is a compliance patch.
Distributions.jl ships small, frequent releases against a large and settled API surface. Recent work splits between correctness fixes to individual distributions (LogitNormal formulas, Semicircle quantiles, Truncated Chernoff), incremental fitting support such as sufficient statistics and MLE for Chi and Chisq, and infrastructure moves like more consistent error types and global sparsity tracing through constructors.
The arc is consolidation rather than expansion: dependencies are being pruned and internals made more predictable so the package composes cleanly with the rest of the Julia numerical stack. Support for sparsity tracing and looser MvNormal type aliases both point at making the library easier to drive from automatic-differentiation and optimization code.
Expect the same cadence of per-distribution fixes and fitting-method additions, with continued work on making constructors transparent to tracing and AD tooling. Nothing in these entries signals a major version or API break.
dplyr sat on patch releases from late 2023 until 1.2.0 landed in February 2026, and that release did a lot at once: a filter_out() counterpart to filter(), elementwise when_any() and when_all(), and three new recoding verbs alongside case_when(). It also rewrote if_else(), case_when() and coalesce() in C via vctrs, and promoted .by and reframe() from experimental to stable. The follow-up 1.2.1 is a compliance patch.
The package is expanding its verb set deliberately, through published Tidyup design proposals rather than ad-hoc additions, and each new verb targets a case where the old idiom was error-prone - most obviously NA handling in negated filters. Underneath, hot paths keep moving from R into C, so the API grows while the runtime cost falls.
Expect the remaining experimental surface to follow .by and reframe() toward stable, and further hot paths to be rewritten in C via vctrs. The two Tidyup proposals referenced here suggest more of the filter and recode families is still being designed.
Other Analytics products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either Distributions.jl or dplyr.
tidyr replaced separate() with a family that says what it does.
modeltime built conformal intervals in, then went quiet on features.
performance keeps adding ways to check a model you have already fitted.
CmdStanPy is clearing deprecations ahead of a 2.0 it keeps announcing.
DoWhy adds one estimation method a year and keeps its identification edge.
OpenHouse is hardening the seams where table policies and jobs quietly fail.
See all Distributions.jl alternatives → · See all dplyr alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. Distributions.jl is currently shipping more aggressively (velocity 2.5 vs 0.0), with 0 editorial sparks in the last 30 days against 0. See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.
Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. Distributions.jl is currently shipping more aggressively (velocity 2.5 vs 0.0), with 0 editorial sparks in the last 30 days against 0. For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.
Top Distributions.jl alternatives in Analytics are ranked by recent ship velocity. Browse the "Distributions.jl alternatives" section above for the current picks, or visit /alternatives/distributions-jl for the full list with editorial commentary on each.
Top dplyr alternatives in Analytics are ranked by recent ship velocity. Browse the "dplyr alternatives" section above for the current picks, or visit /alternatives/dplyr for the full list with editorial commentary on each.