Jag har även hört att man kan använda mega för att isp-programera en UNO om man har en tom ATmega där i

Jag vet att Arduino behöver en bootloader, men jag kan inte direkt förstå varför.
Är bootloadern någon speciellt program som bootar upp den simpla och enkla koden Arduino-C ?
Om inte bootlodern skulle existera? Då skulle koden sett helt annorlunda ut, typ som klassisk AVR-kod?