Programming languages don't use keyboards; they use some sets of characters, typically a subset of ASCII. Keyboards then can produce those characters.
And yes, typing [\]{|} and so on is inconvenient on my keyboard. I particularly detest the choice of \ over / in MSDOS and Windows path names.
I occasionally use US keyboard layout just to get around these difficulties, but whenever I arrive at some random computer, it will have the local layout.
(This is particularly confusing when going to France or Germany with they AZERTY and QWERTZ keyboards.)