RPC (SOAP a.o.) is procedural thinking; functional programming. Resources in REST on the other hand are objects. Designing a REST-API lets you think in objects. So far: everything is OK. BUT: by using the same (uniform) interface everywhere, REST reduces objects to (anaemic) data and promotes data-centric thinking.
Object thinking is about thinking in behavioural objects. It is the behaviour that makes the difference between the objects. That is why you first start defining the interface when discovering objects. If all objects have the same interface, the "uniform interface" in REST, then the only difference between them is their properies, their state.
CRUD is a typical data-centric interface. Of course it works. So does a Turing Machine or directly programming in Assembler. It is "Turing complete": you can program anything in it. But that doesn't imply the paradigm cannot be improved. What would happen if we would think in objects without a uniform interface? Behaviourally rich resources...
I'm looking for a synthesis (in the sense of Fichte & Hegel's Dialectic) between RPC and REST.
- Pawson's Naked Objects: http://incubator.apache.org/isis/Pawson-Naked-Objects-thesis.pdf