Hermes hides distribution and heterogeneity from the
programmer. The programmer sees a single abstract machine
containing processes that communicate using calls or sends.
The compiler, not the programmer, deals with the complexity
of data structure layout, local and remote communication, and
interaction with the operating system. As a result, Hermes
programs are portable and easy to write. Because the
programming paradigm is simple and high level, there are many
opportunities for optimisation which are not present in
languages which give the programmer more direct control over
the machine.