6 ms·
Swarm: A true distributed programming language
- gsmaverick 18y agoNeat project. I think this is how we are going to fully take advantage of the cloud resources we have right now.
- russell 18y agoContinuations are really neat devices. You can make any kind of flow-of -control construct out of them. IIRC they were originally invented to formally model the GOTO. However, in their full glory they are mind numbingly difficult to understand and probably to debug. Basically in the Swarms model you are passing around a chunk of program state to do the computation, and with it, all the problems that data encapsulation is supposed to solve. I thing debugging would be hugely difficult. Contrast this with message passing where only the relevant values are sent, not the whole computational state. The article says that 3.5% of instructions cause a continuation to be sent. That's a huge percentage. A program would spend all its time marshaling and unmarshaling. One of the things that you want to do to increase efficiency is to promote and exploit locality. You want to cluster the closely related objects on the same node to reduce network traffic and latency. Constant moving of objects or a bad distribution strategy is going to hurt that. I once worked on a distributed database with automatic replication to ransom nodes. Performance was killed by constant network chatter. The design goal was 1000 nodes, in reality it maxed out at 16.