Score Brainfuck as 0.5 bytes per char (because it only uses 8 characters)? [duplicate]

I think that Brainfuck and many other esoteric languages almost never win , because they take many characters to express things. So, overall, Brainfuck programs are longer in bytes, because they use only eight different characters. I think that it isn't fair to give each character one byte in a language which uses just over 3 per cent of the ASCII charset.

I'm suggesting this simple amendment to the scoring rules of which will give some esoteric languages more of a chance.

If you have a character set of only 16 characters, each character is 4 bits. Hence, you can store 2 characters in one byte.

So, in languages which have 16 or fewer useful characters (e.g. Brainfuck, any others?), every character should count as 0.5 bytes (unless the program contains ASCII characters which are not in our set of 16, in which case normal scoring applies).

Similarly, for languages such as Whitespace, which uses 3 different characters (correct me if I'm wrong), you could count every char as 0.25 bytes, unless the program contains other chars.

I'm a bit reluctant about giving HQ9+ the 0.25 byte privilege, but ultimately there's no reason why not - we all know it's a joke, it won't somehow become more clever if we allow it to be scored like this, and if we didn't let HQ9+ have 0.25 bytes per char it would be a confusing exception to the rules.

I think that in languages that use 16 or fewer different characters, and ignore all others (e.g. Brainfuck), every character should count as half a byte for . This will give more of a fair chance (?) to many esoteric languages, and allow them to compete with more respectable things.

• You can still have many functions even if using 16 characters (eg. there are 65536 different four character combinations), so people may make 16-character languages which are completely acceptable, just to get this bonus on their code. – kitcar2000 May 14 '14 at 18:57
• @kitcar2000 Good point, but creating your own language for a question is "no longer funny": meta.codegolf.stackexchange.com/questions/1061/…. If someone makes a special language which uses 16 characters, and it gets popular, then we could accept it just as we accept HQ9+ or GolfScript. But then it wouldn't be cheating, because you aren't creating it for a specific question. – user16402 May 14 '14 at 19:22
• speaking of HQ9+ - does this means that these rules now provide us a 0.25-byte quine and a 0.25-byte hello-world? – John Dvorak May 14 '14 at 19:30
• @JanDvorak Unfortunately yes... but as I explained, HQ9+ won't suddenly get more upvotes. It's still a complete joke. Even without these rules it can still beat any other language. – user16402 May 14 '14 at 19:32

This doesn't need to be in the site's rules because it already exists in the real world.

For example, let me define my own language called "BitF*ck," directly mapping BF commands to bits:

+ 000
- 001
> 010
< 011
. 100
, 101
[ 110
] 111


Now each BF character is .375 bytes, and look, we didn't need to change any of the site's rules! Similarly, we could map HQ9+ to 00 01 10 11 and get .25 bytes per character.