How can anyone use a microcontroller which has only 384 bytes of program memory?
You kids, get off my lawn!

384 bytes is plenty of space to create something quite complex in assembler.

If you dig back through history to when computers were the size of a room, you'll find some truly amazing feats of artistry executed in &lt;1k.

For instance, read the classic Story of Mel - A Real Programmer. Admittedly, those guys had 4096 words of memory to play with, the decadent infidels.

Also look at some of the old demoscene competitions where the challenge was to fit an "intro" into the bootblock of a floppy, typical targets being 4k or 40k and usually managing to include music and animation.

Edit to add: Turns out you can implement the world's first $100 scientific calculator in 320 words.

Edit for the young 'uns: 


Floppy = floppy disk.
Bootblock = 1st sector of the floppy read at bootup. 
Demoscene = programming competitions amongst hacker groups. 
Assembler = fancy way of programming a device if you're too soft to use 8 toggle switches and a "store" button.