Currently reading about RPC and RMI, I'm a bit confused about the difference.
When implementing RMI and for example gRPC, the syntax is basically the same.
They both have interfaces determining methods parameters and response.
They can both send objects in parameters (Java RMI doing it natively, C# gRPC with proto).
They both execute the request to the server through a method call on some object (based on the interface.
So what is the difference? Is it how the processes of data transfer happen between client and server?
By the looks of it RMI is just a Java implementation of RPC and gRPC is the C# implementation.