HackPPL: A universal probabilistic programming language
blog.acolyer.org
blog.acolyer.org
Also worth pointing out that, like all current gen PPLs, the word “Universal” is highly misleading, as only variables that are the result of a sample statement can be observed (since HMC, IS, and others require closed form conditional likelihood’s for observed variables). This rules out use cases such as observing noiseless aggregates of noisy signals (any workaround is a fudge and will put strain on the inference algorithms capacity for search).
Only a PPL with support for likelihood free inference techniques (few of which work very well as of today) could be considered truly “Universal”.
In practice, so many ordinary programs in ordinary languages use heap-allocated lists with runtime-specified lifetimes as intermediate values and return values. That sounds wonky, but I'm saying there's a lot of "businessLogic(X) -> variable length, nondeterministic on X length List of Y" functions, which is ill suited for PPL modeling. On the other hand, neural networks, which really work on binary images of inputs and outputs, handle those situations surprisingly well. That's what you're really competing with.