https://eev.ee/blog/2015/09/12/dark-corners-of-unicode/
But one's sticking with only some part of Unicode support that they understand/need is easy, sure.
https://eev.ee/blog/2015/09/12/dark-corners-of-unicode/
But one's sticking with only some part of Unicode support that they understand/need is easy, sure.
It's hard, because there's a lot more to learn and to do than if you stick to (say) ASCII and ignore the problems ASCII can't handle.
It's easy, because if you want to solve a sizable fraction of all the problems ASCII just gives up on, Unicode's remarkably simple.
In the eyes of a monoglot Brit who just wants the Latin alphabet and the pound sign, unicode probably seems like a lot of moving parts for such a simple goal.
Paraphrasing the joke about new standards: we had a problem, so we created a beatiful abstraction. Now we have more problems. One of the new problem being normalization.
It doesn't undermine the good that Unicode brought, but you can't say to have included some unilib.h and use its functions without understanding all the Unicode quirks and its encodings, because some of the parameters wouldn't even make sense to you, like the same normalization forms.
1. Either your restrict yourself to the kind of text CP437/MCS/ASCII can handle (to name the three codecs in the blog posting). In that case unicode normalisation is a noop, and you can use unicode without understanding all its quirks.
2. Or you don't restrict the input, in which case unicode may be hard, but using CP437/MCS/ASCII will be incomparably harder.
Not just it would be harder, but you couldn't get into space without it at all, so that got comparatively easier.
Is it still all easy, though?
I think Unicode is about as simple as it can possibly be given the complexity of human language, but that doesn't make it simple.