You could say 'I'm waiting two hours', and no one would misunderstand you. I don't think there is any loss of meaning, but you might sound a little foreign. I think this usage is standard in some types of American-English. I could imagine a character on Seinfeld going 'Two hours I'm waiting - what is it with these people?’
In speech (but not in formal writing) you can say 'How long've you...'
Actually, there is a context where "I am waiting two hours" means something completely different (thanks Claudiu, Kosmonaut). If the issue was for example how long you were prepared to wait for a delayed flight, then you would say 'I'm waiting two hours (then I'm going home!)" to mean "I will wait two hours only"
So if the context is unclear, you need the 'have been waiting' construction.
Both expressions are correct and the difference in meaning between them is minimal. They both inform us when the action, to work, began and that it is ongoing.
Work is a verb which we can use in the present and present progressive tense.
- "She works in this company" describes a habitual action.
- "She is working at the moment" describes an action in progress but its duration is temporary.
Thus the present perfect progressive can be seen as related to the progressive and present aspect.
She has been working here since 1995
This sentence is acceptable but because the duration of the action is quite extensive, (18 years), people tend not to consider an action lasting that long to be temporary in nature.
Moreover, this response could answer one of many questions but without any specific context I can only make suppositions. My view is that the simplest, most logical and common question asked would be:
How long has she worked there?
It is important to note that the action is NOT finished. The person is still working for the same company. If not, the question ought to be like this:
- How long did she work there?
the answer would look something like this,
- She worked here for 18 years.
The action is completed and we naturally give the total number of years she worked for the company i.e. "for 18 years".
Someone who still works in the same company for 18 years (and therefore, has NOT been fired from her job) is likely to continue working there tomorrow, next month, and the year after etc. The implication being she has a steady, regular job. Therefore, the longer and the more permanent the action is, the more speakers will prefer the present perfect usage.
She has worked here since 1995.
Addendum
In the case of someone travelling to a place, normally we imagine someone either taking a plane, or hiking to a far-away land. In the OP's example São Paulo is the man's destination.
He has been traveling to São Paulo since the beginning of the year.
The "to" implies that the man has not yet arrived at São Paulo. The act of travelling to a place is still ongoing. Perhaps he is hitch-hiking and prefers to stop at different locations along the way. Although grammatically correct, it sounds a bit odd; normally speakers would say of people traveling in their sabbatical leave:
He's still traveling, and visiting different places before he arrives
at São Paulo.
The use of "ing" adds an element of dynamism to the sentence and implies the situation is evolving and progressing. If the intention was to say that the man is already in São Paulo, then both perfect aspects are acceptable and correct.
He has been traveling in/around São Paulo since the beginning of the year
and
He has traveled in/around São Paulo since the beginning of the year.
In this case I would prefer the ing structure (present progressive) because presumably the man at some point will return home, wherever that may be. Hence, the focus is on the temporality and dynamic aspect of the action.
A is for aspect http://youtu.be/NfyZOr4Gg64?t=1m16s
Born in New Zealand, Scott Thornbury, is a well-known academic in the field of English language teaching and author of many books on teacher training. Thornbury discusses the uses of present aspect in this video.
Best Answer
This is a difficult area of English for foreign learners, and I’m afraid you’re not going to understand it fully from a few answers here. Very briefly, you use the present perfect continuous form to talk about events in the recent past, particularly activities that have not been completed. The form is often found with the prepositions ‘for’ and ‘since’, as in ‘He’s been speaking for a very long time’ or ‘I’ve been working non-stop since this morning’.
Here are a few examples contrasting the present perfect with the present perfect continuous:
Your own examples don’t really illustrate the use very well. You wouldn’t say ‘I have learned English language in the past few weeks’, because that suggests you’ve finished your studies and you don’t need to do any more. That’s unrealistic. No one learns English in a few weeks. I think these two examples might show the difference more clearly: