Here are my thoughts:

Experimental driven development is an important part of verifying api, however multi threaded multicore hardware doesn't lend itself to experimental development, because there is no way to confirm the repeatability of the experiment or that the experiment ensures the absence of errors, simply because there are many possible paths of execution through the hardware and each test run may test a different path.

Until new tools are developed to make experimental development more practical in a multi threaded multicore hardware environment, it needs to be supplemented with theory driven development. In this case the theory is the JMM, the code is audited manually to confirm it complies with the JMM. Concurrency in practise is a good guide to follow if you want JMM compliant code.

The elephant in the room is, River is multi threaded and modern hardware is multi core.

Patricia is 100% correct, I'm developing using a more theory driven approach.

But this is creating unrest with people who are experimental driven; where are the tests that prove my changes are correct?

The real question is, where next?

Regards,

Peter.

Reply via email to