← Back to home
Comparison · Analytics

cyclocomp vs distributions3

A side-by-side editorial comparison of cyclocomp and distributions3 — release velocity, themes, recent moves, and the top alternatives to consider.

Shared themes:r-package

cyclocomp vs distributions3: at a glance

Featurecyclocompdistributions3
SectorAnalyticsAnalytics
Velocity score0.06.3
Sparks · 30d01
Top themesstatic-analysis, code-complexity, linting, r-packager-package, probability-distributions, empirical-distributions, likelihood-inference
Last editorial update3d ago2h ago
WebsiteVisit →Visit →

What is cyclocomp?

A cyclomatic complexity checker that ships once every couple of years, and lands when it does.

cyclocomp measures cyclomatic complexity of R functions and packages, and is best known as the engine behind lintr's complexity rule. It has three releases in the visible window spread across nearly three years. The current one, 1.1.2, adds a quiet argument to cyclocomp_package_dir(); the two before it, shipped a day apart in 2023, added a large speedup and the package-directory entry point itself.

Read the full cyclocomp trajectory →

What is distributions3?

distributions3 0.3.0 adds sample-based distributions and likelihood derivatives

An R package giving probability distributions a consistent object interface - d/p/q/r functions, moments, and prodist() methods that pull a fitted distribution out of a regression object. Version 0.3.0 is the first substantive release under Achim Zeileis's maintenance, and it widens what a distribution is allowed to be: Empirical() represents a distribution by a random sample rather than by parameters, and numerical fallbacks now fill in cdf(), pdf(), quantile(), random() and the moments for any object that implements only some of them. New score() and hessian() generics compute first and second derivatives of the log-likelihood with respect to the parameters, analytically for a few distributions and numerically for the rest.

Read the full distributions3 trajectory →

cyclocomp vs distributions3: editorial side-by-side

C
cyclocomp
ANALYTICS
0.0

A cyclomatic complexity checker that ships once every couple of years, and lands when it does.

◆ Current state

cyclocomp measures cyclomatic complexity of R functions and packages, and is best known as the engine behind lintr's complexity rule. It has three releases in the visible window spread across nearly three years. The current one, 1.1.2, adds a quiet argument to cyclocomp_package_dir(); the two before it, shipped a day apart in 2023, added a large speedup and the package-directory entry point itself.

◆ Where it's heading

This is a small tool that reached feature-complete and now moves only when a downstream consumer needs something. Every change in the window is externally contributed, and each addresses a concrete integration need: a function that works on a local package tree rather than an installed one, complexity results sorted so the worst offenders come first, and output suppression for programmatic callers. The 2023 pair shipped a day apart because the new entry point immediately exposed a performance problem on long linear code.

◆ Prediction

Expect the next change to arrive the same way, as a contributed patch serving a linting or CI workflow rather than as planned development.

D6.3

distributions3 0.3.0 adds sample-based distributions and likelihood derivatives

◆ Current state

An R package giving probability distributions a consistent object interface - d/p/q/r functions, moments, and prodist() methods that pull a fitted distribution out of a regression object. Version 0.3.0 is the first substantive release under Achim Zeileis's maintenance, and it widens what a distribution is allowed to be: Empirical() represents a distribution by a random sample rather than by parameters, and numerical fallbacks now fill in cdf(), pdf(), quantile(), random() and the moments for any object that implements only some of them. New score() and hessian() generics compute first and second derivatives of the log-likelihood with respect to the parameters, analytically for a few distributions and numerically for the rest.

◆ Where it's heading

Growth used to arrive as new distribution families contributed from outside - the extreme-value set, Erlang, later the Poisson binomial. This release changes the axis: alongside two new distributions it adds an inference layer (score, hessian) and a forecast-evaluation one (crps() methods against scoringRules), which are capabilities about distributions rather than more of them. Dependency weight is being cut at the same time, with ggplot2 demoted to Suggests and glue replaced by base R sprintf().

◆ Prediction

With numeric fallbacks and the derivative generics in place, expect analytic score() and hessian() methods to be filled in across more of the distribution catalogue. The constructor-default change is the likeliest source of follow-up fixes, since calls like Poisson() now return a length-zero distribution where they previously errored.

Alternatives to cyclocomp and distributions3

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 cyclocomp or distributions3.

See all cyclocomp alternatives → · See all distributions3 alternatives →

Recent activity from cyclocomp and distributions3

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 2h agodistributions3Empirical distributions, plus score and hessian generics
  2. 29d agodistributions3Maintenance moves to Achim Zeileis; moment calculations corrected
  3. 5mo agocyclocompcyclocomp_package_dir() gains a quiet argument
  4. 10mo agodistributions3ggplot2 compatibility for the plotting functions
  5. 1y agodistributions3Poisson binomial distribution, with a normal-approximation fallback
  6. 2y agocyclocompLarge speedup on long linear code
  7. 2y agocyclocompComplexity checks run against a local package tree
  8. 3y agodistributions3is_discrete and is_continuous generics, plus elementwise type-safety
  9. 4y agodistributions3Extreme-value family, Erlang, and a plotting generic

Frequently asked questions

What is the difference between cyclocomp and distributions3?

Both compete on the same themes — r-package — within Analytics. distributions3 is currently shipping more aggressively (velocity 6.3 vs 0.0), with 1 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.

Is cyclocomp better than distributions3?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. distributions3 is currently shipping more aggressively (velocity 6.3 vs 0.0), with 1 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.

What are the best alternatives to cyclocomp?

Top cyclocomp alternatives in Analytics are ranked by recent ship velocity. Browse the "cyclocomp alternatives" section above for the current picks, or visit /alternatives/cyclocomp for the full list with editorial commentary on each.

What are the best alternatives to distributions3?

Top distributions3 alternatives in Analytics are ranked by recent ship velocity. Browse the "distributions3 alternatives" section above for the current picks, or visit /alternatives/distributions3-r for the full list with editorial commentary on each.