Hi Tomaz, >From the comments about the requirements you do I suggest:
- For data storage, my recommendation goes depending on two factors: 1)Installation complexity, 2) volume of data. These are two variables that will be against one and the other. I will recommend to use MongoDB + Voyage, that goes very well. It grows excellent with the amount of data, it has really cool integration with Pharo and Voyage is an excellent mapping tool; also it is a mature solution and it has a lot of support for back-up schemes and solutions. Using MongoDB complicates the installation process, so if you have the idea of a easy installable application maybe SQLlite is a good alternative. - I think using Spec2 + GTK + Roassal3 + Polymath is a good idea. Check that Spec2 and Roassal3 are still under heavy development. They are getting much better, but of course, it will take some time to stabilize; but both of them are progressing very fast and they are already quite stable. - For developing DSL and interactive programming for non-programmers users, Pharo is ideal. It presents a lot of tools to easily develop DSL and the UI to make them work excellent. The idea of live manipulation of objects and inspection of all the instances can be easily added to a DSL. Thanks for your attention! On Thu, Apr 9, 2020 at 9:13 PM Tomaž Turk <tomaz.t...@ef.uni-lj.si> wrote: > > Dear all, > > I'm thinking about implementing a software solution in Pharo (as one of the > candidate environments), it's a project that I'm dealing with professionally. > The goal is to develop a financial planning/simulation application on the > country level, which is at present developed as a set of interrelated Excel > spreadsheets. The requirement is that the solution should be more > "manageable", resilient and straightforward than Excel permits, that it > should present a workflow to the user - i.e. , that the tasks the user should > do are suggested through the GUI. > > The majority of the data is in a form of a time series (for instance: GDP for > a series of years). There are many variables in the model which shoud be > calculated from other variables, year by year. There are also lagged > variables (the value for the current year depends from the value of previous > year), and running averages. There are also some variables which are not time > series (parameters). As a part of GUI, there is a need to present the results > as diagrams, too (scatterplots, line charts), otherwise tables are the output. > > I found Pharo to be a very elegant language and environment, with version 8.0 > it became pretty stable, however I don't have any experiences in building > software solutions of this type in Smalltalk. In other words, I'd like to be > more confident in setting the architecture, both in the sense of the model > content (variables interrelation) and the architecture of classes. Besides, > for the calculated variables I'd like to have a relatively simple syntax to > define them (like 'GDPpC <- GDP / Population'). > > My thoughts and questions: > - for easier maintenance I'd like to separate the data from the code - so the > question is what would be the best way to implement persistence (another > Pharo image - with what?, some relational database, XML/JSON, flat files ...) > - I wonder what would be the best "architecture" of classes - so, we have a > lot of aggregate variables like GDP and population, which can be grouped at > least according to the stage in the planning workflow. There are also > resulting (calculated) variables (e.g. GDP per capita). On the other hand, > since this is a planning software, it's a kind of simulation, where we have a > "data warehouse", experiments and results > - As a core packages I would use Spec2, Roassal, and PolyMath. > > I'm just thinking aloud, and would greatly appreciate any thoughts from > experienced Pharoers :-) > > Best wishes, > Tomaz -- Pablo Tesone. teso...@gmail.com