I’ve never had a problem with Stan on Linux.
When I was in grad school, I remember one student on a mac could never figure out Xcode problems (although I question the authenticity of his efforts). I was also given a Windows 7 machine a few years ago, and couldn’t figure out CmdStan, but thankfully I could request Ubuntu to be installed on it.
I started working last week, and again I’ve been given Windows (10), now without the option of swapping it for Linux, because of a mountain of required corporate software. My team members all develop directly on the local Linux cluster, because that is easier than trying to get Windows to work.
Neither Julia + ESS or Julia-repl work on Windows emacs.
Have your students never encountered problems?
The difficulty is that beating Stan’s AD engine is very, very hard. Stan as a language is quite limiting, but the Stan developers managed to optimize gradient calculations to an amazing extent.
My ProbabilityModels.jl is still severely limited, but I’ve seen large improvements over Stan in terms of performance, owing at least in part to the fact that Stan’s AD isn’t very amenable to SIMD. For a problem in my dissertation, which is similar to a model used at my work, I saw about a 20x improvement in ESS/second with ProbabilityModels + DynamicHMC over Stan.
I plan to add support for missing data in the next few days, and then broadcasting after that. However, real control flow (loops, if
) is much further down the line.
In the mean time, as a hack, control flow can be wrapped in a function and an analytical Jacobian can be defined. The API for that is currently awful though, so I’ll have to come up with a better way of doing it.
I’ll likely add ForwardDiff or Zygote-based fall backs eventually.
It is not mature, nor well tested, enough that I recommend anyone else use it; I fear anyone who tries will spend a frustrating amount of time dealing with opaque errors and find whatever they’re trying to do isn’t supported yet.
I just point to that as an example of the speed that is eventually possible in Julia. Once it and all of its dependencies are solid enough, I’ll get them registered and announce them as reasonable solutions.
It would be neat if a more robust library like Turing could take advantage of some of the performance optimizations. But I think many of them depend a lot on my stack of unregistered packages.
I know a lot of professors who use it! Some because of its support for spatial statistics.
Where I work, JAGS is the most popular choice. While I don’t share @opera_malenky’s opinion, it (in my experience) is in the majority.