encouraged practices that made programs hard to read, like omitting comments and whitespace.
I think that is a bit unfair. Given the limited memory of the C64, best programming practice was to omit comments in favour of code. Remember, C64 BASIC was interpreted, not compiled, so comments chewed up memory... memory measured in KILObytes. Comments (actually, they were called REMarks back then) were a luxury.
I was a bit young to do any serious programming on the C64, but I do remember my father rewriting a line of code to save two BYTES of code. If you didn't use up all the single letter variables before using double letter variables, or you added spaces between commands, you were simply doing it wrong.
Now we have gigabytes of RAM and terabytes of hard disk space yet computer programs don't run any faster than they used to (if anything, slower!). I think modern programmers could do worse than writing a few programs for the C64 to expose them to resource-scarce programming.