Daily Thought - 2024-04-24
< back to listI've talked about the platform concept before, and how Caterpillar code will be sandboxed. Code you call will be able to do very little, unless you explicitly provide capabilities as arguments.
In that context I wonder, would it be practical to make Caterpillar total by default? Then you could be sure that a function you call always terminates, which protects against bugs and restricts what malicious code can do. A function that needs it, could accept an argument (which could be a built-in function) that allows unrestricted recursion, unlocking full Turing-completeness.
This was inspired by hearing about Dhall on the Software Unscripted podcast. I've never worked with Dhall or another total programming language, so I don't have a good intuition for what's possible. But this is something to keep in mind, for sure.