from my short experience with STM32 I will give you some fast answers:
1. Is using the Arduino framework the best for working with STM32s? Is there any other libraries/frameworks to use to program it? (what is the original library that ST developed for working with STM32s? is it good to use compared to Arduino?)
There is no perfect framework or method. Arduino framework with Arduino IDE is a very fast and easy way to program the MCU. Arduino framework does not require knowledge of the specific MCU (IMO an overall knowledge of hardware always helps) all are hidden by API. But there are some limitations as the arduino framework was created for a small 8bit MCU with limited capabilities, and the STM32 is much more powerful and complex. Another option is the mbed framework, it follows the same logic with arduino (no knowledge of hardware required) but it is much wider and a bit more difficult for beginners, it is also much bigger and requires much more memory than arduino API, this is a problem for small devices. There is also the Chibios which is a RTOS and a HAL in one package, this is really much harder to manage. All others like SPL, HALMX, OPENCM3 are libraries to help you with MCU operations and peripherals and require deeper knowledge of hardware.
2. What other STM32 microcontrollers is programmable with the Arduino framework except the STM32F103xxxx series that is used on the Maple boards?
Only STM32F103 MCUs are supported officially by libmaple, the F4 support is good but not so widely tested. There are some other arduino cores like Dragonfly’s L4 core, the experimental HALMX core, and the ST core for F1 and L4 but this is a very recent development.
Do you need a special programmer (like ST-LINK? I don’t even know what is it) to program a STM32? or can you just do it over Serial?
Almost all widely known F103 boards with USB are supported by stm32duino bootloader (thanks to Roger), with this you can download the program to target board by USB without any other equipment, as a bonus you get a USB-Serial interface for your application. ST-LInk is a dowload/debug interface created by ST (end cloned illegally by Chinese) for all members of STM32 family. With ST-Link you can download the program to MCU without any bootloader, but it is not only that, with the proper software you can debug your program (watch variables, define breakpoints, step execution) on your board in realtime during execution. Finally, always, in every STM32 you can also use the embedded bootloader through UART (or other ports in various MCUs), but this is not automatic, requires some manipulation with the pins BOOT0/1 of MCU (not very handy but it works)