Working previously exclusively with Arduino devices based on ATmega328, I started looking for the alternatives with higher RAM, as 2 KB appears to be too limited as soon as the device needs to, say, grab data from a sensor, show it to a 128×64 monochrome display, and save it to an SD card.
Naturally, I found mentions of ESP32 here and there, and tried to understand the differences between ESP32 and ATmega328.
My first impression is that ESP32, while being cheaper, is also much better in every aspect except the operating temperature: –40°C to +125°C for ATmega328 versus –40°C to +85°C for ESP32 (although other sources claim its operating temperature is identical to ATmega328). Different comparisons also claim that ATmega328 is easier for beginners, but I haven't found any clear explanation of what do they mean by “beginners” and what exactly is easier.
What am I missing? What are the benefits of ATmega328 over ESP32? In other words, what would be the reason, for anyone, to choose ATmega328 instead of ESP32?