Programming languages are used in a number of different ways by scientists, and in this talk we will look at how they are used to reach “eureka” moments (discovery moments).
One of the uses is as a calculation device. Not a calculator perse but a machine to automate steps or to do batch processing with. The knowledge discovery here happens at the point where the results come in. This is changed a little but by Mathematica and Jupyter notebooks, where the steps are smaller and the feedback loop is small. This is nice, but still the discovery moments are limited to the results of a calculation.
Here we are talking about Domain Specific Languages, and you observe that the discovery moment can come earlier, for example when designing the DSL. You might obtain knowledge from doing that, but…. only for the creator of the DSL. Designing a DSL can be done by first modeling the domain and only then to create the syntax for the language. In the first step, the scientists are thinking about what objects are in their language are what their relationships are, even if the DSL creator is someone else, and that modeling can also lead to insights.
A third way that scientist use programming languages is to create simulations. This action of creating the simulation (not the running) can also lead to knowledge discovery! You will be thinking about what agents are in the system and how they interact, and for that often documents are created (called ODD documents) This indicates, says Javier, a lack of expressibility of our programming languages.
Deep and interesting thought, which I think are even broader then just scientists. In business too, knowledge discovery can have different form that we are not always aware of.