This is indeed annoying and illogical when learning english, especially because other languages get it right. The french have a different speciality: punctuation marks that consist of two parts(i.e. ? ! ; :) are preceded by a space character. Also very irritating.
> The french have a different speciality: punctuation marks that consist of two parts(i.e. ? ! ; :) are preceded by a space character. Precision: a non-breaking space (unicode U+00A0) :) LibreOffice or other word processing software automatically replace normal spaces by non-breaking spaces in that case. But in text editors (like vim), we must do it manually (Ctrl+Shift+ua0 on Linux), typically when writing a French…
(KDE has a dialog for customizing this under Settings→Input Devices→Keyboard→Advanced, where there are an impressive 16 possible options. It is just options to setxkbmap underneath.)