CovertLab / arrow

Stochastic simulations in python
MIT License
3 stars 1 forks source link

Classes for problem construction/interpretation #6

Open jmason42 opened 5 years ago

jmason42 commented 5 years ago

While I prefer closer-to-the-board algorithm implementations, there are situations (and users) where some sort of modeling language is desirable. I'm not in favor of building an entire file format and parser, but rather setting up some programmatic tools for building, running, and intepreting a system, e.g. some sort of class (or a few classes - maybe a factory class for building a system, a class for holding the system, and a class for storing simulation results). For example, our current 'tests' implement the same interface via a function, but cementing that interface would allow us to assume a few strong things about those implementations.

prismofeverything commented 5 years ago

This is a longer term concern but I think it is good to start thinking about now at least. There is something I like about the purity of providing numpy arrays for everything, but I can see once we build enough of these problems patterns will emerge that we can convert into a set of interpretive level abstractions. A small language could even be fun, but that is for when we understand how people use it : )

jmason42 commented 5 years ago

One technical advantage of a modeling language/factory class is that it allows us to play around with different underlying representations without changing any interfaces (i.e. #8). But, as you say, it requires a better understanding of our use cases.