IIRC, a trivial but telling example of the latter is that for whatever reason, Yarvin decided that in all languages and code for all things Urbit, the boolean value true should be represented in binary form as 0, and false should be represented as non-zero.
Now it’s fundamentally *arbitrary* whether 0 represents false or true, but deliberately making it the opposite of virtually every modern language implementation seems a perfect recipe for introducing unnecessary bugs.
@V0ldek @dgerard
IIRC, a trivial but telling example of the latter is that for whatever reason, Yarvin decided that in all languages and code for all things Urbit, the boolean value true should be represented in binary form as 0, and false should be represented as non-zero.
Now it’s fundamentally *arbitrary* whether 0 represents false or true, but deliberately making it the opposite of virtually every modern language implementation seems a perfect recipe for introducing unnecessary bugs.
Bourne shell inspiring yet another language!
@bitofhope
Yeah, that was the only motivation I could think of. And even there it doesn’t mean true/false, it means “no errors” and that only sometimes.