Quick googling, I guess you mean this comic?
has done form would not have been more correct.
This comic is a perfectly normal example of the way that the
did form is used.
I mean, yes, it probably will be confusing to students, because the English tense-aspect system is confusing. (By which I mean, it's a relatively complex and subtle part of the grammar.)
But the usage of the
did form here is not in any way a weird exceptional case that misrepresents normal usage.
has done form would imply a following statement or question in some sort of present or future tense verb form like
is gonna do, etc, or another
has done (eg: "I haven't done it yet, because he hasn't paid me yet").
(It could also be followed by a
does form; the
does form is just more restricted for the same reason it always is: for "normal" verbs [ie, not weird, essentially arbitrary exceptions like "see", "want", "know", "like", etc], it can usually only be used with a habitual meaning. eg: "I've burned too much toast in my life. Now I only eat cereal.")
Concretely, if Jon had said:
that would imply that he's gonna say something like:
Or expects Garfield to respond with a statement or question with a verb form like that.
And when I say it would imply that, I mean that neither of them has to actually respond with an utterance with any verb form, or have any exact utterance in mind.
1 - "Have you heated the water?"
2 - "Did you heat the water?"
In both cases, the answer could be "yes" or "no", but 1 is "naggier" than 2 because it vaguely implies the asker saying something like "if you haven't yet, then you should do it now" (even if they don't actually say anything extra later), whereas 2 is more "neutral". That is, the asker just wants to know the simple factual answer to the question.
Jon is being "neutral" in the same sense here: he's not soliciting any response or leading into any continuation.
Some more stuff to add...
1 extra point
Note that Jon would also use the
did form if he expected (to make or receive) a continuation in a past tense form like
had done, etc, like:
"I burned the toast..."
- "While I was doing X."
- "Before I did X."
- "After I did X."
- "Because someone left the toaster on the wrong setting."
- "Because someone had left the toaster on the wrong setting."
(There's no real difference between
had done in those last two examples;
had done makes it a bit clearer that we're making yet another jump back in time, but that's already pretty clear from context.)
But he could also continue into a non-past form as well, like:
"I burned the toast..."
did can continue into both the past or non-past, but
has done can only continue into the non-past (or another
has done, like I said above).
So in that way,
has done is a more restricted, specialized form than
In fact, I might even dare to venture that, as a general rule-of-thumb:
Pretty much any time the
has done form sounds right, the
did form would also sound okay, especially if you also use an appropriate adverb like "already", "before", "once", etc. (In fact, the
has done form kinda is functionally a member of that set of adverbs.)
could more-or-less be substituted with:
Without really making it sound weird or changing the connotations.
But there are lots of cases where the
did form sounds right, but the
has done form would sound odd, no matter what you add.
- I went to the store and ran into Bob while I was there.
could not be transformed to:
- WEIRD: I have gone to the store and ran into Bob while I was there.
- EVEN WEIRDER: I have gone to the store and have run into Bob while I was there.
So yeah, rule-of-thumb: "when in doubt between
has done, use
(I call it a "rule-of-thumb" because, while it's probably more-useful-than-not for confused students, I don't think it really offers much linguistic insight... teachers shouldn't be pushing confused students into making tricky choices in production like that anyway...)
2 extra point
There is definitely one major exception: when the action is still happening.
eg, "I've worked here for three years" can not be replaced with "I worked here for three years", because that would change the implication from "and I still do" to "but I don't anymore".
has been doing form is probably better in that case anyway (ie, "I've been working here for three years").
Again in a table to make it clearer:
"I've been working here for three years" ("and I still do") # same meaning as below, sounds most normal
"I've worked here for three years" ("and I still do") # same meaning as above, sounds like... maybe there's some doubt about the future?
"I worked here for three years" ("but I don't anymore") # different meaning
This is the case where a language like German or French would use a construction with present tense and a word like "since" and/or "already", so that the literal translation into English would be something like:
- (NOT NORMAL ENGLISH): I work here since three years.
I'm not sure offhand, but I expect that other languages like Italian and Spanish also use a similar construction in this case...?
3 extra point
None of this applies to the
had done and
had been doing forms when they're used for narrative back-shifting like in a novel.
Like, if you imagine someone narrating their experiences and thoughts as they happen in present tense 1st-person...
then you can think of English novel style as taking that narrative, and shifting all the tense forms "one step back".
(And also often transforming them into the 3rd-person.)
I'm walking down the street. > I was walking down the street. > Bob was walking down the street.
I haven't eaten any breakfast. > I hadn't eaten any breakfast. > He hadn't eaten any breakfast.
Suddenly, I see a strange man. > Suddenly, I saw a strange man. > Suddenly, he saw a strange man.
Narrative back-shifting gets more complex (
will do goes to
would do, for instance, which is totally different from the normal use of
would do in conversation), and some forms like
had done can't really be back-shifted (
had had done would be bizarre), so they stay the same...
4 extra point
had done form in an "if"-clause is... best thought of as a transformation of an underlying
would have done, I think.
Like, it really "should" be:
* if I would have done X, he would have done Y
and it's just an arbitrary extra rule that, after an "if", it turns it into:
if I had done X, he would have done Y
But that's just part of a bigger pattern where "if" forces all the
.would meta-forms to transform into
.did meta-forms like:
would do > did
would have done > had done
would be going to do > was going to do