I have seen that in virtual networking, guest VMs/containers can be connected with host and internet either by using kernel bridges(linux) or Virtual Switches.
Example - Bridges
docker uses linux kernel bridges to connect the guest containers to host and internet. Even, VMWare/VirtualBox allows to use bridge networking to connect the guest VM's with the host and internet. Example - Virtual Switches
VMWare ESX uses virtual switches to connect VM's with host and internet. Microsoft Hyper-V uses virtual switches to connect VM's with host and internet. So, I started to wonder what's the difference between these two (bridges and virtual switches) and which approach is better than the other.
(please feel free to edit the question to expand or make the question more meaningful.)