On my mind: we don’t have a Type System that does away with all testing, yet.

So, we should be thinking of ways to facilitate testing.

I’ve had lots of success with “coverage testing”. Simply create a small database that contains True/False for every branch point in the code (i.e. every function definition, every IF-THEN-ELSE, every WHILE loop, etc.). Create a battery of tests that crawls into every corner of the code. This works wonders for finding most bugs and dead code.

In 0D, this would mean dynamically tracking every connection with a True/False. Spit out info in Prolog form, then use Prolog to query the runtime info and help tune testing. Hmm, this would be trivial to implement in 0D by hacking on the get_component and route subroutines.

In other languages (say Javascript), this would be easy, too - use OhmJS to pre-process all source code and to automatically insert visitation memoizing. [IIRC, I did that on a compiler project, using a recursive descent parser (before PEG was invented)]

Appendix - See Also

References

https://guitarvydas.github.io/2004/01/06/References.html

Blog

blog

Blog

obsidian blogs (see blogs that begin with a date 202x-xx-xx-)

Videos

videos - programming simplicity playlist

Pamphlets

DSL for Writing DSLs

Is Concurrency Difficult?

Discord

Programming Simplicity all welcome, I invite more discussion of these topics, esp. regarding Drawware and 0D

Twitter

@paul_tarvydas

Books (WIP)

leanpub