Web-Based User Empowerment is the Future of ABM

This is a contribution to the special session on the future of agent-based modeling.
It reports about the ABM approach of the OESjs framework.

Interesting presentation as I was not familiar with the OESjs framework. If you are focused on the no code low code users this will be about users of well-defined components develop by the heavy coding users. There is also a movement of coupling model components and the use of dockers (@cpritcha) .

I teach ABM to social science students and do not agree with the representation of social scientists not wanting to learn the coding. Many of them may not have the perfect background, but they can catch up quickly. In fact in mixed class rooms of computer science students and anthropology students, anthropology students were outperforming the computer scientists since modeling is not just about the coding.

I use purposely Netlogo I my classes (K12, undergraduate and graduate level) since it provide a great resource for those without coding experience and you can do advanced models too. I was surprised about your goals since they overlap a lot what Netlogo is already doing (at least in my experience) (@wrand @sethtisue @fstonedahl). Perhaps you have a specific application area in mind where a platform like Netlogo is not suffiicient (you mentioned cognitive science applications at the end).

We are not really focused on NCLC users, but we want to support them and since OESjs is a web-based framework, it’s also natural to support them because on the web you also have casual users that desktop apps (requiring a more or less tedious installation effort) typically don’t have.

I didn’t mean to say that (all) social science users don’t want to code. I was just going to say that many of them don’t want to code. Do you agree with this statement?

I think that NetLogo has several usability and conceptual shortcomings that deter many simulation users:

  1. It was not created for the Web. Therefore, NetLogo models cannot be easily deployed on the (cloud-based) Web.
  2. It does not support events as first-class citizens. But in simulation we need both objects (“turtles”) and events!
  3. It does not support a choice of time models (discrete or continuous) and space models (1D/2D/3D discrete or continuous, graph space, etc.).

Many social scientists do not have the training that help to prepare them well for computer programming, but many of them would also not see computation as a relevant tool. Those who see this as a relevant tool typically have not a big problem to get skilled to a good level of proficiency. There is certainly more room for improving education on computational thinking in social science curricula (and to stimulate more collaborative research in social science, but that is a different issue).

I can see what you mean with shortcomings of Netlogo. I have not experienced those as a problem. Dependent on the need I may choose a different platform. What is nice to see with the 5 presentations in CoMSES 2018 of the different platforms is the diversity of approaches and philosophies. I think we need to maintain to have an ecosystem of platforms but be clear about the philosophies behind them so people can make the choose that fits them best.

I would definitely agree with Marco’s assessment that its not that social scientists don’t want to learn code, I think the majority of them, for whom coding would be useful, do want to learn how to code, they just haven’t been taught the skills.

NetLogo does have a web-based implementation now, NetLogoWeb its not as powerful as the regular NetLogo, but still quite useful. I haven’t really run into the concerns about events as first class objects, that’s somewhat a different between a procedural language and an OO-based language and I just use NetLogo as a procedural language. I’ve built continuous time models in NetLogo, and 1D, 2D, and 3D and continuous spaces are all easy to construct in NetLogo. I’m not saying that NetLogo is better or solves all your problems, I personally am happy to support the development of as many of these platforms as possible.

When you say that NetLogoWeb is “quite useful”, does this mean that you are using it? What are your use cases for NetLogoWeb? Did you notice that its user interface layout is rigid, and not adaptive as recommended for web apps (despite their claim that it’s “functional on the mobile web”)?

The issue of supporting events as “first class citizens” (modeling constructs) is not related to programming style, but rather to the degree of supporting problem domain modeling without forcing users to adopt workarounds.

Sure, you can code up various time and space models since it’s a turing-complete programming language, but it doesn’t provide direct support for a choice of time and space models, forcing you to use workarounds.