June 8, 2018
Today was my first working with an Arduino. I have never used one before because I didn’t have the opportunity to do so. My first embedded systems were based on custom hardware and I used C or ASM to program the microcontroller embedded there.
Then, my next encounter with embedded systems was with embedded platform such as Raspberry PI or MK802-II with embedded Linux. In this case, I used them to run image/video processing algorithms. In the last year, I started using ARM microprocessors as bare metal. I programmed them using Makefiles, VIM and sometimes Eclipse, even though I hate it. But yesterday I had to use Arduino-one (some project in my master studies) and it just felt weird.
It’s very easy to use but somehow the user have no idea what’s going on behind scenes. If you are a hobbyist who just wants to do something cool, I think it’s okay. However, if you want to be a professional and you are learning, you shouldn’t use it on regular basis. The main reasons for me are:
- Old technology: now-a-days ARM processor own the market
- Understanding of computer systems: there is no way to understand what’s going on behind each instruction in an Arduino, unless you use the standard-C (not “arduino-C”), GDB,
objdumpand Makefiles and others set of tools that allows you to analyze the embedded/non-embedded platform and your code.
So the bottom line is… if you just wanna have fun once in a while it’s okay to use Arduino (it’s like using cheats when playing a video game), but if you are serious about learning and be professional, you might think at least 10 times before use an Arduino.