Difference b/w Atmega8u2 and Atmega8?

The thing is Atmega8 is easily available and more popular.
Can't we emulate the USB hardware in atmega8u2 in software, like used by USBtinyISP to connect to PC via USB? I want to know if it's feasible. Doesn't matter if the performance might be low, implementing very complex code and requiring more space.