News for hackers. Stuff that matters.
Re:Actix – Actor Framework for Rust by imtringued on Thursday February 13, 2020 @08:15AM (#22317435)
Although I'm not sure what you really mean by "remote method invocation", the idea of remote method invocation in OO systems should be impossible or incredibly difficult considering the semantics of a method call.

Method calls are synchronous and they are not allowed to fail under any circumstance. But in the context of distributed systems you have to choose between at most once or at least once delivery which are semantically incompatible with OOP style method calls. Your methods will have to be written with the expectation that they are called multiple times or maybe not at all and most OOP code doesn't satisfy these expectations because the OOP model doesn't require it. If you extend the OOP model with message semantics of the actor model then what you get is not just OOP+messaging. It's the actor model.

Also you may have misunderstood something very fundamental. The benefit of paradigms isn't to be completely different. It's that everyone that shares a paradigm follows the same design philosophy. Imagine a mixed code base consisting of traditional OOP (with locks), actor model, async/await, promises. It would be very difficult to understand and sometimes it isn't obvious which of these is used. Some functions are asynchronous or they may fail but you may not know that because every single line could do a different thing. They may even be incompatible with each other. If you follow a single paradigm instead of many different ones you can avoid a lot of confusion and wasted work.

Re:Actix – Actor Framework for Rust by brucenanner on Thursday February 13, 2020 @08:22AM (#22317491)
Not nearly impossible. Was put in the jdk like 20 years ago. RMI: https://en.m.wikipedia.org/wiki/Java_remote_method_invocatio...
Re:Actix – Actor Framework for Rust by jerf on Thursday February 13, 2020 @09:21AM (#22317894)
There have been dozens or hundreds of things called "remote method" or "remote procedure" or "remote function" invocation. However, not a single one of them has overcome the fundamental problem that you can not have something that is semantically identical to the function call presented by programming languages, because programming language functions simply do not have the concept that you are accessing it over a network, and they take heavy and critical advantage of the resulting simplifications.

Someone more clever than wise may stand up and point out that technically even a local function call is unreliable in many of the same ways that a network call is. However, even if many of the same problems can theoretically arise, the distribution of the problems are fundamentally different, which is why you do not guard every single function call in your program for all the network-type errors, and it generally works, whereas if you program that way in a networked environment, it generally does not work.

Personally I've come to prefer messages very strongly to "RPC" as the foundation of a system. Messages can trivially implement an RPC-like system, but RPCs can not implement a message-like system. Even if you implement an RPC called "SendMessage", you're still adding synchronization on the RPC system sending over the call and waiting for the response. Among other things, but that's the big one.

Re:Actix – Actor Framework for Rust by macintux on Thursday February 13, 2020 @10:44AM (#22318586)
Much like you can implement TCP (or something like it) atop UDP but you can’t really do the reverse.
Re:Actix – Actor Framework for Rust by macintux on Thursday February 13, 2020 @09:13AM (#22317834)
It’s impossible to make RMI behave exactly like local method invocation. It introduces many error cases and performance challenges you don’t normally have to consider.
Re:Actix – Actor Framework for Rust by shawnz on Thursday February 13, 2020 @08:41AM (#22317624)
Another example is Distributed Smalltalk from 1987
Re:Actix – Actor Framework for Rust by protomyth on Thursday February 13, 2020 @11:01AM (#22318741)
also NeXT's Portable Distributed Objects which continued into the OS X and D'OLE had some of this