In my answer to Two-column layout with left column just as wide as its content I've used non-breaking spaces ~ (ties) to align monospaced text. Actually I rather meant control spaces \ , but they're less convenient to type (and read), and line breaks were not of interest anyway. Some experiments concerning line breaking are documented in the code below.
Question: Besides their line-breaking behaviour, is there any difference between \ and ~? In particular, do (or may) they by nature have a different width?
\documentclass{article}
\usepackage{lipsum}
\usepackage{parskip}
\begin{document}
\lipsum[75]
%non-breaking space
lorem lorem lorem lorem lorem lorem lorem lorem lorem
lorem lorem lo~lo~lo~lo~lo~lo~lo~lo~ip~ip~ip~sum sum sum sum sum sum sum sum sum
lorem lorem lorem lorem lorem lorem lorem lorem lorem
lorem lorem lo~lo~lo~lo~lo~ %input line break doesn't affect non-breaking space
lo~lo~lo~ip~ip~ip~sum sum sum sum sum sum sum sum sum
lorem lorem lorem lorem lorem lorem lorem lorem lorem
lorem lorem lo~lo~lo~lo~lo %breaks at input line break
lo~lo~lo~ip~ip~ip~sum sum sum sum sum sum sum sum sum
%breaks at protected space
lorem lorem lorem lorem lorem lorem lorem lorem lorem
lorem lorem lo~lo~lo~lo~lo\ lo~lo~lo~ip~ip~ip~sum sum sum sum sum sum sum sum sum
\end{document}

\penalty\@M\, but LaTeX redefines it. – Werner Jun 09 '12 at 23:40~is not a primitive in plain TeX, it is an active character with a macro definition (\penalty\@M\, as you say). – Joseph Wright Jun 10 '12 at 07:30~inserts a large penalty while\does not. Does this example explain it better? – Werner Dec 29 '18 at 16:05\does not add a penalty and~does. Many thanks! – Tvde1 Dec 29 '18 at 17:03