Say your native language is Hebrew, and you're working in a programming language like Python 3, which lets you put Hebrew in source code. Good for you! You've got a dict
:
d = {'a': 1}
and you want to replace that a
with some Hebrew. So you replace that single character:
d = {'א': 1}
Uh oh. Just by replacing one character, without making any other changes, your display went crazy. Everything from the Hebrew to the 1
is backward, and it's extremely non-obvious that this is even valid syntax (it is), let alone what it means.
Hebrew is intrinsically right-to-left, and even without any invisible control characters, Hebrew text will show up right-to left. This also applies to certain "regular" characters in positions near Hebrew, as well as characters from a few other scripts. The details are complicated.
How do you deal with this? You can't stick control characters into your source code to fix the display without breaking the code. Writing everything in hex escapes trades one kind of unreadability for another. Even if you resign yourself to naming everything with characters from the Basic Latin block and sticking all Hebrew strings in localization files, it's hard to avoid mixing right-to-left text with left-to-right.
JSON or CSV with Hebrew in it will be garbled. If those localization files you shoved your strings into were supposed to be human-readable, well, they're probably not. What do you do?