I don’t yet fully understand what probabilistic programming is, but this talk made it a lot clearer:

“An Overview of Probabilistic Programming” by Vikash K. Mansinghka

To a very gross approximation: this is the current process with which you design machine learning algorithms. Probabilistic programming is about automating the 3 maths bits (with the sigma symbols) on the right that we currently do manually.

In the more rigorous words of Vikash K. Mansinghka:

Probabilistic inference is a widely-used, rigorous approach for processing ambiguous information based on models that are uncertain or incomplete. However, models and inference algorithms can be difficult to specify and implement, let alone design, validate, or optimize. Additionally, inference often appears to be intractable. Probabilistic programming is an emerging field that aims to address these challenges by formalizing modeling and inference using key ideas from probability theory, programming languages, and Turing-universal computation.

This talk did a lot to help me feel the appeal of probabilistic programming.