goat
A gene-set enrichment package that outgrew its human-only origins, then went quiet.
A side-by-side editorial comparison of qol and writeAlizer — release velocity, themes, recent moves, and the top alternatives to consider.
A SAS-to-R comfort layer that has quietly grown into its own dialect.
qol is a one-maintainer R package aimed at analysts moving from SAS: SAS-shaped verbs (compute., if./else_if., retain_value, do_if blocks), format-driven tabulation through any_table()/summarise_plus(), and styled Excel output as the default destination. Releases land roughly monthly and each one is large. The recent line has shifted from adding verbs to letting conditions be written as parsed character strings, which is the closest the package gets to reproducing SAS syntax inside R.
Six months of releases and not one of them touched the scoring models
writeAlizer generates predicted writing-quality scores from features produced by Coh-Metrix, ReaderBench and GAMET, downloading its trained scoring models on demand. Every release in this window — nine of them between September 2025 and February 2026 — is about that download path rather than the scoring: classed error conditions, checksum verification, an offline mode, a mockable artifact directory, and dependency reporting for the model families a user actually invokes.
qol is a one-maintainer R package aimed at analysts moving from SAS: SAS-shaped verbs (compute., if./else_if., retain_value, do_if blocks), format-driven tabulation through any_table()/summarise_plus(), and styled Excel output as the default destination. Releases land roughly monthly and each one is large. The recent line has shifted from adding verbs to letting conditions be written as parsed character strings, which is the closest the package gets to reproducing SAS syntax inside R.
Three threads are visible across these releases. Syntax fidelity is the newest: ifelse_multi() introduced character-string conditions with SAS-style writing, and if./else_if. immediately picked the style up. Tabulation flexibility is the constant — any_table() gains per-variable statistic selection, nested variable combinations in brackets, vector order_by, compute support. The third is ecosystem plumbing the maintainer builds when a gap appears: file I/O in 1.3.0, a console message system, global style options, macro variables, and in 1.3.2 a code_statistics() script scanner. Renames to dodge data.table and dplyr masking recur often enough to be a pattern.
The maintainer flagged the new percentile behaviour as a first iteration that only works with few grouping variables, so a performance pass on it is the clearest outstanding item. Beyond that the character-condition syntax has reached three functions in two releases and looks likely to spread to the remaining filter-bearing verbs.
writeAlizer generates predicted writing-quality scores from features produced by Coh-Metrix, ReaderBench and GAMET, downloading its trained scoring models on demand. Every release in this window — nine of them between September 2025 and February 2026 — is about that download path rather than the scoring: classed error conditions, checksum verification, an offline mode, a mockable artifact directory, and dependency reporting for the model families a user actually invokes.
The package is being made safe to distribute. CRAN's policy on packages that reach the internet drove the first wave — graceful failure, tests that preflight their URLs and skip, examples seeded from a local mock model — and 1.7.0 turned the accumulated fixes into structure with named error classes for each failure mode. Only 1.7.2 adds anything a user would ask for: filename handling for Coh-Metrix and GAMET outputs that arrive as paths.
With the artifact registry hardened and documented, the pressure that produced nine releases in six months should ease, and attention can return to the models themselves — the vignette on scoring-model development added in 1.7.2 hints at that. Nothing here promises new models.
Other Infra & APIs 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 qol or writeAlizer.
A gene-set enrichment package that outgrew its human-only origins, then went quiet.
The recursive-computation engine under massProps grows the accessors its consumer needed
A mass-properties rollup spends a year on documentation and follows its sibling's API
A cognitive-science sampling package ships once, then goes quiet for eighteen months
A Bayesian volatility sampler in its maintenance decade, paying for its own speed
A black-box interpreter reaches CRAN, then learns multi-class and survival responses
See all qol alternatives → · See all writeAlizer alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. qol and writeAlizer 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. qol and writeAlizer 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 Infra & APIs products to evaluate alongside.
Top qol alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "qol alternatives" section above for the current picks, or visit /alternatives/qol for the full list with editorial commentary on each.
Top writeAlizer alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "writeAlizer alternatives" section above for the current picks, or visit /alternatives/writealizer for the full list with editorial commentary on each.