Depending on you definition of harmless, I'd randomly replace one character every 1000 with an alternative version, newlines from crlf to lf, spaces, even some printable characters have similar options in other languages
A virus that replaces the normal space with a random one of similar space characters that all look normal to the end user but would fuck up programming.
I was thinking more about source code, bash scripts won't run on Unix if you got a crlf and cli editors do not display them differently (by default). Python scripts needed a declaration on top to run with a certain encoding, but the error there is clearer. If you use them as string constants it's also going to just work internally but may break if you compare them with an external value