Here is a thought:
Pick up a microSD card. Place it on a fingernail. Look at how small it is. How much does it hold? 1GB? 2GB? 8GB? More? Amazing. That is a lot of storage. These things are examples of how storage keeps shrinking while maintaining incredible capacity. You could fit a whole library on a microSD, right?
But consider this: Inside all microSD cards lie an MCU core . (It may be an 8051. The 8051 MCU is still a popular flash memory controller that you'll find in a majority of your USB thumb drives, SD and even (as a naked die) microSD cards.) Each MCU contains some small amount of RAM too.
So, on your fingernail you have an 8 or 16 bit computer (typically running > 50Mhz) with high speed I/O, RAM, gigabytes of persistent storage, and firmware that was probably written in C.
Mind blown.