@yassem:
*LONG* Polling, Comet, etc. are not the same thing as simple, repetitive polling. Basically, within the wide array of techniques that get thrown under the "AJAX" label, there are various methods that fairly effectively emulate the responsiveness and efficiency of server pushes.
Here is a page that might help explain things:
http://stackoverflow.com/questions/11077857/what-are-long-polling-websockets-server-sent-events-sse-and-comet
I would also recommend looking more into the wide breadth of AJAX techniques. AJAX isn't simply one method, but rather a catch-all label that has been applied to a wide variety of techniques.
Check out wikipedia and various tutorials on the web that you can find via google.
As for "efficiency" ... performance (latency, throughput, etc.) considerations are just one part of the larger set of design considerations that have to be made for choosing a solution. Client-side support, network/server support, and ease of integration into other frameworks are just some of the many of other design considerations that need to be made. For example, would a tiny fraction of second difference in message latency really matter for webDip? Or would it be more important to ensure that the feature works across more clients/networks?
Maybe you overlooked this link that I posted above, which explores some of the pros/cons of AJAX vs websockets:
http://stackoverflow.com/questions/10377384/why-use-ajax-when-websockets-is-available
In regards to AJAX vs websockets, you have to weigh these design considerations to figure out what might work best for you application/context. It would be foolish to simply say that one is objectively better than the other.
TL;DR: Read the discussion in two links that I posted above.