From the programming side it's a full-fledged OS like a PC (which may run Linux too
). You have processes, multi-tasking. What's often missing is a memory management unit so you have to take care about memory usage as with a microcontroller. But usually you have much more memory, more flash (often SD cards) but less GPIOs and ADCs (that's not a fixed rule). It's harder to do real time programming (guaranteed response times) but much easier to access PC peripherals like webcams. Theoretically you can run matlab on it but it's much better performing when programmed in C/C++ (or any other language compiled to native code).