(Updated at 03/16/2023)
Many languages are available for programming the Raspberry Pi Pico; it’s easy to get lost when faced with all these possibilities. This article aims to present the different languages with their strengths and weaknesses so that you can choose the correct language for you.
Historically, microcontrollers are programmed in C/C++ with an SDK generally provided by the manufacturer. An SDK (Software Developer Kit) is a set of libraries that facilitate the work of developers. The very low-level programming is managed by the SDK and is therefore hidden from the developer. It is the professional way to develop programs for microcontrollers. The main disadvantage is that there is a different SDK for each type of microcontroller.
The arrival of Arduino in the early 2000s has completely revolutionized this environment by making programming in C++ easy for amateurs, thanks to the famous Arduino code and its many available libraries. Elementary functions and libraries run in the background of the dedicated SDK of the microcontroller. Over the years, other non-Arduino boards have recently been integrated into the Arduino IDE software, such as the ESP8266, ESP32 or even the Raspberry Pi Pico. So you can run it on an Arduino, an ESP32 or a Pi Pico with almost the same code. This gives the impression of having a “universal” code even if different compilers are used for each type of board behind it. Most of the libraries are compatible on various boards, even if some of them are specific. For example, the Wi-Fi management of the ESP32 will not work on a simple Arduino because there is no basic Wi-Fi.