I think there is a de-facto distinction between different kind of programmers, we just need a clear names for them. Like, "builders" for folks who ship products and see code as an annoying intermediate step and "engineers" for people who build technically sound software.
Or put differently: code as a means to an end vs code as the end. You need both types, the ratio changes as things change, neither is The Way.