> All decisions made 20 years ago. The future is UTF-8.
As you can see in the examples, they are all (except perhaps the Joilet file system) still very actively used. I see no reason that they will disappear soon.
Also the decision to use UTF-8 under GNU/Linux is a decision that was similarly made about 20 years ago.
honestly the future is probably UTF-32. just make all code points 32-bits and use the 11 bits that Unicode says it will never use for flags so things like formatting can be encoded per character.
First of all, there's graphemes are inherently not one-to-one with code points, e.g. Á = A + `. There's simply no Unicode encoding that will let you safely index into an array without paying attention to the meaning of the underlying codepoints. (and no, using NFC won't solve this either, because there are combinations for which there's no composed equivalent)
Secondly, general formatting info won't fit into 11 bits (italic, bold, underline, strikethrough - that's already 4 bits, and we haven't talked about color, font weights other than bold, etc.), so why bother baking in a limited, intentionally gimped version into your character encoding?
Further popular counterexamples besides the NT kernel (cf. [2]):
- Java
- JavaScript
- .NET
- Qt
- Joilet file system (for CD-ROMs)
[1] http://utf8everywhere.org/
[2] https://en.wikipedia.org/w/index.php?title=UTF-16&oldid=9094...