I recently got a message that says
Haven't heard anything from you in a while.
I always thought that the right way to say this would be to use for insdead of in. Are both versions correct? Would there be a difference in meaning?
I'm trying to capture a vague idea floating in my head. Not sure I can explain adequately.
First off, both "in a while" and "for a while" are grammatical and idiomatic per se. However, to me, "for a while" would mean that their hearing from you is an ongoing process, which you interrupted for some time — or well, for a while —, but then resumed. Which is not what the sentence is supposed to express.
What you want instead is "in a while", which also means "for some period of time" but without implying that the contact has been re-established already, or indeed ever will be. Which is the whole point of that sentence, after all. It's just a reminder that it should be.
So I would most definitely say, "Haven't heard anything from you in a while".
This might be just my dialect/idiolect, though. I haven't checked any corpora.
The sentence you give should be:
No difference in meaning in this case, at least, not to my knowledge in American English, and not in my idiolect. But there would in these cases:
The distinction between for
Correct Standard English dictates:
If the action or non-action belongs in the past and continues in the present, then it is more fluent Standard English to use for:
If the action belongs in the future, then, and only then, is "in a while" correct.
These phrases have similar meanings. They are not usually interchangeable, but there's one exception.
for a while
This phrase indicates a limited, continuous time period. If you go on vacation for a week, you will be gone continuously until a week has passed and then return.
not for a while
If you won't return from vacation for a week, you will be absent for a week and then return. This usage implies a definite end to the period, although the exact timing may be vague (a while).
haven't for a while
If you haven't seen him for a week, then he was absent for that duration. Because for indicates a limited time, this often implies that the absence has ended (as RegDwighт suggests). However, when talking about a fixed time leading up to the present, it may simply note that the time period has ended, not the action.
in a while
This phrase indicates a time some distance away – usually, but not always, in the future. If you go on vacation in a week, you will not leave until a week from now.
not in a while
If you won't return from vacation in a week, then you will still be gone a week from now, with no indication of when you will actually return. This usage typically indicates a deviation from plans or expectations: We can't get the job done in a month.
haven't in a while
If you haven't seen him in a week, then he disappeared a week before now. This usage indicates a time some distance in the past. There is no implication that the period has ended.
For the example in the question, haven't for a while and haven't in a while are roughly interchangeable. For carries a weak implication that the absence has ended; in does not.