From my robotics point of view, probabilistic programming looks really attractive, and this paper seems to give very interesting/neat examples for control and Kalman filtering.
I wonder what has prevented these languages from being widely adopted by the robotics community? My suspicion is that it's always easier to work with general purpose languages, but even then "probabilistic programming libraries" for Python, e.g. Pyro or Edward, haven't really taken off either... Most people write SLAM algorithms in C++ and don't pay much attention to what the PPL people are doing.
I think we're still on the path to making (efficient) inference work for broader classes of problems (expressive problem formulation). One of the most interesting recent projects I've come across is "Gen" by the probcomp group at MIT (BTW, a lot of interesting work related to PPL seems to be happening in the Julia language).
Why so many? The design space is just beginning to be well-explored! And the community has welcomed experimentation!
Gen.jl and Jaynes.jl are research projects aiming to push the boundary of what you can express inside a PP framework - inference here is sample-based, with incremental computation providing most of the optimization. Gen.jl is much more mature than the latter (which I develop) and has tons of great and thought-provoking documentation. Turing.jl is also very mature, and they have a great number of resources showing how to express a number of classic models in their language, as well as how to compose sampling-based inference algorithms. The Turing folks also implemented the de-facto version of HMC in Julia https://github.com/TuringLang/AdvancedHMC.jl. Soss.jl is also very cool - and works by AST re-writing - with cool functionality integration from SymPy in Python. I’m not sure the state of the docs for Soss.jl - but the researchers for each of these systems are always willing to discuss the systems on the Julia Slack or Zulip!
Most of them are from engineering fields, not from computer science. Their interest is designing and implementing engineering models rather than programming itself. So they are not as adventurous as computer science guys in investing new programming tools (languages).
Also, I am pretty sure more than 90% of them have never learned functional programming or related computational theories, even in schools.
You're answering to a guy who's been in 2 computer science labs focused on robotics! It is true that a lot of people have an EE/ME background, but I think you'd be surprised at the amount of CS people in robotics. Especially in SLAM which I mentioned, given that this is a probabilistic inference problem.
I wonder what has prevented these languages from being widely adopted by the robotics community? My suspicion is that it's always easier to work with general purpose languages, but even then "probabilistic programming libraries" for Python, e.g. Pyro or Edward, haven't really taken off either... Most people write SLAM algorithms in C++ and don't pay much attention to what the PPL people are doing.
We’re always looking for interested people to join and try out some of the systems. For easy access to some of the active PP frameworks:
Turing.jl https://turing.ml/dev/
Gen.jl https://www.gen.dev/
Soss.jl https://github.com/cscherrer/Soss.jl
Jaynes.jl https://github.com/femtomc/Jaynes.jl
Why so many? The design space is just beginning to be well-explored! And the community has welcomed experimentation!
Gen.jl and Jaynes.jl are research projects aiming to push the boundary of what you can express inside a PP framework - inference here is sample-based, with incremental computation providing most of the optimization. Gen.jl is much more mature than the latter (which I develop) and has tons of great and thought-provoking documentation. Turing.jl is also very mature, and they have a great number of resources showing how to express a number of classic models in their language, as well as how to compose sampling-based inference algorithms. The Turing folks also implemented the de-facto version of HMC in Julia https://github.com/TuringLang/AdvancedHMC.jl. Soss.jl is also very cool - and works by AST re-writing - with cool functionality integration from SymPy in Python. I’m not sure the state of the docs for Soss.jl - but the researchers for each of these systems are always willing to discuss the systems on the Julia Slack or Zulip!
Also, I am pretty sure more than 90% of them have never learned functional programming or related computational theories, even in schools.