dowhy
DoWhy adds one estimation method a year and keeps its identification edge.
A side-by-side editorial comparison of dplyr and ggplot2 — release velocity, themes, recent moves, and the top alternatives to consider.
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.
ggplot2 swapped its object system out from under a decade of downstream code
The 4.0.0 release replaced ggplot2's S3 internals with S7 and made every geom's defaults settable from the theme, both breaking changes. The three releases since have been hotfixes cleaning up the fallout - regressions in geom_area(), position_stack() and the scale and guide systems - plus rlang interoperability repairs. The one genuinely new feature in that window is a quantile.type argument on boxplots.
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.
The 4.0.0 release replaced ggplot2's S3 internals with S7 and made every geom's defaults settable from the theme, both breaking changes. The three releases since have been hotfixes cleaning up the fallout - regressions in geom_area(), position_stack() and the scale and guide systems - plus rlang interoperability repairs. The one genuinely new feature in that window is a quantile.type argument on boxplots.
This is the tail of a long-telegraphed migration: 3.5.2 existed largely to give downstream packages the is_*() predicates and accessor functions they would need before 4.0 landed. With theme(geom) and from_theme(), styling is consolidating into the theme rather than being repeated per layer, which is the direction the extension ecosystem now has to follow.
Expect further 4.0.x patches as S7-related regressions surface in extension packages, and more of the per-geom default surface to migrate into element_geom(). The entries give no indication of a 4.1 feature line yet.
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 dplyr or ggplot2.
DoWhy adds one estimation method a year and keeps its identification edge.
OpenHouse is hardening the seams where table policies and jobs quietly fail.
silx 3.0 moved its default Qt binding to PySide6 — a migration for everyone embedding it.
statsmodels ships only what the ecosystem breaks — six releases, no new statistics.
StatsBase.jl is in caretaker mode — correctness fixes in, dependency bumps out.
Iris ships steadily on a two-a-year cadence, but its feed publishes only pointers.
See all dplyr alternatives → · See all ggplot2 alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
Both compete on the same themes — r — within Analytics. dplyr and ggplot2 are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). 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. dplyr and ggplot2 are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.
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.
Top ggplot2 alternatives in Analytics are ranked by recent ship velocity. Browse the "ggplot2 alternatives" section above for the current picks, or visit /alternatives/ggplot2 for the full list with editorial commentary on each.