Software Engineering for NetLogo

Before my retirement, I have been teaching Software Engineering as well as Simulation Modelling (the last 10+ years focused on ABM using NetLogo).
From a Software Engineering point of view, I have missed some aspects in NetLogo.
However, during those years, there has always been a lack of time to really think about the relation between Software Engineering and NetLogo.

Gradually, some vague ideas are crystalizing into concrete extra features for NetLogo.
The most prominent at the moment are:

  • modularity, improving decoupling and cohesion
  • multi-level inheritance of breeds
  • assertions

These features should not interfere with the existing NetLogo language. The easy start of learning NetLogo is one of its strongest points. We should not compromize that!

Let me compare this to Python and Java, both of which I have been teaching.
Java is stronger in support of Software Engineering, but much much harder to learn than Python.

In the next couple of posts, I will propose specific ideas for the points above (all prepared off-line; I can’t type that fast :wink: )
There will probably be many more ideas for extending Software Engineering support in NetLogo.