(1) I will finish all this job by 5 pm.
(2) I will have finished all this job by 5 pm.
Which one is correct and why?
If both of them are correct, what is the differece in the meaning?
"No. 2 is not right because we use the future perfect to say that something will be done before something else occurs in the future. We don't use the future perfect by itself without a reference to something else that will be going on."
Dear Richard, what do you think of the following quotation from Swan's book, Practical English Usage?
"We can use the future perfect to say that something will be finished or completed by a certain time in the future."
Welcome to the Grammar Exchange.
As you can see, Richard's reply to Eliud was made nearly nine years ago. Richard is no longer active on this forum. In fact, he's been gone for so long that I have never had any direct interaction with him. I'm not even sure whether or not he's still alive.
English is a very complicated language, and even we experts often disagree among ourselves about some of the finer points. David and I practically make a point of finding something to disagree about at least once a month, but we try to do our arguing offline so that we can synthesize our opinions and present a united front on the forum.
As to your specific question, I am more inclined to agree with Mr Swan than with Richard. That is to say, I find the future perfect completely (or perfectly, if you will) acceptable in these contexts.