Building a (Lightweight) Business Process Engine


Organizing a set of tasks and activities into a structure to facilitate execution by human or by machine, is one of the best understood ways to create order from chaos. Most people who have made it through primary school understand this, in a primitive “hokey pokey” or “Simon says” sense.

This concept of sequence is key to almost all programming languages, which represent flow concepts with language keywords like “if” and “while”. In electronics and robotics, finite state diagrams are …

Multiple Inheritance in Java


Most Java developers will have heard the phrase “Java does not support multiple inheritance”, or maybe even admitted that they “wish Java supported multiple inheritance”.

A rarely asked counter-question is “Have you tried?”.

I have.

I set myself the task of creating a working implementation of multiple inheritance within Java. The requirements for a solution were:

  • The inheriting class must have access to all of the inherited class methods and data.
  • It must do this without using composition.
  • It can