eriksl wrote: Don't forget arduino is in the end an emulation layer to make the ESP8266 act like it's an ATMega 8 bit controller.
That doesn't sound like a good description of the Arduino esp8266 environment to me. There is no emulation of the ATM Mega controller going on. That would suggest that Mega native code is being executed by a translator / interpreter and that hardware features of the Mega are being emulated. The Arduino esp8266 uses a native Xtensa compiler. What it does share with other Arduino IDE environments is the run time model of a setup function followed by a continuous execution loop. Plus it shares the names for a number of the common core functions but these are all executed with native esp8266 code.
Note that I am not trying to argue the merits of using the Arduino versus other alternatives. That would be better done in a separate topic as this one is going off-topic.