Note that both Bluepill and ESP32 can be programmed in the Arduino IDE, using the Arduino library, and the vast library of Arduino sketches and 3rd party libraries (as long as they don't use AVR assembly language.
So can the Pi Pico, the Milk-V Duo (one 64 bit Linux core, one 64 bit microcontroller core), and many others.
While that is true, both Espressif and the Pico have their own SDKs, and they're really well written too.
The Arduino SDK is the simplest to use, sure, but the Pico framework (I don't have experience with the Espressif one) is extremely good, and the Pico's PIO is a godsend. I used it to implement 3 wire SPI (data bidirectional on the same wire) at almost 'real-time', which is to say, at half the speed of the hardware SPI controller (half the speed because the interface clock is put up one cycle and down the next; this also gives enough time for data shuffling).
Why does the Arduino SDK necessitate a huge markup on Arduino boards, when $0 of every computer I buy to run Linux on goes to GCC?