Research

I am generally interested in programming paradigms and associated evaluation techniques. I strive to alleviate the challenges involved in programming, be it by human or machine.

My background has forged my appreciation of programming as a fundamentally human activity [Naur92] [Dijkstra79]. As a consequence, I generally lament the fact that most advances in programming paradigms are driven by anecdotal rather than empirical evidence of their utility.

Recent advances in artificial intelligence have generally shifted the human challenges involved in programming from writing to specifying and evaluating programs. This does not make programming paradigm research any less important. In particular, I conjecture:

  1. It is easier to evaluate concise, high-level code, rather than verbose, low-level code.
  2. It is best to leave it to a deterministic compiler to convert evaluated high-level code into efficient, executable code.
  3. Machines exert readily measurable effort to write code. The less they exert, the better. How much they exert depends on the programming paradigm.
  4. How much back-and-forth happens between the human and the machine in the process of code generation, depends on the programming paradigm.

My research then tends to have multiple tiers:

  1. Identify some challenges that programmers have when programming in the particular domain.
  2. Hypothesise improvements, design and implement them in the form of alternative programming languages or runtimes.
  3. Evaluate whether the hypothesized programming paradigm is really somehow “better” than what was found challenging in (1).

As such and overall, I have also gained a research interest in Computer Science Education, Software Engineering, Human-Computer Interaction, and Information Retrieval.

At present (2026), I am in particular interested in advancing the state of the art of programming adaptive multi-agent systems, where multiple agents cooperate towards a common objective in highly dynamic environments.

Publications

Dijkstra79

Dijkstra, Edsger. “Programming considered as a human activity.” Classics in software engineering. 1979. 1-9.

Naur92

Naur, Peter. Computing: A human activity – Selected Writings From 1951 To 1990. ACM, 1992.