Computers have been around for quite some time. So what is stopping us from making computers boot instantly like regular home appliances and other devices? Is it even possible? I know there is hibernate and sleep but those aren't really real boot
Computers are state machines. The problem is that the initial condition the computer starts with (which is, literally, instant) is not very useful to you and me. (Even after the first electron moves).
What's useful to you and me is many millions of steps further down that state machine. The easiest way for developers to describe that state is define it in programs, and those programs will always take non-zero time to run.
Now you might say: "fine, but can't you cache the 'first-usable-state', and start there". And you could, and it does, it's (roughly) what resume from sleep is. (and which is why it's not very fair, I think, to "exclude" resume from a discussion of improving boot times).
When you turn on your computer, it instantly executes code in BIOS or UEFI boot manager. It doesn't take much time to execute BIOS or UEFI boot manager. It will initialize your hardware, scan your storage devices for operating system, and run the operating system. It is usually the operating system that requires much time for loading.
If you use a very simple operating system that will load instantly, such as that only display sequence of images or play music files, then you can boot your computer instantly.
The problem is that operating systems are huge. And by huge, we're talking millions and millions lines of code. Even Linux 3.6 has almost 16million. XP was rumored to have 40.
Even when you're using solid state hard drives, you still need to load that code from non volatile memory (disk drives) to volatile system memory (RAM).
A pocket calculator has an operating systems (it's small, but it runs a program) however its so small it can live in chips on the system board.
Again, it's a problem with PCs having much, much larger operating systems that must be loaded into system memory.