On January 4th, 2022, it was decided we would allow scoring in fractional bytes. A decision I mostly agree with. Just to recap, the main reason this is beneficial for the site is:
- It allows comparing answers in the same language even if they would otherwise "round up" to the same value.
- It allows languages to compete that do not use a traditional binary storage system to compete.
This makes a lot of sense, for these languages. However, to convert to bytes, people came up with using \$\log_{256}(b)\$ to compare these to normal languages. This works great for languages like Nibbles where it comes out to a rational number, but is annoying for languages like Fig or Thonnu when it comes out be be irrational:
- It still doesn't allow comparing languages that don't use a numerical system at all.
- It requires complex MathJax in titles that is hard to parse, hard to write, and hard to compare when the result is a complex decimal.
- It creates paradoxes like this where unary suddenly becomes worth 0 bytes. I'm well aware that answer wasn't actually scored according to the meta consensus and particularly the accepted answer on fractbytes mentions nothing about log byte scoring.
If our goal is to make languages easier to compare, this has failed miserably.
Potential Solution
Our goal is to compare answers in the same language as effectively as possible. Then why use bytes at all? It makes no sense to me to score a base-3 language in bytes which is a fundamentally different number system, even if you could convert them with complex logarithms.
We only compare answers in the same language anyways. If language designers want to compare languages they can compute the logarithm and compare them that way if they want to, but as I understand it they round up to the nearest byte anyways so the log bytes solution doesn't help them either.
Thus I suggest the following:
- Answers do not need to be scored in bytes.
- Instead, they are scored in whatever is most convenient, it be nibbles, trits, codels, etc.
- If there is no existing unit that properly works, like a language that has 196 builtins and would like to encode them in a shorter way, you can use the word "symbol."
- Fractional multiples of "symbol" are still ok
- There could be a reasonalbe limit that there can be only a finite number of meaningful distinct programs for a specific number of symbols. For example, when scoring by number of logic gates there could be a infinite number of ways to place logic gates on the infinite playing field but they are not really distinct unless they connect in different ways.
This allows easy to read (and machine parse) titles, languages that don't use a numeric system at all to participate, while as far as I can tell harming nobody.
Let me know your thoughts.