Recent systems with Python interpreters offer more computational power but aren’t optimized for intuitive probabilistic modeling. The results are not as interactive as Squiggle playgrounds are.
I believe https://marimo.io notebooks with PyMC models could be made every bit as interactive and illustrative as Squiggle. And Marimo already has free cloud hosting, notebook sharing, export to interactive Quarto pages, online editor, AI assistant for cells, tabular data integrations, and so on...
For “intuitiveness”, I agree that PyMC syntax in straightforward estimation cases where the user doesn’t want to “infer” anything in a Bayesian sense from data, but rather chain a few distributions and see how they act together (specifically: using exclusively pm.Deterministic variables in the model and then pm.sample_prior_predictive() at the end), would be maybe somewhat more cumbersome than Squiggle, but is this difference significant enough to motivate supporting own language, web server, etc.? In addition, PyMC models could be scaled beyond these simplest models, I suspect farther than Squiggle permits.
This space can move somewhat quickly. I just looked into Marimo—seems interesting. It was announced about a year ago and seems to be run as an independent project by two people.
I think it’s easy to get burned by jumping on neat new projects. Before I’ve had people argue that we should have been deep into the Julia ecosystem, or at some point, the OCaml ecosystem (OWL seemed neat for a few years, but then the lead developers left). We previously were excited by ReasonML / Rescript, but then that sort of fizzled out.
We started Squiggle over 3 years ago an published the first main version, with the editor, 2 years ago. Then we wrote about how we didn’t think that Python made sense at that point.
I’d flag that “Squiggle AI”, despite the name, is fairly language-independent. Most of the software and learnings would allow us to change languages without too much difficulty (until/unless we really get into the details of composability). AI is also often good at translating between languages. We think we could have it optionally or only output Python, if that’s a feature users would want later on, or if we think that’s best.
All that said, I appreciate the suggestion. I don’t think we made the wrong move looking back, but we’ll keep our eyes on new technologies like this. Right now we work well with Squiggle—the UI / UX is very optimized for this kind of estimation, and it’s very easy for us to customize and interact with. But it’s definitely the case that it’s a lot of work, and it might be the case that one of these options winds up good enough to spend the effort and risk to transfer to.
Yeah, rather than Roman’s argument feeling to me like a reason not to use Squiggle, this feels more like a reason for Squiggle to incorporate some python behind the scenes.
I think the target audience of squiggle is people who aren’t comfortable with complex code, but who are comfortable with probabilistic thinking.
Seems like having a set of structured queries for LLMs, plus the custom squiggle code, plus allowing the models to improvise python and JS code… Could be a powerful tool that would be much easier for most people to use.
I believe https://marimo.io notebooks with PyMC models could be made every bit as interactive and illustrative as Squiggle. And Marimo already has free cloud hosting, notebook sharing, export to interactive Quarto pages, online editor, AI assistant for cells, tabular data integrations, and so on...
For “intuitiveness”, I agree that PyMC syntax in straightforward estimation cases where the user doesn’t want to “infer” anything in a Bayesian sense from data, but rather chain a few distributions and see how they act together (specifically: using exclusively
pm.Deterministic
variables in the model and thenpm.sample_prior_predictive()
at the end), would be maybe somewhat more cumbersome than Squiggle, but is this difference significant enough to motivate supporting own language, web server, etc.? In addition, PyMC models could be scaled beyond these simplest models, I suspect farther than Squiggle permits.This space can move somewhat quickly. I just looked into Marimo—seems interesting. It was announced about a year ago and seems to be run as an independent project by two people.
I think it’s easy to get burned by jumping on neat new projects. Before I’ve had people argue that we should have been deep into the Julia ecosystem, or at some point, the OCaml ecosystem (OWL seemed neat for a few years, but then the lead developers left). We previously were excited by ReasonML / Rescript, but then that sort of fizzled out.
We started Squiggle over 3 years ago an published the first main version, with the editor, 2 years ago. Then we wrote about how we didn’t think that Python made sense at that point.
I’d flag that “Squiggle AI”, despite the name, is fairly language-independent. Most of the software and learnings would allow us to change languages without too much difficulty (until/unless we really get into the details of composability). AI is also often good at translating between languages. We think we could have it optionally or only output Python, if that’s a feature users would want later on, or if we think that’s best.
All that said, I appreciate the suggestion. I don’t think we made the wrong move looking back, but we’ll keep our eyes on new technologies like this. Right now we work well with Squiggle—the UI / UX is very optimized for this kind of estimation, and it’s very easy for us to customize and interact with. But it’s definitely the case that it’s a lot of work, and it might be the case that one of these options winds up good enough to spend the effort and risk to transfer to.
Yeah, rather than Roman’s argument feeling to me like a reason not to use Squiggle, this feels more like a reason for Squiggle to incorporate some python behind the scenes.
I think the target audience of squiggle is people who aren’t comfortable with complex code, but who are comfortable with probabilistic thinking.
Seems like having a set of structured queries for LLMs, plus the custom squiggle code, plus allowing the models to improvise python and JS code… Could be a powerful tool that would be much easier for most people to use.