Designing Bitcoin Smart Contracts with Sapio (available on Mainnet today)



Summary:

ZmnSCPxj, a Bitcoin developer, has introduced Sapio to the Bitcoin Developers community. He agrees with the rant on monetary units and mentions that in C-Lightning, values are output as strings with an explicit `msat` unit, even for on-chain values. ZmnSCPxj then expresses his preference for a non-embedded DSL over an embedded one, as it requires users to learn two languages. He also explains that a non-Turing-complete total "base language" and a syntax meta-language similar to Scheme `syntax-rules` could be used to design a more effective language. This scheme would allow the developer to observe whether the meta-program halts or not while assuring the end-user that the program will terminate. ZmnSCPxj concludes by stating that language design should aim to strike a balance between the low input bandwidth of human brains and their limited processing power.


Updated on: 2023-06-14T20:01:45.120642+00:00