I think the expression "just unix" is right - at the end of the day platforms like Heroku, CloudFoundry and dotCloud (since we're all plugging our respective platforms) expose an API to spawn and manage unix processes - the way EC2 exposes an API to spawn and manage servers.
It all boils down to the metaphor, and the language that supports it:
PaaS borrows from the Unix metaphor of deployment with primitives like processes, executables, virtual filesystems, sockets and stdout/stderr.
IaaS borrows from the hardware metaphor of deployment with primitives like images, block devices, OS installs, firewalling rules and load-balancers.
The premise of PaaS is that, in a large and growing number of cases, as a developer the Unix metaphor requires less of my time, it maps my day-to-day experience better (As fdr pointed out, the remote platform behaves the same, roughly, as my laptop), and I don't actually need control over the underlying hardware.
It all boils down to the metaphor, and the language that supports it:
PaaS borrows from the Unix metaphor of deployment with primitives like processes, executables, virtual filesystems, sockets and stdout/stderr.
IaaS borrows from the hardware metaphor of deployment with primitives like images, block devices, OS installs, firewalling rules and load-balancers.
The premise of PaaS is that, in a large and growing number of cases, as a developer the Unix metaphor requires less of my time, it maps my day-to-day experience better (As fdr pointed out, the remote platform behaves the same, roughly, as my laptop), and I don't actually need control over the underlying hardware.