What is Arduino vs what is Raspberry pi

a Pi is going to be much more like a cellphone, in terms of resources and capabilities, particularly since it is generally used with linux running on it.

The Arduino, particularly the Atmel boards have very limited resources in comparison.

Arduinos are great for simpler task that need to control things, perhaps very much in reatime, or need very fast boot, and reset startup times.

A big difference between them particularly the when comparing the Atmel AVR vs something like like Pi is the amount of resources available for code and data.
An AVR typically has 32k up to 128k of flash for code and 2k up to 16k for RAM.
(not MB or GB but kbytes)
The AVR does not allow running code in RAM and does not support direct data access to flash.
i.e. code is in flash and data must be in RAM.

This limitation really wonks up your code when using const data as you cant just declare it const and have it exist only in flash and then access it directly or use pointers to access it.
Well you can try use const like normal processors and it does work, but if you do, the const data will exist in both the flash and in RAM to allow direct access to to the RAM version.
To work around this h/w architecture limitation, which is important since RAM is so limited, Atmel supplies some special macros when declaring the data to keep it from being moved to RAM.
And then the code must use special access functions to get to it rather than simply use a pointer.
Having to use access functions is what really wonks up your code.

There other Arduino boards that use other processors like ARM or PIC32 that do not have this const limitation since they can directly access data stored in flash.

--- bill