You can reassert this tautological statement all you want, but when AI-assisted programming tools start compiling pseudo-natural-language into C++, you'd better accept the fact that either:
1. The definition has no bearing to what's happening in the real world, or
2. "Computer programming" ceases to exist as a productive activity and you need to invent a new name for AI-assisted programming.
But that is part of the point: there is no programming tool to compile natural language into code. Instead, a programmer has to convert the natural language into a formal language that a compiler can deal with. You know all those nifty refactoring tools? They're treating the program as a construct in a formal language---they can make specific changes without altering the meaning.
Oh, and there is nothing tautological about it, at least as far as most programmers seem to work.
They're not exactly reliable, but you probably could say the same for the earliest compilers (from programming languages to asm/machine code).
I'm not saying they will definitely be usable in the short term future, but that future is probably coming sooner or later, and I don't think a fragile definition (programming==="applied formal logic") is worth reiterating over and over again as if it were some fundamental truth.
1. The definition has no bearing to what's happening in the real world, or
2. "Computer programming" ceases to exist as a productive activity and you need to invent a new name for AI-assisted programming.