The ESP32 is a cheap Wi-Fi module (and also ESP32 used to indicate board) which perfectly suited for DIY projects in the Internet of Things (IoT). When we are using ESP32 based boards with Arduino IDE (like, in our setup of Arduino UNO IDE guide) then the ESP32 is becoming “Arduino compatible” board. It is not what is supported by official Arduino by any means.
The Arduino UNO uses a 8-bit ATmega328P controller running at 16MHz with 2kRAM and 32kEPROM, while the ESP32 is a 32-bit CPU running at 160 or 240 MHz with 520kiB RAM and typically 1MB EPROM (external). It also includes Bluetooth and Wi-Fi with complete TCP:IP stack.
It has 3 sets of UART, SD/SDIO/CE-ATA/MMC/eMMC host controller, Hall effect sensor and lot of features including cryptographic hardware acceleration for AES, SHA-2, RSA, ECC, low 5μA current consumption in deep sleep, capacitive touch sensor interrupt etc.
So, we can see that ESP32 really worth it’s $10 price with so many features. But ESP32 as Arduino has no official standard board. Commonly clones of ESP32 DEVKIT V1 DOIT board is used. Adafruit has good quality board but that is also not unique standard.
Although Arduino UNO is less powerful, it is still the basic board for the newbies and more easier to use. Using ESP32 as Arduino board need some getting used with Arduino. Arduino has well defined multiple analog input. It is not easy for the newbie to setup an ESP32 with Arduino IDE. In all ways, ESP32 is intended for the slightly advanced users who otherwise would code in C++. Getting started with the ESP32 as Arduino still not just following one official website. It is true that manufacturer of ESP32 as enough code to support Arduino, documentations etc.