Let's imagine a situation in which I am waiting for my friends because I have invited them for dinner. Their presence is crucial but they are running late. Which expression to this situation is correct and better?
(1) They should be here by now!
(2) They should have been here by now!
Thanks in advance.
Only #1 is appropriate for your intended meaning.
I used #1 during my class and I was corrected that it should be #2.
Could sentence #2 be correct in some other context?
For me, both are fine. #2 has more of an idea that you expected them before now.
Context is always important; labelling is rarely important.
I agree that they're both acceptable and you'll hear both. The only distinction I might make is that you could perhaps use:
They should be here by now.
They should have been here by 8.
The first gives a more "present" idea, and the second that the time for them to arrive has passed.
Yes, they are both certainly acceptable in the sense of 'grammatically possible', but the questioner makes it clear that (s)he is concerned solely with their presence or otherwise at the time of speaking, to which only
They should be here by now.
refers, while
They should have been here by now.
includes the possibility that they have already come and gone at some earlier time.
I therefore fail to see how the second sentence could be deemed equal to the first in terms of appropriateness in the specified context.
5jj wrote: The 'by now' makes that reading rather unlikely, I think.
Not in the least!
'By now' means simply 'at some point before now'. It make NO explicit reference to their presence at the time of speaking.