News for hackers. Stuff that matters.
Re:What is probabilistic programming? by tel on Wednesday April 17, 2013 @11:28AM (#5564997)
Probabilistic programming is not really "programming" as we might use the term without qualification. It's wholly focused on the specification of probabilistic models, their structure, data, and evaluation pattern.

Consider BUGS as it's a very prototypical probabilistic programming example. If your goal is to specify that you have a model where you observe the "wetness of the grass outside" and infer whether it "rained previously" then you can use BUGS to express it easily.

    model {
      rained ~ dbinom(0.1) /* prior probability */
      for (i in 1:N) {
        grass[i] ~ rained
      }
    }
for some data grass[i].

(That was a very sketchy example, don't read into it too closely)

The heart of this is that quantitative methods are getting so well understood that we can express the algebra of models as a formal language. When we do this we get many of the benefits that programming has done for formal expressions of flow-charts.

Re:What is probabilistic programming? by tristanz on Wednesday April 17, 2013 @12:47PM (#5565474)
While the line isn't sharp, I would distinguish somewhat between older BUGS like languages, where the underlying analogy is typically a directed graph, and more recent probabilistic programming languages like Church, where the underlying analogy is an execution trace. The excitement around this newer form of probabilistic programming comes from the fact that they really are programming languages. Unlike BUGS, they inherit all the flexibility, composability, and encapsulation of the underlying language. Inference is viewed as sampling execution traces, so the connection with a programming language is quite tight.
Re:What is probabilistic programming? by tel on Wednesday April 17, 2013 @02:51PM (#5566287)
I agree in practice, but pedantically, blurring that line is the second step to understanding modern PPLs.